diff --git a/src/api/providers/bedrock.ts b/src/api/providers/bedrock.ts index 75a0c980b1..59a85fd178 100644 --- a/src/api/providers/bedrock.ts +++ b/src/api/providers/bedrock.ts @@ -14,6 +14,8 @@ export class AwsBedrockHandler implements ApiHandler { } async *createMessage(systemPrompt: string, messages: Anthropic.Messages.MessageParam[]): ApiStream { + let budget_tokens = this.options.thinkingBudgetTokens || 0 + const reasoningOn = budget_tokens !== 0 ? true : false // cross region inference requires prefixing the model id with the region let modelId = await this.getModelId() @@ -24,7 +26,8 @@ export class AwsBedrockHandler implements ApiHandler { const stream = await client.messages.create({ model: modelId, max_tokens: this.getModel().info.maxTokens || 8192, - temperature: 0, + thinking: reasoningOn ? { type: "enabled", budget_tokens: budget_tokens } : undefined, + temperature: reasoningOn ? undefined : 0, system: systemPrompt, messages, stream: true, diff --git a/src/api/providers/vertex.ts b/src/api/providers/vertex.ts index 314095ac3f..c88ceb5028 100644 --- a/src/api/providers/vertex.ts +++ b/src/api/providers/vertex.ts @@ -24,6 +24,9 @@ export class VertexHandler implements ApiHandler { const model = this.getModel() const modelId = model.id + let budget_tokens = this.options.thinkingBudgetTokens || 0 + const reasoningOn = budget_tokens !== 0 ? true : false + let stream switch (modelId) { case "claude-3-7-sonnet@20250219": @@ -44,7 +47,8 @@ export class VertexHandler implements ApiHandler { { model: modelId, max_tokens: model.info.maxTokens || 8192, - temperature: 0, + thinking: reasoningOn ? { type: "enabled", budget_tokens: budget_tokens } : undefined, + temperature: reasoningOn ? undefined : 0, system: [ { text: systemPrompt, diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index f05cb3d56f..67724a816b 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -1201,7 +1201,9 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is {selectedProvider === "xai" && createDropdown(xaiModels)} - {selectedProvider === "anthropic" && selectedModelId === "claude-3-7-sonnet-20250219" && ( + {((selectedProvider === "anthropic" && selectedModelId === "claude-3-7-sonnet-20250219") || + (selectedProvider === "bedrock" && selectedModelId === "anthropic.claude-3-7-sonnet-20250219-v1:0") || + (selectedProvider === "vertex" && selectedModelId === "claude-3-7-sonnet@20250219")) && ( )}