|
|
@@ -137,12 +137,14 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const isGrokXAI = this._isGrokXAI(this.options.openAiBaseUrl)
|
|
|
+
|
|
|
const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
|
|
|
model: modelId,
|
|
|
temperature: this.options.modelTemperature ?? (deepseekReasoner ? DEEP_SEEK_DEFAULT_TEMPERATURE : 0),
|
|
|
messages: convertedMessages,
|
|
|
stream: true as const,
|
|
|
- stream_options: { include_usage: true },
|
|
|
+ ...(isGrokXAI ? {} : { stream_options: { include_usage: true } }),
|
|
|
}
|
|
|
if (this.options.includeMaxTokens) {
|
|
|
requestOptions.max_tokens = modelInfo.maxTokens
|
|
|
@@ -265,6 +267,8 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
|
|
|
if (this.options.openAiStreamingEnabled ?? true) {
|
|
|
const methodIsAzureAiInference = this._isAzureAiInference(this.options.openAiBaseUrl)
|
|
|
|
|
|
+ const isGrokXAI = this._isGrokXAI(this.options.openAiBaseUrl)
|
|
|
+
|
|
|
const stream = await this.client.chat.completions.create(
|
|
|
{
|
|
|
model: modelId,
|
|
|
@@ -276,7 +280,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
|
|
|
...convertToOpenAiMessages(messages),
|
|
|
],
|
|
|
stream: true,
|
|
|
- stream_options: { include_usage: true },
|
|
|
+ ...(isGrokXAI ? {} : { stream_options: { include_usage: true } }),
|
|
|
reasoning_effort: this.getModel().info.reasoningEffort,
|
|
|
},
|
|
|
methodIsAzureAiInference ? { path: AZURE_AI_INFERENCE_PATH } : {},
|
|
|
@@ -337,6 +341,11 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private _isGrokXAI(baseUrl?: string): boolean {
|
|
|
+ const urlHost = this._getUrlHost(baseUrl)
|
|
|
+ return urlHost.includes("x.ai")
|
|
|
+ }
|
|
|
+
|
|
|
private _isAzureAiInference(baseUrl?: string): boolean {
|
|
|
const urlHost = this._getUrlHost(baseUrl)
|
|
|
return urlHost.endsWith(".services.ai.azure.com")
|