mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-11 16:39:15 +08:00
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
|
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> {
|
async completions({ messages, assistant, onChunk, onFilterMessages }: CompletionsParams): Promise<void> {
|
||||||
const defaultModel = getDefaultModel()
|
const defaultModel = getDefaultModel()
|
||||||
const model = assistant.model || defaultModel
|
const model = assistant.model || defaultModel
|
||||||
@ -175,6 +187,7 @@ export default class OpenAIProvider extends BaseProvider {
|
|||||||
keep_alive: this.keepAliveTime,
|
keep_alive: this.keepAliveTime,
|
||||||
stream: isSupportStreamOutput(),
|
stream: isSupportStreamOutput(),
|
||||||
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}),
|
...(assistant.enableWebSearch ? getOpenAIWebSearchParams(model) : {}),
|
||||||
|
...this.getProviderSpecificParameters(model),
|
||||||
...this.getCustomParameters(assistant)
|
...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_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 time_thinking_millsec = time_first_content_millsec ? time_first_content_millsec - start_time_millsec : 0
|
||||||
|
|
||||||
|
const delta = chunk.choices[0]?.delta
|
||||||
|
|
||||||
onChunk({
|
onChunk({
|
||||||
text: chunk.choices[0]?.delta?.content || '',
|
text: delta?.content || '',
|
||||||
// @ts-ignore key is not typed
|
// @ts-ignore key is not typed
|
||||||
reasoning_content: chunk.choices[0]?.delta?.reasoning_content || '',
|
reasoning_content: delta?.reasoning_content || delta.reasoning || '',
|
||||||
usage: chunk.usage,
|
usage: chunk.usage,
|
||||||
metrics: {
|
metrics: {
|
||||||
completion_tokens: chunk.usage?.completion_tokens,
|
completion_tokens: chunk.usage?.completion_tokens,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user