feat: openrouter reasoning field and include_reasoning key #863
This commit is contained in:
parent
66c2c530c5
commit
3f3259784b
@ -129,6 +129,18 @@ export default class OpenAIProvider extends BaseProvider {
|
||||
return assistant?.settings?.temperature
|
||||
}
|
||||
|
||||
private getProviderSpecificParameters(model: Model) {
|
||||
if (this.provider.id === 'openrouter') {
|
||||
if (model.id.includes('deepseek-r1')) {
|
||||
return {
|
||||
include_reasoning: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {}
|
||||
}
|
||||
|
||||
async completions({ messages, assistant, onChunk, onFilterMessages }: CompletionsParams): Promise<void> {
|
||||
const defaultModel = getDefaultModel()
|
||||
const model = assistant.model || defaultModel
|
||||
@ -175,6 +187,7 @@ export default class OpenAIProvider extends BaseProvider {
|
||||
keep_alive: this.keepAliveTime,
|
||||
stream: isSupportStreamOutput(),
|
||||
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}),
|
||||
...this.getProviderSpecificParameters(model),
|
||||
...this.getCustomParameters(assistant)
|
||||
})
|
||||
|
||||
@ -207,10 +220,12 @@ export default class OpenAIProvider extends BaseProvider {
|
||||
const time_completion_millsec = new Date().getTime() - start_time_millsec
|
||||
const time_thinking_millsec = time_first_content_millsec ? time_first_content_millsec - start_time_millsec : 0
|
||||
|
||||
const delta = chunk.choices[0]?.delta
|
||||
|
||||
onChunk({
|
||||
text: chunk.choices[0]?.delta?.content || '',
|
||||
text: delta?.content || '',
|
||||
// @ts-ignore key is not typed
|
||||
reasoning_content: chunk.choices[0]?.delta?.reasoning_content || '',
|
||||
reasoning_content: delta?.reasoning_content || delta.reasoning || '',
|
||||
usage: chunk.usage,
|
||||
metrics: {
|
||||
completion_tokens: chunk.usage?.completion_tokens,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user