export type BedrockContentBlock = {text?: string | undefined, image?: ({format?: ('jpeg' | 'png' | 'gif' | 'webp') | undefined, source?: ({bytes?: string | undefined}) | undefined}) | undefined, document?: ({format?: ('pdf' | 'csv' | 'doc' | 'docx' | 'xls' | 'xlsx' | 'html' | 'txt' | 'md') | undefined, name?: string | undefined, source?: ({bytes?: string | undefined, text?: string | undefined}) | undefined}) | undefined, toolUse?: ({toolUseId?: string | undefined, name?: string | undefined, input?: Record | undefined}) | undefined, toolResult?: ({toolUseId?: string | undefined, content?: Array | undefined, status?: ('success' | 'error') | undefined}) | undefined, guardContent?: ({text?: ({text?: string | undefined, qualifiers?: Array | undefined}) | undefined}) | undefined, reasoningContent?: ({reasoningText?: ({text?: string | undefined, signature?: string | undefined}) | undefined}) | undefined, json?: Record | undefined, cachePoint?: ({type?: 'default' | undefined}) | undefined}; export type BedrockMessage = {role: 'user' | 'assistant', content: Array}; export type BedrockConverseRequest = {messages?: Array | undefined, system?: (Array<{text?: string | undefined, guardContent?: ({text?: ({text?: string | undefined, qualifiers?: Array | undefined}) | undefined}) | undefined, cachePoint?: ({type?: 'default' | undefined}) | undefined}>) | undefined, inferenceConfig?: ({maxTokens?: number | undefined, temperature?: number | undefined, topP?: number | undefined, stopSequences?: Array | undefined}) | undefined, toolConfig?: ({tools?: (Array<{toolSpec?: ({name?: string | undefined, description?: string | undefined, inputSchema?: ({json?: Record | undefined}) | undefined}) | undefined, cachePoint?: ({type?: 'default' | undefined}) | undefined}>) | undefined, toolChoice?: ({auto?: Record | undefined, any?: Record | undefined, tool?: ({name?: string | undefined}) | undefined}) | undefined}) | undefined, guardrailConfig?: ({guardrailIdentifier?: string | undefined, guardrailVersion?: string | undefined, trace?: ('enabled' | 'disabled') | undefined}) | undefined, additionalModelRequestFields?: Record | undefined, additionalModelResponseFieldPaths?: Array | undefined, performanceConfig?: ({latency?: ('standard' | 'optimized') | undefined}) | undefined, promptVariables?: ({[key: string]: {text?: string | undefined}}) | undefined, requestMetadata?: {[key: string]: string} | undefined, serviceTier?: ({type?: ('reserved' | 'priority' | 'default' | 'flex') | undefined}) | undefined, fallbacks?: Array | undefined}; export type CreateApiLangchainBedrockModelModelIdConverseStreamArgs = {modelId: string, body: BedrockConverseRequest}; export type CreateApiLangchainBedrockModelModelIdConverseStreamOptions = {baseUrl?: string | undefined, BearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Stream converse with model (LangChain - Bedrock format) * * POST /langchain/bedrock/model/{modelId}/converse-stream * * Also accepts auth: BasicAuth, VirtualKeyAuth, ApiKeyAuth */ export const createApiLangchainBedrockModelModelIdConverseStream = async (args: CreateApiLangchainBedrockModelModelIdConverseStreamArgs, options?: CreateApiLangchainBedrockModelModelIdConverseStreamOptions) => { const {baseUrl = "http://localhost:8080", fetch: fetchFn = fetch, BearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/x-amz-eventstream") if (BearerAuth !== undefined) headers.set('authorization', `Bearer ${BearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/langchain/bedrock/model/${encodeURIComponent(String(args.modelId))}/converse-stream${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };