Skip to content

Commit 7f5bfb9

Browse files
author
awstools
committed
feat(client-bedrock-runtime): This release adds document support to Converse and ConverseStream APIs
1 parent 249cd33 commit 7f5bfb9

File tree

5 files changed

+346
-0
lines changed

5 files changed

+346
-0
lines changed

clients/client-bedrock-runtime/src/commands/ConverseCommand.ts

+28
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
6060
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
6161
* },
6262
* },
63+
* document: { // DocumentBlock
64+
* format: "pdf" || "csv" || "doc" || "docx" || "xls" || "xlsx" || "html" || "txt" || "md", // required
65+
* name: "STRING_VALUE", // required
66+
* source: { // DocumentSource Union: only one key present
67+
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
68+
* },
69+
* },
6370
* toolUse: { // ToolUseBlock
6471
* toolUseId: "STRING_VALUE", // required
6572
* name: "STRING_VALUE", // required
@@ -77,6 +84,13 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
7784
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
7885
* },
7986
* },
87+
* document: {
88+
* format: "pdf" || "csv" || "doc" || "docx" || "xls" || "xlsx" || "html" || "txt" || "md", // required
89+
* name: "STRING_VALUE", // required
90+
* source: {// Union: only one key present
91+
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
92+
* },
93+
* },
8094
* },
8195
* ],
8296
* status: "success" || "error",
@@ -153,6 +167,13 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
153167
* // bytes: new Uint8Array(),
154168
* // },
155169
* // },
170+
* // document: { // DocumentBlock
171+
* // format: "pdf" || "csv" || "doc" || "docx" || "xls" || "xlsx" || "html" || "txt" || "md", // required
172+
* // name: "STRING_VALUE", // required
173+
* // source: { // DocumentSource Union: only one key present
174+
* // bytes: new Uint8Array(),
175+
* // },
176+
* // },
156177
* // toolUse: { // ToolUseBlock
157178
* // toolUseId: "STRING_VALUE", // required
158179
* // name: "STRING_VALUE", // required
@@ -170,6 +191,13 @@ export interface ConverseCommandOutput extends ConverseResponse, __MetadataBeare
170191
* // bytes: new Uint8Array(),
171192
* // },
172193
* // },
194+
* // document: {
195+
* // format: "pdf" || "csv" || "doc" || "docx" || "xls" || "xlsx" || "html" || "txt" || "md", // required
196+
* // name: "STRING_VALUE", // required
197+
* // source: {// Union: only one key present
198+
* // bytes: new Uint8Array(),
199+
* // },
200+
* // },
173201
* // },
174202
* // ],
175203
* // status: "success" || "error",

clients/client-bedrock-runtime/src/commands/ConverseStreamCommand.ts

+14
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ export interface ConverseStreamCommandOutput extends ConverseStreamResponse, __M
6767
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
6868
* },
6969
* },
70+
* document: { // DocumentBlock
71+
* format: "pdf" || "csv" || "doc" || "docx" || "xls" || "xlsx" || "html" || "txt" || "md", // required
72+
* name: "STRING_VALUE", // required
73+
* source: { // DocumentSource Union: only one key present
74+
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
75+
* },
76+
* },
7077
* toolUse: { // ToolUseBlock
7178
* toolUseId: "STRING_VALUE", // required
7279
* name: "STRING_VALUE", // required
@@ -84,6 +91,13 @@ export interface ConverseStreamCommandOutput extends ConverseStreamResponse, __M
8491
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
8592
* },
8693
* },
94+
* document: {
95+
* format: "pdf" || "csv" || "doc" || "docx" || "xls" || "xlsx" || "html" || "txt" || "md", // required
96+
* name: "STRING_VALUE", // required
97+
* source: {// Union: only one key present
98+
* bytes: new Uint8Array(), // e.g. Buffer.from("") or new TextEncoder().encode("")
99+
* },
100+
* },
87101
* },
88102
* ],
89103
* status: "success" || "error",

clients/client-bedrock-runtime/src/models/models_0.ts

+125
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,89 @@ export interface InferenceConfiguration {
111111
stopSequences?: string[];
112112
}
113113

114+
/**
115+
* @public
116+
* @enum
117+
*/
118+
export const DocumentFormat = {
119+
CSV: "csv",
120+
DOC: "doc",
121+
DOCX: "docx",
122+
HTML: "html",
123+
MD: "md",
124+
PDF: "pdf",
125+
TXT: "txt",
126+
XLS: "xls",
127+
XLSX: "xlsx",
128+
} as const;
129+
130+
/**
131+
* @public
132+
*/
133+
export type DocumentFormat = (typeof DocumentFormat)[keyof typeof DocumentFormat];
134+
135+
/**
136+
* <p>Contains the content of the document included in a message when sending a <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html">Converse</a> or <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html">ConverseStream</a> request or in the response.</p>
137+
* @public
138+
*/
139+
export type DocumentSource = DocumentSource.BytesMember | DocumentSource.$UnknownMember;
140+
141+
/**
142+
* @public
143+
*/
144+
export namespace DocumentSource {
145+
/**
146+
* <p>A base64-encoded string of a UTF-8 encoded file, that is the document to include in the message.</p>
147+
* @public
148+
*/
149+
export interface BytesMember {
150+
bytes: Uint8Array;
151+
$unknown?: never;
152+
}
153+
154+
/**
155+
* @public
156+
*/
157+
export interface $UnknownMember {
158+
bytes?: never;
159+
$unknown: [string, any];
160+
}
161+
162+
export interface Visitor<T> {
163+
bytes: (value: Uint8Array) => T;
164+
_: (name: string, value: any) => T;
165+
}
166+
167+
export const visit = <T>(value: DocumentSource, visitor: Visitor<T>): T => {
168+
if (value.bytes !== undefined) return visitor.bytes(value.bytes);
169+
return visitor._(value.$unknown[0], value.$unknown[1]);
170+
};
171+
}
172+
173+
/**
174+
* <p>A document to include in a message when sending a <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html">Converse</a> or <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html">ConverseStream</a> request. You can include up to 5 documents in a request. The maximum document size is 50 MB.</p>
175+
* @public
176+
*/
177+
export interface DocumentBlock {
178+
/**
179+
* <p>The format of a document, or its extension.</p>
180+
* @public
181+
*/
182+
format: DocumentFormat | undefined;
183+
184+
/**
185+
* <p>A name for the document.</p>
186+
* @public
187+
*/
188+
name: string | undefined;
189+
190+
/**
191+
* <p>Contains the content of the document.</p>
192+
* @public
193+
*/
194+
source: DocumentSource | undefined;
195+
}
196+
114197
/**
115198
* <p>A text block that contains text that you want to assess with a guardrail. For more information, see <a>GuardrailConverseContentBlock</a>.</p>
116199
* @public
@@ -242,6 +325,7 @@ export interface ImageBlock {
242325
* @public
243326
*/
244327
export type ToolResultContentBlock =
328+
| ToolResultContentBlock.DocumentMember
245329
| ToolResultContentBlock.ImageMember
246330
| ToolResultContentBlock.JsonMember
247331
| ToolResultContentBlock.TextMember
@@ -259,6 +343,7 @@ export namespace ToolResultContentBlock {
259343
json: __DocumentType;
260344
text?: never;
261345
image?: never;
346+
document?: never;
262347
$unknown?: never;
263348
}
264349

@@ -270,6 +355,7 @@ export namespace ToolResultContentBlock {
270355
json?: never;
271356
text: string;
272357
image?: never;
358+
document?: never;
273359
$unknown?: never;
274360
}
275361

@@ -284,6 +370,19 @@ export namespace ToolResultContentBlock {
284370
json?: never;
285371
text?: never;
286372
image: ImageBlock;
373+
document?: never;
374+
$unknown?: never;
375+
}
376+
377+
/**
378+
* <p>A tool result that is a document.</p>
379+
* @public
380+
*/
381+
export interface DocumentMember {
382+
json?: never;
383+
text?: never;
384+
image?: never;
385+
document: DocumentBlock;
287386
$unknown?: never;
288387
}
289388

@@ -294,20 +393,23 @@ export namespace ToolResultContentBlock {
294393
json?: never;
295394
text?: never;
296395
image?: never;
396+
document?: never;
297397
$unknown: [string, any];
298398
}
299399

300400
export interface Visitor<T> {
301401
json: (value: __DocumentType) => T;
302402
text: (value: string) => T;
303403
image: (value: ImageBlock) => T;
404+
document: (value: DocumentBlock) => T;
304405
_: (name: string, value: any) => T;
305406
}
306407

307408
export const visit = <T>(value: ToolResultContentBlock, visitor: Visitor<T>): T => {
308409
if (value.json !== undefined) return visitor.json(value.json);
309410
if (value.text !== undefined) return visitor.text(value.text);
310411
if (value.image !== undefined) return visitor.image(value.image);
412+
if (value.document !== undefined) return visitor.document(value.document);
311413
return visitor._(value.$unknown[0], value.$unknown[1]);
312414
};
313415
}
@@ -384,6 +486,7 @@ export interface ToolUseBlock {
384486
* @public
385487
*/
386488
export type ContentBlock =
489+
| ContentBlock.DocumentMember
387490
| ContentBlock.GuardContentMember
388491
| ContentBlock.ImageMember
389492
| ContentBlock.TextMember
@@ -402,6 +505,7 @@ export namespace ContentBlock {
402505
export interface TextMember {
403506
text: string;
404507
image?: never;
508+
document?: never;
405509
toolUse?: never;
406510
toolResult?: never;
407511
guardContent?: never;
@@ -418,6 +522,21 @@ export namespace ContentBlock {
418522
export interface ImageMember {
419523
text?: never;
420524
image: ImageBlock;
525+
document?: never;
526+
toolUse?: never;
527+
toolResult?: never;
528+
guardContent?: never;
529+
$unknown?: never;
530+
}
531+
532+
/**
533+
* <p>A document to include in the message.</p>
534+
* @public
535+
*/
536+
export interface DocumentMember {
537+
text?: never;
538+
image?: never;
539+
document: DocumentBlock;
421540
toolUse?: never;
422541
toolResult?: never;
423542
guardContent?: never;
@@ -431,6 +550,7 @@ export namespace ContentBlock {
431550
export interface ToolUseMember {
432551
text?: never;
433552
image?: never;
553+
document?: never;
434554
toolUse: ToolUseBlock;
435555
toolResult?: never;
436556
guardContent?: never;
@@ -444,6 +564,7 @@ export namespace ContentBlock {
444564
export interface ToolResultMember {
445565
text?: never;
446566
image?: never;
567+
document?: never;
447568
toolUse?: never;
448569
toolResult: ToolResultBlock;
449570
guardContent?: never;
@@ -462,6 +583,7 @@ export namespace ContentBlock {
462583
export interface GuardContentMember {
463584
text?: never;
464585
image?: never;
586+
document?: never;
465587
toolUse?: never;
466588
toolResult?: never;
467589
guardContent: GuardrailConverseContentBlock;
@@ -474,6 +596,7 @@ export namespace ContentBlock {
474596
export interface $UnknownMember {
475597
text?: never;
476598
image?: never;
599+
document?: never;
477600
toolUse?: never;
478601
toolResult?: never;
479602
guardContent?: never;
@@ -483,6 +606,7 @@ export namespace ContentBlock {
483606
export interface Visitor<T> {
484607
text: (value: string) => T;
485608
image: (value: ImageBlock) => T;
609+
document: (value: DocumentBlock) => T;
486610
toolUse: (value: ToolUseBlock) => T;
487611
toolResult: (value: ToolResultBlock) => T;
488612
guardContent: (value: GuardrailConverseContentBlock) => T;
@@ -492,6 +616,7 @@ export namespace ContentBlock {
492616
export const visit = <T>(value: ContentBlock, visitor: Visitor<T>): T => {
493617
if (value.text !== undefined) return visitor.text(value.text);
494618
if (value.image !== undefined) return visitor.image(value.image);
619+
if (value.document !== undefined) return visitor.document(value.document);
495620
if (value.toolUse !== undefined) return visitor.toolUse(value.toolUse);
496621
if (value.toolResult !== undefined) return visitor.toolResult(value.toolResult);
497622
if (value.guardContent !== undefined) return visitor.guardContent(value.guardContent);

0 commit comments

Comments
 (0)