chore: Update Anthropic token configs (#204)
This commit is contained in:
@@ -30,6 +30,8 @@ function buildModelSettings(
|
||||
const isGoogleVertex = modelHandle.startsWith("google_vertex/");
|
||||
const isOpenRouter = modelHandle.startsWith("openrouter/");
|
||||
|
||||
let settings: ModelSettings;
|
||||
|
||||
if (isOpenAI || isOpenRouter) {
|
||||
const openaiSettings: OpenAIModelSettings = {
|
||||
provider_type: "openai",
|
||||
@@ -45,30 +47,26 @@ function buildModelSettings(
|
||||
| "high",
|
||||
};
|
||||
}
|
||||
// If a max_output_tokens override is provided in the model's updateArgs,
|
||||
// propagate it into the OpenAI model settings so the backend can raise
|
||||
// the generation cap (prevents premature ResponseIncompleteEvent with
|
||||
// reason='max_output_tokens').
|
||||
if (typeof updateArgs?.max_output_tokens === "number") {
|
||||
openaiSettings.max_output_tokens = updateArgs.max_output_tokens as number;
|
||||
}
|
||||
return openaiSettings;
|
||||
}
|
||||
|
||||
if (isAnthropic) {
|
||||
settings = openaiSettings;
|
||||
} else if (isAnthropic) {
|
||||
const anthropicSettings: AnthropicModelSettings = {
|
||||
provider_type: "anthropic",
|
||||
parallel_tool_calls: true,
|
||||
};
|
||||
if (updateArgs?.enable_reasoner !== undefined) {
|
||||
// Build thinking config if either enable_reasoner or max_reasoning_tokens is specified
|
||||
if (
|
||||
updateArgs?.enable_reasoner !== undefined ||
|
||||
typeof updateArgs?.max_reasoning_tokens === "number"
|
||||
) {
|
||||
anthropicSettings.thinking = {
|
||||
type: updateArgs.enable_reasoner ? "enabled" : "disabled",
|
||||
type: updateArgs?.enable_reasoner === false ? "disabled" : "enabled",
|
||||
...(typeof updateArgs?.max_reasoning_tokens === "number" && {
|
||||
budget_tokens: updateArgs.max_reasoning_tokens,
|
||||
}),
|
||||
};
|
||||
}
|
||||
return anthropicSettings;
|
||||
}
|
||||
|
||||
if (isGoogleAI) {
|
||||
settings = anthropicSettings;
|
||||
} else if (isGoogleAI) {
|
||||
const googleSettings: GoogleAIModelSettings & { temperature?: number } = {
|
||||
provider_type: "google_ai",
|
||||
parallel_tool_calls: true,
|
||||
@@ -81,10 +79,8 @@ function buildModelSettings(
|
||||
if (typeof updateArgs?.temperature === "number") {
|
||||
googleSettings.temperature = updateArgs.temperature as number;
|
||||
}
|
||||
return googleSettings;
|
||||
}
|
||||
|
||||
if (isGoogleVertex) {
|
||||
settings = googleSettings;
|
||||
} else if (isGoogleVertex) {
|
||||
// Vertex AI uses the same Google provider on the backend; only the handle differs.
|
||||
const googleVertexSettings: Record<string, unknown> = {
|
||||
provider_type: "google_vertex",
|
||||
@@ -99,11 +95,19 @@ function buildModelSettings(
|
||||
(googleVertexSettings as Record<string, unknown>).temperature =
|
||||
updateArgs.temperature as number;
|
||||
}
|
||||
return googleVertexSettings;
|
||||
settings = googleVertexSettings;
|
||||
} else {
|
||||
// For unknown providers, return generic settings with parallel_tool_calls
|
||||
settings = { parallel_tool_calls: true };
|
||||
}
|
||||
|
||||
// For unknown providers, return generic settings with parallel_tool_calls
|
||||
return { parallel_tool_calls: true };
|
||||
// Apply max_output_tokens for all providers if specified
|
||||
if (typeof updateArgs?.max_output_tokens === "number") {
|
||||
(settings as Record<string, unknown>).max_output_tokens =
|
||||
updateArgs.max_output_tokens;
|
||||
}
|
||||
|
||||
return settings;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,7 +6,11 @@
|
||||
"description": "The recommended default model (currently Sonnet 4.5)",
|
||||
"isDefault": true,
|
||||
"isFeatured": true,
|
||||
"updateArgs": { "context_window": 180000 }
|
||||
"updateArgs": {
|
||||
"context_window": 180000,
|
||||
"max_output_tokens": 64000,
|
||||
"max_reasoning_tokens": 31999
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "sonnet-4.5-no-reasoning",
|
||||
@@ -15,7 +19,8 @@
|
||||
"description": "Sonnet 4.5 with extended thinking/reasoning explicitly disabled",
|
||||
"updateArgs": {
|
||||
"enable_reasoner": false,
|
||||
"context_window": 180000
|
||||
"context_window": 180000,
|
||||
"max_output_tokens": 64000
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -24,14 +29,22 @@
|
||||
"label": "Claude Opus 4.5",
|
||||
"description": "Anthropic's newest flagship Opus 4.5 model",
|
||||
"isFeatured": true,
|
||||
"updateArgs": { "context_window": 180000 }
|
||||
"updateArgs": {
|
||||
"context_window": 180000,
|
||||
"max_output_tokens": 64000,
|
||||
"max_reasoning_tokens": 31999
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "opus-4.1",
|
||||
"handle": "anthropic/claude-opus-4-1-20250805",
|
||||
"label": "Claude Opus 4.1",
|
||||
"description": "Anthropic's previous version of Opus",
|
||||
"updateArgs": { "context_window": 180000 }
|
||||
"updateArgs": {
|
||||
"context_window": 180000,
|
||||
"max_output_tokens": 64000,
|
||||
"max_reasoning_tokens": 31999
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "haiku",
|
||||
@@ -39,7 +52,10 @@
|
||||
"label": "Claude Haiku 4.5",
|
||||
"description": "Anthropic's fastest model",
|
||||
"isFeatured": true,
|
||||
"updateArgs": { "context_window": 180000 }
|
||||
"updateArgs": {
|
||||
"context_window": 180000,
|
||||
"max_output_tokens": 64000
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "gpt-5-codex",
|
||||
|
||||
Reference in New Issue
Block a user