fix(ai): suppress deprecated temperature param for Claude Opus 4.7+

This commit is contained in:
Michael Yu
2026-05-31 16:20:22 +08:00
parent 3911d6f5cd
commit 40832d1957
5 changed files with 196 additions and 98 deletions

View File

@@ -191,6 +191,11 @@ function isAnthropicAdaptiveThinkingModel(modelId: string): boolean {
);
}
function isAnthropicTemperatureUnsupportedModel(modelId: string): boolean {
const id = modelId.toLowerCase();
return id.includes("opus-4-7") || id.includes("opus-4.7") || id.includes("opus-4-8") || id.includes("opus-4.8");
}
function mergeAnthropicMessagesCompat(model: Model<Api>, compat: AnthropicMessagesCompat): void {
model.compat = { ...(model.compat as AnthropicMessagesCompat | undefined), ...compat };
}
@@ -244,6 +249,9 @@ function applyThinkingLevelMetadata(model: Model<any>): void {
if (model.api === "anthropic-messages" && isAnthropicAdaptiveThinkingModel(model.id)) {
mergeAnthropicMessagesCompat(model, { forceAdaptiveThinking: true });
}
if (model.api === "anthropic-messages" && isAnthropicTemperatureUnsupportedModel(model.id)) {
mergeAnthropicMessagesCompat(model, { supportsTemperature: false });
}
if (model.api === "openai-completions" && model.id.includes("deepseek-v4")) {
mergeThinkingLevelMap(
model,