mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-09-24 16:05:44 +08:00
feat: migrate Sonnet 4.5 → Sonnet 4.6 in default mapping and DB
This commit is contained in:
@@ -76,11 +76,11 @@ var DefaultAntigravityModelMapping = map[string]string{
|
||||
"claude-opus-4-6": "claude-opus-4-6-thinking", // 简称映射
|
||||
"claude-opus-4-5-thinking": "claude-opus-4-6-thinking", // 迁移旧模型
|
||||
"claude-sonnet-4-6": "claude-sonnet-4-6",
|
||||
"claude-sonnet-4-5": "claude-sonnet-4-5",
|
||||
"claude-sonnet-4-5-thinking": "claude-sonnet-4-5-thinking",
|
||||
"claude-sonnet-4-5": "claude-sonnet-4-6", // Sonnet 4.5 → 4.6
|
||||
"claude-sonnet-4-5-thinking": "claude-sonnet-4-6", // Sonnet 4.5 → 4.6
|
||||
// Claude 详细版本 ID 映射
|
||||
"claude-opus-4-5-20251101": "claude-opus-4-6-thinking", // 迁移旧模型
|
||||
"claude-sonnet-4-5-20250929": "claude-sonnet-4-5",
|
||||
"claude-sonnet-4-5-20250929": "claude-sonnet-4-6", // Sonnet 4.5 → 4.6
|
||||
// Claude Haiku → Sonnet(无 Haiku 支持)
|
||||
"claude-haiku-4-5": "claude-sonnet-4-6",
|
||||
"claude-haiku-4-5-20251001": "claude-sonnet-4-6",
|
||||
|
||||
@@ -977,14 +977,8 @@ func (s *AntigravityGatewayService) getMappedModel(account *Account, requestedMo
|
||||
}
|
||||
|
||||
// applyThinkingModelSuffix 根据 thinking 配置调整模型名
|
||||
// 当映射结果是 claude-sonnet-4-5 且请求开启了 thinking 时,改为 claude-sonnet-4-5-thinking
|
||||
// Sonnet 4.5 已统一映射到 4.6,此函数保留为扩展点
|
||||
func applyThinkingModelSuffix(mappedModel string, thinkingEnabled bool) string {
|
||||
if !thinkingEnabled {
|
||||
return mappedModel
|
||||
}
|
||||
if mappedModel == "claude-sonnet-4-5" {
|
||||
return "claude-sonnet-4-5-thinking"
|
||||
}
|
||||
return mappedModel
|
||||
}
|
||||
|
||||
|
||||
@@ -181,11 +181,12 @@ func TestIsModelRateLimited_Antigravity_ThinkingAffectsModelKey(t *testing.T) {
|
||||
now := time.Now()
|
||||
future := now.Add(10 * time.Minute).Format(time.RFC3339)
|
||||
|
||||
// Sonnet 4.5 now maps to Sonnet 4.6, so rate limit key is claude-sonnet-4-6
|
||||
account := &Account{
|
||||
Platform: PlatformAntigravity,
|
||||
Extra: map[string]any{
|
||||
modelRateLimitsKey: map[string]any{
|
||||
"claude-sonnet-4-5-thinking": map[string]any{
|
||||
"claude-sonnet-4-6": map[string]any{
|
||||
"rate_limit_reset_at": future,
|
||||
},
|
||||
},
|
||||
@@ -343,7 +344,7 @@ func TestGetRateLimitRemainingTime(t *testing.T) {
|
||||
Platform: PlatformAntigravity,
|
||||
Extra: map[string]any{
|
||||
modelRateLimitsKey: map[string]any{
|
||||
"claude-sonnet-4-5": map[string]any{
|
||||
"claude-sonnet-4-6": map[string]any{
|
||||
"rate_limit_reset_at": future15m,
|
||||
},
|
||||
},
|
||||
@@ -359,7 +360,7 @@ func TestGetRateLimitRemainingTime(t *testing.T) {
|
||||
Platform: PlatformAntigravity,
|
||||
Extra: map[string]any{
|
||||
modelRateLimitsKey: map[string]any{
|
||||
"claude-sonnet-4-5": map[string]any{
|
||||
"claude-sonnet-4-6": map[string]any{
|
||||
"rate_limit_reset_at": future5m,
|
||||
},
|
||||
},
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
-- 077: Rollback Sonnet/Haiku mappings from Opus back to original values
|
||||
-- Reverts migration 077_migrate_sonnet_to_opus46_thinking.sql
|
||||
-- Restores: Sonnet→Sonnet, Haiku→Sonnet (original behavior)
|
||||
-- 077: Migrate Sonnet 4.5 → Sonnet 4.6 for all antigravity accounts
|
||||
-- Sonnet 4.5 is no longer reliable on upstream, redirect to 4.6
|
||||
|
||||
UPDATE accounts
|
||||
SET credentials = jsonb_set(
|
||||
credentials, '{model_mapping}',
|
||||
(credentials->'model_mapping')
|
||||
|| '{"claude-sonnet-4-6": "claude-sonnet-4-6"}'::jsonb
|
||||
|| '{"claude-sonnet-4-5": "claude-sonnet-4-5"}'::jsonb
|
||||
|| '{"claude-sonnet-4-5-thinking": "claude-sonnet-4-5-thinking"}'::jsonb
|
||||
|| '{"claude-sonnet-4-5-20250929": "claude-sonnet-4-5"}'::jsonb
|
||||
|| '{"claude-sonnet-4-5": "claude-sonnet-4-6"}'::jsonb
|
||||
|| '{"claude-sonnet-4-5-thinking": "claude-sonnet-4-6"}'::jsonb
|
||||
|| '{"claude-sonnet-4-5-20250929": "claude-sonnet-4-6"}'::jsonb
|
||||
|| '{"claude-haiku-4-5": "claude-sonnet-4-6"}'::jsonb
|
||||
|| '{"claude-haiku-4-5-20251001": "claude-sonnet-4-6"}'::jsonb
|
||||
)
|
||||
|
||||
@@ -302,10 +302,10 @@ const geminiPresetMappings = [
|
||||
// Antigravity 预设映射(支持通配符)
|
||||
const antigravityPresetMappings = [
|
||||
// Claude 通配符映射
|
||||
{ label: 'Claude→Sonnet', from: 'claude-*', to: 'claude-sonnet-4-5', color: 'bg-blue-100 text-blue-700 hover:bg-blue-200 dark:bg-blue-900/30 dark:text-blue-400' },
|
||||
{ label: 'Sonnet→Sonnet', from: 'claude-sonnet-*', to: 'claude-sonnet-4-5', color: 'bg-indigo-100 text-indigo-700 hover:bg-indigo-200 dark:bg-indigo-900/30 dark:text-indigo-400' },
|
||||
{ label: 'Claude→Sonnet4.6', from: 'claude-*', to: 'claude-sonnet-4-6', color: 'bg-blue-100 text-blue-700 hover:bg-blue-200 dark:bg-blue-900/30 dark:text-blue-400' },
|
||||
{ label: 'Sonnet→4.6', from: 'claude-sonnet-*', to: 'claude-sonnet-4-6', color: 'bg-indigo-100 text-indigo-700 hover:bg-indigo-200 dark:bg-indigo-900/30 dark:text-indigo-400' },
|
||||
{ label: 'Opus→Opus', from: 'claude-opus-*', to: 'claude-opus-4-6-thinking', color: 'bg-purple-100 text-purple-700 hover:bg-purple-200 dark:bg-purple-900/30 dark:text-purple-400' },
|
||||
{ label: 'Haiku→Sonnet', from: 'claude-haiku-*', to: 'claude-sonnet-4-5', color: 'bg-emerald-100 text-emerald-700 hover:bg-emerald-200 dark:bg-emerald-900/30 dark:text-emerald-400' },
|
||||
{ label: 'Haiku→Sonnet4.6', from: 'claude-haiku-*', to: 'claude-sonnet-4-6', color: 'bg-emerald-100 text-emerald-700 hover:bg-emerald-200 dark:bg-emerald-900/30 dark:text-emerald-400' },
|
||||
{ label: 'Sonnet4→4.6', from: 'claude-sonnet-4-20250514', to: 'claude-sonnet-4-6', color: 'bg-sky-100 text-sky-700 hover:bg-sky-200 dark:bg-sky-900/30 dark:text-sky-400' },
|
||||
{ label: 'Sonnet4.5→4.6', from: 'claude-sonnet-4-5-20250929', to: 'claude-sonnet-4-6', color: 'bg-cyan-100 text-cyan-700 hover:bg-cyan-200 dark:bg-cyan-900/30 dark:text-cyan-400' },
|
||||
{ label: 'Sonnet3.5→4.6', from: 'claude-3-5-sonnet-20241022', to: 'claude-sonnet-4-6', color: 'bg-teal-100 text-teal-700 hover:bg-teal-200 dark:bg-teal-900/30 dark:text-teal-400' },
|
||||
@@ -326,7 +326,7 @@ const antigravityPresetMappings = [
|
||||
{ label: '2.5-Flash-Lite透传', from: 'gemini-2.5-flash-lite', to: 'gemini-2.5-flash-lite', color: 'bg-green-100 text-green-700 hover:bg-green-200 dark:bg-green-900/30 dark:text-green-400' },
|
||||
// 精确映射
|
||||
{ label: 'Sonnet 4.6', from: 'claude-sonnet-4-6', to: 'claude-sonnet-4-6', color: 'bg-cyan-100 text-cyan-700 hover:bg-cyan-200 dark:bg-cyan-900/30 dark:text-cyan-400' },
|
||||
{ label: 'Sonnet 4.5', from: 'claude-sonnet-4-5', to: 'claude-sonnet-4-5', color: 'bg-cyan-100 text-cyan-700 hover:bg-cyan-200 dark:bg-cyan-900/30 dark:text-cyan-400' },
|
||||
{ label: 'Sonnet 4.5→4.6', from: 'claude-sonnet-4-5', to: 'claude-sonnet-4-6', color: 'bg-cyan-100 text-cyan-700 hover:bg-cyan-200 dark:bg-cyan-900/30 dark:text-cyan-400' },
|
||||
{ label: 'Opus 4.6', from: 'claude-opus-4-6', to: 'claude-opus-4-6-thinking', color: 'bg-pink-100 text-pink-700 hover:bg-pink-200 dark:bg-pink-900/30 dark:text-pink-400' },
|
||||
{ label: 'Opus 4.6-thinking', from: 'claude-opus-4-6-thinking', to: 'claude-opus-4-6-thinking', color: 'bg-pink-100 text-pink-700 hover:bg-pink-200 dark:bg-pink-900/30 dark:text-pink-400' }
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user