feat(Grok): add isGrokModel function and update systemMessage handling for Grok models (#4823)

This commit is contained in:
Asurada 2025-04-15 03:15:07 +08:00 committed by GitHub
parent f0f44d5768
commit 5fbff8c1fe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 3 deletions

View File

@ -2220,6 +2220,13 @@ export function isSupportedReasoningEffortModel(model?: Model): boolean {
return false return false
} }
export function isGrokModel(model?: Model): boolean {
if (!model) {
return false
}
return model.id.includes('grok')
}
export function isGrokReasoningModel(model?: Model): boolean { export function isGrokReasoningModel(model?: Model): boolean {
if (!model) { if (!model) {
return false return false

View File

@ -1,6 +1,7 @@
import { DEFAULT_MAX_TOKENS } from '@renderer/config/constant' import { DEFAULT_MAX_TOKENS } from '@renderer/config/constant'
import { import {
getOpenAIWebSearchParams, getOpenAIWebSearchParams,
isGrokModel,
isGrokReasoningModel, isGrokReasoningModel,
isHunyuanSearchModel, isHunyuanSearchModel,
isOpenAIoSeries, isOpenAIoSeries,
@ -382,9 +383,13 @@ export default class OpenAIProvider extends BaseProvider {
const { signal } = abortController const { signal } = abortController
await this.checkIsCopilot() await this.checkIsCopilot()
const reqMessages: ChatCompletionMessageParam[] = [systemMessage, ...userMessages].filter( // Grok 模型要求每条消息都不能为空,所以当是 Grok 模型且 systemMessage 内容为空时不发送 systemMessage
Boolean let reqMessages: ChatCompletionMessageParam[]
) as ChatCompletionMessageParam[] if (isGrokModel(model) && !systemMessage.content) {
reqMessages = [...userMessages]
} else {
reqMessages = [systemMessage, ...userMessages].filter(Boolean) as ChatCompletionMessageParam[]
}
const toolResponses: MCPToolResponse[] = [] const toolResponses: MCPToolResponse[] = []
let firstChunk = true let firstChunk = true