feat(OpenAIProvider): Enhance model reasoning detection and stream output handling

- Update isOpenAIReasoning method to include 'o3' model prefix
- Rename isOpenAIo1 method to isOpenAIReasoning for clarity
This commit is contained in:
ousugo
2025-03-11 16:42:46 +08:00
committed by 亢奋猫
parent bc40e36f9a
commit 05ac544574
+7 -7
View File
@@ -166,7 +166,7 @@ export default class OpenAIProvider extends BaseProvider {
}
}
if (this.isOpenAIo1(model)) {
if (this.isOpenAIReasoning(model)) {
return {
max_tokens: undefined,
max_completion_tokens: maxTokens
@@ -232,8 +232,8 @@ export default class OpenAIProvider extends BaseProvider {
return {}
}
private isOpenAIo1(model: Model) {
return model.id.startsWith('o1')
private isOpenAIReasoning(model: Model) {
return model.id.startsWith('o1') || model.id.startsWith('o3')
}
async completions({ messages, assistant, onChunk, onFilterMessages, mcpTools }: CompletionsParams): Promise<void> {
@@ -262,10 +262,10 @@ export default class OpenAIProvider extends BaseProvider {
userMessages.push(await this.getMessageParam(message, model))
}
const isOpenAIo1 = this.isOpenAIo1(model)
const isOpenAIReasoning = this.isOpenAIReasoning(model)
const isSupportStreamOutput = () => {
if (isOpenAIo1) {
if (isOpenAIReasoning) {
return false
}
return streamOutput
@@ -482,13 +482,13 @@ export default class OpenAIProvider extends BaseProvider {
]
: [{ role: 'user', content: assistant.prompt }]
const isOpenAIo1 = this.isOpenAIo1(model)
const isOpenAIReasoning = this.isOpenAIReasoning(model)
const isSupportedStreamOutput = () => {
if (!onResponse) {
return false
}
if (isOpenAIo1) {
if (isOpenAIReasoning) {
return false
}
return true