export type BedrockInvokeRequest = {prompt?: string | undefined, max_tokens?: number | undefined, max_tokens_to_sample?: number | undefined, temperature?: number | undefined, top_p?: number | undefined, top_k?: number | undefined, stop?: Array | undefined, stop_sequences?: Array | undefined, messages?: Array> | undefined, system?: (string | Array) | undefined, anthropic_version?: string | undefined}; export type CreateApiBedrockModelModelIdInvokeWithResponseStreamArgs = {modelId: string, body: BedrockInvokeRequest}; export type CreateApiBedrockModelModelIdInvokeWithResponseStreamOptions = {baseUrl?: string | undefined, BearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Invoke model with streaming (Bedrock format) * * POST /bedrock/model/{modelId}/invoke-with-response-stream * * Also accepts auth: BasicAuth, VirtualKeyAuth, ApiKeyAuth */ export const createApiBedrockModelModelIdInvokeWithResponseStream = async (args: CreateApiBedrockModelModelIdInvokeWithResponseStreamArgs, options?: CreateApiBedrockModelModelIdInvokeWithResponseStreamOptions) => { 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(/\/+$/, '')}/bedrock/model/${encodeURIComponent(String(args.modelId))}/invoke-with-response-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() };