mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 13:31:32 +08:00
feat: extend buildStreamTextParams to include capabilities for enhanced AI functionality
- Updated the return type of `buildStreamTextParams` to include `capabilities` for reasoning, web search, and image generation. - Modified `fetchChatCompletion` to utilize the new capabilities structure, improving middleware configuration based on model capabilities.
This commit is contained in:
parent
ef616e1c3b
commit
54c36040af
@ -194,13 +194,18 @@ export async function buildStreamTextParams(
|
||||
headers?: Record<string, string>
|
||||
}
|
||||
} = {}
|
||||
): Promise<{ params: StreamTextParams; modelId: string }> {
|
||||
): Promise<{
|
||||
params: StreamTextParams
|
||||
modelId: string
|
||||
capabilities: { enableReasoning?: boolean; enableWebSearch?: boolean; enableGenerateImage?: boolean }
|
||||
}> {
|
||||
const { mcpTools, enableTools } = options
|
||||
|
||||
const model = assistant.model || getDefaultModel()
|
||||
|
||||
const { maxTokens, reasoning_effort } = getAssistantSettings(assistant)
|
||||
|
||||
// 这三个变量透传出来,交给下面动态启用插件/中间件
|
||||
const enableReasoning =
|
||||
((isSupportedThinkingTokenModel(model) || isSupportedReasoningEffortModel(model)) &&
|
||||
reasoning_effort !== undefined) ||
|
||||
@ -244,7 +249,7 @@ export async function buildStreamTextParams(
|
||||
maxSteps: 10
|
||||
}
|
||||
|
||||
return { params, modelId: model.id }
|
||||
return { params, modelId: model.id, capabilities: { enableReasoning, enableWebSearch, enableGenerateImage } }
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -301,19 +301,22 @@ export async function fetchChatCompletion({
|
||||
const mcpTools = await fetchMcpTools(assistant)
|
||||
|
||||
// 使用 transformParameters 模块构建参数
|
||||
const { params: aiSdkParams, modelId } = await buildStreamTextParams(messages, assistant, {
|
||||
const {
|
||||
params: aiSdkParams,
|
||||
modelId,
|
||||
capabilities
|
||||
} = await buildStreamTextParams(messages, assistant, {
|
||||
mcpTools: mcpTools,
|
||||
enableTools: isEnabledToolUse(assistant),
|
||||
requestOptions: options
|
||||
})
|
||||
console.log('assistant.settings?.reasoning_effort', assistant.settings?.reasoning_effort)
|
||||
|
||||
const middlewareConfig: AiSdkMiddlewareConfig = {
|
||||
streamOutput: assistant.settings?.streamOutput ?? true,
|
||||
onChunk: onChunkReceived,
|
||||
model: assistant.model,
|
||||
provider: provider,
|
||||
// FIXME: 这里需要根据模型来判断是否启用推理
|
||||
enableReasoning: assistant.settings?.reasoning_effort !== undefined,
|
||||
enableReasoning: capabilities.enableReasoning,
|
||||
enableTool: assistant.settings?.toolUseMode === 'prompt',
|
||||
mcpTools
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user