mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-09 14:59:27 +08:00
feat(gemini): add thinking level mapping for Gemini 3 models
Implement mapping between reasoning effort options and Gemini's thinking levels. Enable thinking config for Gemini 3 models to support advanced reasoning features.
This commit is contained in:
parent
d3aa000457
commit
beafebedb9
@ -34,7 +34,7 @@ import {
|
|||||||
} from '@renderer/config/models'
|
} from '@renderer/config/models'
|
||||||
import { getStoreSetting } from '@renderer/hooks/useSettings'
|
import { getStoreSetting } from '@renderer/hooks/useSettings'
|
||||||
import { getAssistantSettings, getProviderByModel } from '@renderer/services/AssistantService'
|
import { getAssistantSettings, getProviderByModel } from '@renderer/services/AssistantService'
|
||||||
import type { Assistant, Model } from '@renderer/types'
|
import type { Assistant, Model, ReasoningEffortOption } from '@renderer/types'
|
||||||
import { EFFORT_RATIO, isSystemProvider, SystemProviderIds } from '@renderer/types'
|
import { EFFORT_RATIO, isSystemProvider, SystemProviderIds } from '@renderer/types'
|
||||||
import type { OpenAIReasoningSummary } from '@renderer/types/aiCoreTypes'
|
import type { OpenAIReasoningSummary } from '@renderer/types/aiCoreTypes'
|
||||||
import type { ReasoningEffortOptionalParams } from '@renderer/types/sdk'
|
import type { ReasoningEffortOptionalParams } from '@renderer/types/sdk'
|
||||||
@ -533,20 +533,25 @@ export function getAnthropicReasoningParams(
|
|||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
|
|
||||||
// type GoogleThinkingLevel = NonNullable<GoogleGenerativeAIProviderOptions['thinkingConfig']>['thinkingLevel']
|
type GoogleThinkingLevel = NonNullable<GoogleGenerativeAIProviderOptions['thinkingConfig']>['thinkingLevel']
|
||||||
|
|
||||||
// function mapToGeminiThinkingLevel(reasoningEffort: ReasoningEffortOption): GoogelThinkingLevel {
|
function mapToGeminiThinkingLevel(reasoningEffort: ReasoningEffortOption): GoogleThinkingLevel {
|
||||||
// switch (reasoningEffort) {
|
switch (reasoningEffort) {
|
||||||
// case 'low':
|
case 'default':
|
||||||
// return 'low'
|
return undefined
|
||||||
// case 'medium':
|
case 'minimal':
|
||||||
// return 'medium'
|
return 'minimal'
|
||||||
// case 'high':
|
case 'low':
|
||||||
// return 'high'
|
return 'low'
|
||||||
// default:
|
case 'medium':
|
||||||
// return 'medium'
|
return 'medium'
|
||||||
// }
|
case 'high':
|
||||||
// }
|
return 'high'
|
||||||
|
default:
|
||||||
|
logger.warn('Unknown thinking level for Gemini. Fallback to medium instead.', { reasoningEffort })
|
||||||
|
return 'medium'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取 Gemini 推理参数
|
* 获取 Gemini 推理参数
|
||||||
@ -581,13 +586,14 @@ export function getGeminiReasoningParams(
|
|||||||
|
|
||||||
// TODO: 很多中转还不支持
|
// TODO: 很多中转还不支持
|
||||||
// https://ai.google.dev/gemini-api/docs/gemini-3?thinking=high#new_api_features_in_gemini_3
|
// https://ai.google.dev/gemini-api/docs/gemini-3?thinking=high#new_api_features_in_gemini_3
|
||||||
// if (isGemini3ThinkingTokenModel(model)) {
|
if (isGemini3ThinkingTokenModel(model)) {
|
||||||
// return {
|
return {
|
||||||
// thinkingConfig: {
|
thinkingConfig: {
|
||||||
// thinkingLevel: mapToGeminiThinkingLevel(reasoningEffort)
|
includeThoughts: true,
|
||||||
// }
|
thinkingLevel: mapToGeminiThinkingLevel(reasoningEffort)
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const effortRatio = EFFORT_RATIO[reasoningEffort]
|
const effortRatio = EFFORT_RATIO[reasoningEffort]
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user