Fix: Add checkbox for stream_options in OpenAI-compatible providers

This commit is contained in:
Matt Rubens
2024-12-12 08:52:08 -05:00
parent 0f2ad7675a
commit 156cab8cbc
2 changed files with 10 additions and 3 deletions

View File

@@ -32,18 +32,24 @@ export class OpenAiHandler implements ApiHandler {
} }
} }
// Include stream_options for OpenAI Compatible providers if the checkbox is checked
async *createMessage(systemPrompt: string, messages: Anthropic.Messages.MessageParam[]): ApiStream { async *createMessage(systemPrompt: string, messages: Anthropic.Messages.MessageParam[]): ApiStream {
const openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [ const openAiMessages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{ role: "system", content: systemPrompt }, { role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages), ...convertToOpenAiMessages(messages),
] ]
const stream = await this.client.chat.completions.create({ const requestOptions: OpenAI.Chat.ChatCompletionCreateParams = {
model: this.options.openAiModelId ?? "", model: this.options.openAiModelId ?? "",
messages: openAiMessages, messages: openAiMessages,
temperature: 0, temperature: 0,
stream: true, stream: true,
stream_options: { include_usage: true }, }
})
if (this.options.includeStreamOptions) {
requestOptions.stream_options = { include_usage: true }
}
const stream = await this.client.chat.completions.create(requestOptions)
for await (const chunk of stream) { for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta const delta = chunk.choices[0]?.delta
if (delta?.content) { if (delta?.content) {

View File

@@ -34,6 +34,7 @@ export interface ApiHandlerOptions {
openAiNativeApiKey?: string openAiNativeApiKey?: string
azureApiVersion?: string azureApiVersion?: string
openRouterUseMiddleOutTransform?: boolean openRouterUseMiddleOutTransform?: boolean
includeStreamOptions?: boolean
} }
export type ApiConfiguration = ApiHandlerOptions & { export type ApiConfiguration = ApiHandlerOptions & {