| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import { BetaThinkingConfigParam } from "@anthropic-ai/sdk/resources/beta"
- import OpenAI from "openai"
- import type { ModelInfo, ProviderSettings } from "@roo-code/types"
- import { shouldUseReasoningBudget, shouldUseReasoningEffort } from "../../shared/api"
- type ReasoningEffort = "low" | "medium" | "high"
- export type OpenRouterReasoningParams = {
- effort?: ReasoningEffort
- max_tokens?: number
- exclude?: boolean
- }
- export type AnthropicReasoningParams = BetaThinkingConfigParam
- export type OpenAiReasoningParams = { reasoning_effort: OpenAI.Chat.ChatCompletionCreateParams["reasoning_effort"] }
- export type GetModelReasoningOptions = {
- model: ModelInfo
- reasoningBudget: number | undefined
- reasoningEffort: ReasoningEffort | undefined
- settings: ProviderSettings
- }
- export const getOpenRouterReasoning = ({
- model,
- reasoningBudget,
- reasoningEffort,
- settings,
- }: GetModelReasoningOptions): OpenRouterReasoningParams | undefined =>
- shouldUseReasoningBudget({ model, settings })
- ? { max_tokens: reasoningBudget }
- : shouldUseReasoningEffort({ model, settings })
- ? { effort: reasoningEffort }
- : undefined
- export const getAnthropicReasoning = ({
- model,
- reasoningBudget,
- settings,
- }: GetModelReasoningOptions): AnthropicReasoningParams | undefined =>
- shouldUseReasoningBudget({ model, settings }) ? { type: "enabled", budget_tokens: reasoningBudget! } : undefined
- export const getOpenAiReasoning = ({
- model,
- reasoningEffort,
- settings,
- }: GetModelReasoningOptions): OpenAiReasoningParams | undefined =>
- shouldUseReasoningEffort({ model, settings }) ? { reasoning_effort: reasoningEffort } : undefined
|