Skip to content

Commit 2bdad15

Browse files
author
awstools
committed
feat(client-bedrock-runtime): This release adds support for using Guardrails with the Converse and ConverseStream APIs.
1 parent fd9be05 commit 2bdad15

File tree

5 files changed

+2105
-286
lines changed

5 files changed

+2105
-286
lines changed

Diff for: clients/client-bedrock-runtime/src/commands/ConverseCommand.ts

+145-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,13 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
3232
* a consistent interface that works with all models that
3333
* support messages. This allows you to write code once and use it with different models.
3434
* Should a model have unique inference parameters, you can also pass those unique parameters
35-
* to the model. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/api-methods-run.html">Run inference</a> in the Bedrock User Guide.</p>
35+
* to the model.</p>
36+
* <p>For information about the Converse API, see <i>Use the Converse API</i> in the <i>Amazon Bedrock User Guide</i>.
37+
* To use a guardrail, see <i>Use a guardrail with the Converse API</i> in the <i>Amazon Bedrock User Guide</i>.
38+
* To use a tool with a model, see <i>Tool use (Function calling)</i> in the <i>Amazon Bedrock User Guide</i>
39+
* </p>
40+
* <p>For example code, see <i>Converse API examples</i> in the <i>Amazon Bedrock User Guide</i>.
41+
* </p>
3642
* <p>This operation requires permission for the <code>bedrock:InvokeModel</code> action. </p>
3743
* @example
3844
* Use a bare-bones client and the command you need to make an API call.
@@ -75,13 +81,23 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
7581
* ],
7682
* status: "success" || "error",
7783
* },
84+
* guardContent: { // GuardrailConverseContentBlock Union: only one key present
85+
* text: { // GuardrailConverseTextBlock
86+
* text: "STRING_VALUE", // required
87+
* },
88+
* },
7889
* },
7990
* ],
8091
* },
8192
* ],
8293
* system: [ // SystemContentBlocks
8394
* { // SystemContentBlock Union: only one key present
8495
* text: "STRING_VALUE",
96+
* guardContent: {// Union: only one key present
97+
* text: {
98+
* text: "STRING_VALUE", // required
99+
* },
100+
* },
85101
* },
86102
* ],
87103
* inferenceConfig: { // InferenceConfiguration
@@ -112,6 +128,11 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
112128
* },
113129
* },
114130
* },
131+
* guardrailConfig: { // GuardrailConfiguration
132+
* guardrailIdentifier: "STRING_VALUE", // required
133+
* guardrailVersion: "STRING_VALUE", // required
134+
* trace: "enabled" || "disabled",
135+
* },
115136
* additionalModelRequestFields: "DOCUMENT_VALUE",
116137
* additionalModelResponseFieldPaths: [ // AdditionalModelResponseFieldPaths
117138
* "STRING_VALUE",
@@ -153,11 +174,16 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
153174
* // ],
154175
* // status: "success" || "error",
155176
* // },
177+
* // guardContent: { // GuardrailConverseContentBlock Union: only one key present
178+
* // text: { // GuardrailConverseTextBlock
179+
* // text: "STRING_VALUE", // required
180+
* // },
181+
* // },
156182
* // },
157183
* // ],
158184
* // },
159185
* // },
160-
* // stopReason: "end_turn" || "tool_use" || "max_tokens" || "stop_sequence" || "content_filtered", // required
186+
* // stopReason: "end_turn" || "tool_use" || "max_tokens" || "stop_sequence" || "guardrail_intervened" || "content_filtered", // required
161187
* // usage: { // TokenUsage
162188
* // inputTokens: Number("int"), // required
163189
* // outputTokens: Number("int"), // required
@@ -167,6 +193,123 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
167193
* // latencyMs: Number("long"), // required
168194
* // },
169195
* // additionalModelResponseFields: "DOCUMENT_VALUE",
196+
* // trace: { // ConverseTrace
197+
* // guardrail: { // GuardrailTraceAssessment
198+
* // modelOutput: [ // ModelOutputs
199+
* // "STRING_VALUE",
200+
* // ],
201+
* // inputAssessment: { // GuardrailAssessmentMap
202+
* // "<keys>": { // GuardrailAssessment
203+
* // topicPolicy: { // GuardrailTopicPolicyAssessment
204+
* // topics: [ // GuardrailTopicList // required
205+
* // { // GuardrailTopic
206+
* // name: "STRING_VALUE", // required
207+
* // type: "DENY", // required
208+
* // action: "BLOCKED", // required
209+
* // },
210+
* // ],
211+
* // },
212+
* // contentPolicy: { // GuardrailContentPolicyAssessment
213+
* // filters: [ // GuardrailContentFilterList // required
214+
* // { // GuardrailContentFilter
215+
* // type: "INSULTS" || "HATE" || "SEXUAL" || "VIOLENCE" || "MISCONDUCT" || "PROMPT_ATTACK", // required
216+
* // confidence: "NONE" || "LOW" || "MEDIUM" || "HIGH", // required
217+
* // action: "BLOCKED", // required
218+
* // },
219+
* // ],
220+
* // },
221+
* // wordPolicy: { // GuardrailWordPolicyAssessment
222+
* // customWords: [ // GuardrailCustomWordList // required
223+
* // { // GuardrailCustomWord
224+
* // match: "STRING_VALUE", // required
225+
* // action: "BLOCKED", // required
226+
* // },
227+
* // ],
228+
* // managedWordLists: [ // GuardrailManagedWordList // required
229+
* // { // GuardrailManagedWord
230+
* // match: "STRING_VALUE", // required
231+
* // type: "PROFANITY", // required
232+
* // action: "BLOCKED", // required
233+
* // },
234+
* // ],
235+
* // },
236+
* // sensitiveInformationPolicy: { // GuardrailSensitiveInformationPolicyAssessment
237+
* // piiEntities: [ // GuardrailPiiEntityFilterList // required
238+
* // { // GuardrailPiiEntityFilter
239+
* // match: "STRING_VALUE", // required
240+
* // type: "ADDRESS" || "AGE" || "AWS_ACCESS_KEY" || "AWS_SECRET_KEY" || "CA_HEALTH_NUMBER" || "CA_SOCIAL_INSURANCE_NUMBER" || "CREDIT_DEBIT_CARD_CVV" || "CREDIT_DEBIT_CARD_EXPIRY" || "CREDIT_DEBIT_CARD_NUMBER" || "DRIVER_ID" || "EMAIL" || "INTERNATIONAL_BANK_ACCOUNT_NUMBER" || "IP_ADDRESS" || "LICENSE_PLATE" || "MAC_ADDRESS" || "NAME" || "PASSWORD" || "PHONE" || "PIN" || "SWIFT_CODE" || "UK_NATIONAL_HEALTH_SERVICE_NUMBER" || "UK_NATIONAL_INSURANCE_NUMBER" || "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER" || "URL" || "USERNAME" || "US_BANK_ACCOUNT_NUMBER" || "US_BANK_ROUTING_NUMBER" || "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER" || "US_PASSPORT_NUMBER" || "US_SOCIAL_SECURITY_NUMBER" || "VEHICLE_IDENTIFICATION_NUMBER", // required
241+
* // action: "ANONYMIZED" || "BLOCKED", // required
242+
* // },
243+
* // ],
244+
* // regexes: [ // GuardrailRegexFilterList // required
245+
* // { // GuardrailRegexFilter
246+
* // name: "STRING_VALUE",
247+
* // match: "STRING_VALUE",
248+
* // regex: "STRING_VALUE",
249+
* // action: "ANONYMIZED" || "BLOCKED", // required
250+
* // },
251+
* // ],
252+
* // },
253+
* // },
254+
* // },
255+
* // outputAssessments: { // GuardrailAssessmentListMap
256+
* // "<keys>": [ // GuardrailAssessmentList
257+
* // {
258+
* // topicPolicy: {
259+
* // topics: [ // required
260+
* // {
261+
* // name: "STRING_VALUE", // required
262+
* // type: "DENY", // required
263+
* // action: "BLOCKED", // required
264+
* // },
265+
* // ],
266+
* // },
267+
* // contentPolicy: {
268+
* // filters: [ // required
269+
* // {
270+
* // type: "INSULTS" || "HATE" || "SEXUAL" || "VIOLENCE" || "MISCONDUCT" || "PROMPT_ATTACK", // required
271+
* // confidence: "NONE" || "LOW" || "MEDIUM" || "HIGH", // required
272+
* // action: "BLOCKED", // required
273+
* // },
274+
* // ],
275+
* // },
276+
* // wordPolicy: {
277+
* // customWords: [ // required
278+
* // {
279+
* // match: "STRING_VALUE", // required
280+
* // action: "BLOCKED", // required
281+
* // },
282+
* // ],
283+
* // managedWordLists: [ // required
284+
* // {
285+
* // match: "STRING_VALUE", // required
286+
* // type: "PROFANITY", // required
287+
* // action: "BLOCKED", // required
288+
* // },
289+
* // ],
290+
* // },
291+
* // sensitiveInformationPolicy: {
292+
* // piiEntities: [ // required
293+
* // {
294+
* // match: "STRING_VALUE", // required
295+
* // type: "ADDRESS" || "AGE" || "AWS_ACCESS_KEY" || "AWS_SECRET_KEY" || "CA_HEALTH_NUMBER" || "CA_SOCIAL_INSURANCE_NUMBER" || "CREDIT_DEBIT_CARD_CVV" || "CREDIT_DEBIT_CARD_EXPIRY" || "CREDIT_DEBIT_CARD_NUMBER" || "DRIVER_ID" || "EMAIL" || "INTERNATIONAL_BANK_ACCOUNT_NUMBER" || "IP_ADDRESS" || "LICENSE_PLATE" || "MAC_ADDRESS" || "NAME" || "PASSWORD" || "PHONE" || "PIN" || "SWIFT_CODE" || "UK_NATIONAL_HEALTH_SERVICE_NUMBER" || "UK_NATIONAL_INSURANCE_NUMBER" || "UK_UNIQUE_TAXPAYER_REFERENCE_NUMBER" || "URL" || "USERNAME" || "US_BANK_ACCOUNT_NUMBER" || "US_BANK_ROUTING_NUMBER" || "US_INDIVIDUAL_TAX_IDENTIFICATION_NUMBER" || "US_PASSPORT_NUMBER" || "US_SOCIAL_SECURITY_NUMBER" || "VEHICLE_IDENTIFICATION_NUMBER", // required
296+
* // action: "ANONYMIZED" || "BLOCKED", // required
297+
* // },
298+
* // ],
299+
* // regexes: [ // required
300+
* // {
301+
* // name: "STRING_VALUE",
302+
* // match: "STRING_VALUE",
303+
* // regex: "STRING_VALUE",
304+
* // action: "ANONYMIZED" || "BLOCKED", // required
305+
* // },
306+
* // ],
307+
* // },
308+
* // },
309+
* // ],
310+
* // },
311+
* // },
312+
* // },
170313
* // };
171314
*
172315
* ```

0 commit comments

Comments
 (0)