IP Library Granted Patent US 12,556,503
Granted Patent B2
US 12,556,503 · App. 18/790,179 · Granted Feb 17, 2026

Synchronous and asynchronous content filtering

Inventor: Chaney Lin (Palo Alto, CA)
Assignee: Salesforce, Inc.
H04L51/212G06F40/35
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,556,503
App. No.
18/790,179
Granted
Feb 17, 2026
Kind
B2
Abstract

Techniques for filtering out undesirable generative machine learned model (or LLM) output are discussed herein. A system may receive a subset of an LLM output. That is, the system may stream the LLM output to a user device by receiving one or more tokens from the LLM and outputting such token(s) to a user device. However, prior to outputting the token(s) to the user device, the system may determine whether the token(s) include undesirable content that is to be blocked. The system may use synchronous blocking components (e.g., blocks the undesirable token(s) before such token(s) get output to the user device) and/or asynchronous blocking components (e.g., blocks the undesirable token(s) after the token(s) have been output to the user device) to filter out undesirable content. The synchronous and/or asynchronous blocking components may be designed to block one or more undesirable topics such as hateful speech, profanity, bias, toxicity, factualness, etc.

Claims (87)

1 . A system comprising:

one or more processors; and

one or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to perform operations comprising:

receiving a subset of a response from a large language model (LLM);

causing, prior to outputting the subset, the subset to be sent to a first blocking detector and a second blocking detector that is different than the first blocking detector;

determining, based at least in part on the first blocking detector, a first result indicating whether to block the subset;

determining, based at least in part on the second blocking detector, a second result indicating whether to block subset;

determining, based at least in part on the first result and the second result, to output the subset of the response to a user device;

causing, in response to outputting the subset of the response and prior to an entirety of the response being output, the subset to be added to a buffer associated with a third blocking detector configured to determine whether to block the subset after the subset has been output to the user device;

determining, based at least in part on a status of the buffer, a third result indicating whether to block data within the buffer;

generating, in response to the entirety of the response from the LLM being output, a final result representing whether to block a portion of the response;

generating, based at least in part on the final result, modified data associated with the entirety of the response; and

causing the modified data to be output.

2 . The system of claim 1 , wherein the first blocking detector includes a second buffer to receive the subset, wherein the second blocking detector includes a third buffer to receive the subset, wherein a first size of the second buffer is different than a second size of the third buffer.

3 . The system of claim 2 , wherein the first result is determined at a different time than the second result based at least in part on the first size of the second buffer being different than the second size of the third buffer.

4 . The system of claim 1 , the operations further comprising:

determining, based at least in part on the third blocking detector, to block the data in the buffer; and

causing, based at least in part on determining to block the data in the buffer, the data to be removed from the user device.

5 . The system of claim 1 , wherein generating the modified data is further based at least in part on:

causing a notification to be sent to the user device, wherein the notification includes at least one of:

an overlay interface,

disabled functionality of the user device, or

a modified user interface.

6 . The system of claim 1 , wherein the first blocking detector blocks content associated with at least one of:

hateful speech,

profanity,

bias,

toxicity, or

factualness.

7 . One or more non-transitory computer-readable media storing instructions executable by one or more processors, wherein the instructions, when executed, cause the one or more processors to perform operations comprising:

receiving a subset of a response from a large language model (LLM);

causing, prior to outputting the subset, the subset to be sent to a first blocking detector;

determining, based at least in part on the first blocking detector, a first result indicating whether to block the subset;

determining, based at least in part on the first result, to output the subset of the response to a user device;

causing, in response to outputting the subset of the response and prior to an entirety of the response being output, the subset to be added to a buffer associated with a second blocking detector configured to determine whether to block the subset after the subset has been output to the user device;

determining, based at least in part on a status of the buffer, a second result indicating whether to block data within the buffer;

generating, in response to the entirety of the response from the LLM being output, a final result representing whether to block a portion of the response; and

generating, based at least in part on the final result, modified data associated with the entirety of the response.

8 . The one or more non-transitory computer-readable media of claim 7 , where determining to output the subset to the user device is based at least in part on:

causing the subset to be sent to a third blocking detector; and

determining, based at least in part on the third blocking detector, a third result, wherein the first result is determined at a different time than the third result.

9 . The one or more non-transitory computer-readable media of claim 8 , wherein determining the first result and the third result at different times is based at least in part on the first blocking detector including a second buffer to receive the subset, wherein the third blocking detector includes a third buffer to receive the subset, wherein a first size of the second buffer is different than a second size of the third buffer.

10 . The one or more non-transitory computer-readable media of claim 7 , the operations further comprising:

determining, based at least in part on the second blocking detector, to block the data in the buffer; and

causing, based at least in part on determining to block the data in the buffer, the data to be removed from the user device.

11 . The one or more non-transitory computer-readable media of claim 7 , wherein generating the modified data is further based at least in part on:

causing a notification to be sent to the user device, wherein the notification includes at least one of:

an overlay interface,

disabled functionality of the user device, or

a modified user interface.

12 . The one or more non-transitory computer-readable media of claim 7 , wherein the first blocking detector blocks content associated with at least one of:

hateful speech,

profanity,

bias,

toxicity, or

factualness.

13 . The one or more non-transitory computer-readable media of claim 7 , the operations further comprising:

causing, based at least in part on generating the modified data, the modified data to be output to the user device.

14 . A method comprising:

receiving a subset of a response from a large language model (LLM);

causing, prior to outputting the subset, the subset to be sent to a first blocking detector;

determining, based at least in part on the first blocking detector, a first result indicating whether to block the subset;

determining, based at least in part on the first result, to output the subset of the response to a user device;

causing, in response to outputting the subset of the response and prior to an entirety of the response being output, the subset to be added to a buffer associated with a second blocking detector configured to determine whether to block the subset after the subset has been output to the user device;

determining, based at least in part on a status of the buffer, a second result indicating whether to block data within the buffer;

generating, in response to the entirety of the response from the LLM being output, a final result representing whether to block a portion of the response;

generating, based at least in part on the final result, modified data associated with the entirety of the response.

15 . The method of claim 14 , where determining to output the subset to the user device is based at least in part on:

causing the subset to be sent to a third blocking detector; and

determining, based at least in part on the third blocking detector, a third result, wherein the first result is determined at a different time than the third result.

16 . The method of claim 15 , wherein determining the first result and the third result at different times is based at least in part on the first blocking detector including a second buffer to receive the subset, wherein the third blocking detector includes a third buffer to receive the subset, wherein a first size of the second buffer is different than a second size of the third buffer.

17 . The method of claim 14 , further comprising:

determining, based at least in part on the second blocking detector, to block the data in the buffer; and

causing, based at least in part on determining to block the data in the buffer, the data to be removed from the user device.

18 . The method of claim 14 , wherein generating the modified data is further based at least in part on:

causing a notification to be sent to the user device, wherein the notification includes at least one of:

an overlay interface,

disabled functionality of the user device, or

a modified user interface.

19 . The method of claim 14 , wherein the first blocking detector blocks content associated with at least one of:

hateful speech,

profanity,

bias,

toxicity, or

factualness.

20 . The method of claim 14 , further comprising:

causing, based at least in part on generating the modified data, the modified data to be output to the user device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2024
From: LIN, CHANEY
To: SALESFORCE, INC.
Reel/Frame 068303/0052 →
Continuity (1)
Related Publication 20260039618A1 · Feb 5, 2026
References Cited (13)
US 7483947B2 · Starbuck · 2009 [cited by examiner]
US 7870203B2 · Judge · 2011 [cited by examiner]
US 9665559B2 · Gross · 2017 [cited by examiner]
US 11170064B2 · David · 2021 [cited by examiner]
US 11238241B1 · Mallikarjuniah · 2022 [cited by examiner]
US 11475883B1 · Mallikarjuniah · 2022 [cited by examiner]
US 11805185B2 · Tongya · 2023 [cited by examiner]
US 11983716B2 · Hochma · 2024 [cited by examiner]
US 12004256B2 · Phillips · 2024 [cited by examiner]
US 12405978B2 · Madisetti · 2025 [cited by examiner]
US 20100010940A1 · Spyropoulos · 2010 [cited by examiner]
US 20200067861A1 · Leddy · 2020 [cited by examiner]
US 20220351716A1 · Kim · 2022 [cited by examiner]