wip
parent
ccf1826400
commit
f3437d9a49
|
|
@ -125,7 +125,7 @@ export namespace ProviderTransform {
|
|||
cacheControl: { type: "ephemeral" },
|
||||
},
|
||||
openrouter: {
|
||||
cache_control: { type: "ephemeral" },
|
||||
cacheControl: { type: "ephemeral" },
|
||||
},
|
||||
bedrock: {
|
||||
cachePoint: { type: "ephemeral" },
|
||||
|
|
@ -244,14 +244,21 @@ export namespace ProviderTransform {
|
|||
return undefined
|
||||
}
|
||||
|
||||
export function thinking(model: Provider.Model, thinking: MessageV2.Thinking) {
|
||||
if (!model.capabilities.reasoning || thinking.effort === "default") return undefined
|
||||
export function thinking(model: Provider.Model, thinking: MessageV2.Thinking): Record<string, any> {
|
||||
if (!model.capabilities.reasoning || thinking.effort === "default") return {}
|
||||
|
||||
switch (model.api.npm) {
|
||||
case "@openrouter/ai-sdk-provider":
|
||||
return {
|
||||
reasoning: { effort: thinking.effort },
|
||||
}
|
||||
|
||||
case "@ai-sdk/xai":
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/xai
|
||||
case "@ai-sdk/deepinfra":
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/deepinfra
|
||||
case "@ai-sdk/azure":
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/azure
|
||||
case "@ai-sdk/openai-compatible":
|
||||
const result: Record<string, any> = {
|
||||
reasoningEffort: thinking.effort,
|
||||
|
|
@ -273,7 +280,48 @@ export namespace ProviderTransform {
|
|||
case "@ai-sdk/anthropic":
|
||||
// TODO: map to thinking budgets
|
||||
return {}
|
||||
|
||||
case "@ai-sdk/amazon-bedrock":
|
||||
// TODO: implement bedrock thinking options
|
||||
return {}
|
||||
case "@ai-sdk/google":
|
||||
// TODO: implement google thinking options
|
||||
return {}
|
||||
case "@ai-sdk/google-vertex":
|
||||
// TODO: implement google-vertex thinking options
|
||||
return {}
|
||||
case "@ai-sdk/gateway":
|
||||
// TODO: implement gateway thinking options
|
||||
return {}
|
||||
case "@ai-sdk/mistral":
|
||||
// TODO: implement mistral thinking options
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/mistral
|
||||
return {}
|
||||
|
||||
case "@ai-sdk/cerebras":
|
||||
// TODO: implement cerebras thinking options
|
||||
return {}
|
||||
case "@ai-sdk/cohere":
|
||||
// TODO: implement cohere thinking options
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/cohere
|
||||
return {}
|
||||
|
||||
case "@ai-sdk/groq":
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/groq
|
||||
return {
|
||||
reasoningFormat: "parsed",
|
||||
reasoningEffort: thinking.effort,
|
||||
}
|
||||
|
||||
case "@ai-sdk/perplexity":
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/perplexity
|
||||
return {}
|
||||
|
||||
case "@ai-sdk/togetherai":
|
||||
// https://v5.ai-sdk.dev/providers/ai-sdk-providers/togetherai
|
||||
return {}
|
||||
}
|
||||
return {}
|
||||
}
|
||||
|
||||
export function options(
|
||||
|
|
|
|||
|
|
@ -75,6 +75,13 @@ export namespace LLM {
|
|||
|
||||
const provider = await Provider.getProvider(input.model.providerID)
|
||||
|
||||
const options = pipe(
|
||||
ProviderTransform.options(input.model, input.sessionID, provider.options),
|
||||
mergeDeep(input.small ? ProviderTransform.smallOptions(input.model) : {}),
|
||||
mergeDeep(input.model.options),
|
||||
mergeDeep(input.agent.options),
|
||||
mergeDeep(input.user.thinking ? ProviderTransform.thinking(input.model, input.user.thinking) : {}),
|
||||
)
|
||||
const params = await Plugin.trigger(
|
||||
"chat.params",
|
||||
{
|
||||
|
|
@ -90,13 +97,7 @@ export namespace LLM {
|
|||
: undefined,
|
||||
topP: input.agent.topP ?? ProviderTransform.topP(input.model),
|
||||
topK: ProviderTransform.topK(input.model),
|
||||
options: pipe(
|
||||
{},
|
||||
mergeDeep(ProviderTransform.options(input.model, input.sessionID, provider.options)),
|
||||
input.small ? mergeDeep(ProviderTransform.smallOptions(input.model)) : mergeDeep({}),
|
||||
mergeDeep(input.model.options),
|
||||
mergeDeep(input.agent.options),
|
||||
),
|
||||
options,
|
||||
},
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue