diff --git a/packages/openai/src/openai-chat-language-model.ts b/packages/openai/src/openai-chat-language-model.ts index 521b61af12fc..6fb52d0112a4 100644 --- a/packages/openai/src/openai-chat-language-model.ts +++ b/packages/openai/src/openai-chat-language-model.ts @@ -188,6 +188,41 @@ export class OpenAIChatLanguageModel implements LanguageModelV1 { }; } + async doRawStream( + options: Parameters[0], + ): Promise>> { + const args = this.getArgs(options); + + const { responseHeaders, value: response } = await postJsonToApi({ + url: `${this.config.baseURL}/chat/completions`, + headers: this.config.headers(), + body: { + ...args, + stream: true, + + // only include stream_options when in strict compatibility mode: + stream_options: + this.config.compatibility === 'strict' + ? { include_usage: true } + : undefined, + }, + failedResponseHandler: openaiFailedResponseHandler, + successfulResponseHandler: createEventSourceResponseHandler( + openaiChatChunkSchema, + ), + abortSignal: options.abortSignal, + }); + + const { messages: rawPrompt, ...rawSettings } = args; + + return { + stream: response, + rawCall: { rawPrompt, rawSettings }, + rawResponse: { headers: responseHeaders }, + warnings: [], + }; + } + async doStream( options: Parameters[0], ): Promise>> {