mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-24 10:40:07 +08:00
fix: gpt-oss should support temperature and topP (#9390)
* fix: 修复OpenAI推理模型温度控制判断逻辑 添加isOpenAIOpenWeightModel检查以排除开源权重模型 * fix(openai): 修正开发者角色设置条件逻辑 修改系统消息中开发者角色设置的条件判断,增加对OpenAIOpenWeightModel的检查
This commit is contained in:
parent
daaf685c9e
commit
c7dcbdcb5b
@ -11,6 +11,7 @@ import {
|
||||
isGPT5SeriesModel,
|
||||
isGrokReasoningModel,
|
||||
isNotSupportSystemMessageModel,
|
||||
isOpenAIOpenWeightModel,
|
||||
isOpenAIReasoningModel,
|
||||
isQwenAlwaysThinkModel,
|
||||
isQwenMTModel,
|
||||
@ -531,12 +532,12 @@ export class OpenAIAPIClient extends OpenAIBaseClient<
|
||||
// 1. 处理系统消息
|
||||
const systemMessage = { role: 'system', content: assistant.prompt || '' }
|
||||
|
||||
if (isSupportedReasoningEffortOpenAIModel(model)) {
|
||||
if (isSupportDeveloperRoleProvider(this.provider)) {
|
||||
systemMessage.role = 'developer'
|
||||
} else {
|
||||
systemMessage.role = 'system'
|
||||
}
|
||||
if (
|
||||
isSupportedReasoningEffortOpenAIModel(model) &&
|
||||
isSupportDeveloperRoleProvider(this.provider) &&
|
||||
!isOpenAIOpenWeightModel(model)
|
||||
) {
|
||||
systemMessage.role = 'developer'
|
||||
}
|
||||
|
||||
if (model.id.includes('o1-mini') || model.id.includes('o1-preview')) {
|
||||
|
||||
@ -5,6 +5,7 @@ import {
|
||||
isGPT5SeriesModel,
|
||||
isOpenAIChatCompletionOnlyModel,
|
||||
isOpenAILLMModel,
|
||||
isOpenAIOpenWeightModel,
|
||||
isSupportedReasoningEffortOpenAIModel,
|
||||
isSupportVerbosityModel,
|
||||
isVisionModel
|
||||
@ -374,12 +375,12 @@ export class OpenAIResponseAPIClient extends OpenAIBaseClient<
|
||||
text: assistant.prompt || '',
|
||||
type: 'input_text'
|
||||
}
|
||||
if (isSupportedReasoningEffortOpenAIModel(model)) {
|
||||
if (isSupportDeveloperRoleProvider(this.provider)) {
|
||||
systemMessage.role = 'developer'
|
||||
} else {
|
||||
systemMessage.role = 'system'
|
||||
}
|
||||
if (
|
||||
isSupportedReasoningEffortOpenAIModel(model) &&
|
||||
isSupportDeveloperRoleProvider(this.provider) &&
|
||||
isOpenAIOpenWeightModel(model)
|
||||
) {
|
||||
systemMessage.role = 'developer'
|
||||
}
|
||||
|
||||
// 2. 设置工具
|
||||
|
||||
@ -2909,7 +2909,11 @@ export function isNotSupportTemperatureAndTopP(model: Model): boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
if (isOpenAIReasoningModel(model) || isOpenAIChatCompletionOnlyModel(model) || isQwenMTModel(model)) {
|
||||
if (
|
||||
(isOpenAIReasoningModel(model) && !isOpenAIOpenWeightModel(model)) ||
|
||||
isOpenAIChatCompletionOnlyModel(model) ||
|
||||
isQwenMTModel(model)
|
||||
) {
|
||||
return true
|
||||
}
|
||||
|
||||
@ -3254,5 +3258,10 @@ export const isGPT5SeriesModel = (model: Model) => {
|
||||
return modelId.includes('gpt-5')
|
||||
}
|
||||
|
||||
export const isOpenAIOpenWeightModel = (model: Model) => {
|
||||
const modelId = getLowerBaseModelName(model.id)
|
||||
return modelId.includes('gpt-oss')
|
||||
}
|
||||
|
||||
// zhipu 视觉推理模型用这组 special token 标记推理结果
|
||||
export const ZHIPU_RESULT_TOKENS = ['<|begin_of_box|>', '<|end_of_box|>'] as const
|
||||
|
||||
Loading…
Reference in New Issue
Block a user