From c50eff53d4925560e38c74943949e1a77413241d Mon Sep 17 00:00:00 2001 From: Seefs Date: Mon, 2 Feb 2026 22:21:49 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=20default=20enable=20channel=20af?= =?UTF-8?q?finity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../channel_affinity_setting.go | 33 +++++++++++++++++-- .../Operation/SettingsChannelAffinity.jsx | 4 +-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/setting/operation_setting/channel_affinity_setting.go b/setting/operation_setting/channel_affinity_setting.go index 7173f7b78..22f19824f 100644 --- a/setting/operation_setting/channel_affinity_setting.go +++ b/setting/operation_setting/channel_affinity_setting.go @@ -33,11 +33,40 @@ type ChannelAffinitySetting struct { } var channelAffinitySetting = ChannelAffinitySetting{ - Enabled: false, + Enabled: true, SwitchOnSuccess: true, MaxEntries: 100_000, DefaultTTLSeconds: 3600, - Rules: []ChannelAffinityRule{}, + Rules: []ChannelAffinityRule{ + { + Name: "codex trace", + ModelRegex: []string{"^gpt-.*$"}, + PathRegex: []string{"/v1/responses"}, + KeySources: []ChannelAffinityKeySource{ + {Type: "gjson", Path: "prompt_cache_key"}, + }, + ValueRegex: "", + TTLSeconds: 0, + SkipRetryOnFailure: false, + IncludeUsingGroup: true, + IncludeRuleName: true, + UserAgentInclude: nil, + }, + { + Name: "claude code trace", + ModelRegex: []string{"^claude-.*$"}, + PathRegex: []string{"/v1/messages"}, + KeySources: []ChannelAffinityKeySource{ + {Type: "gjson", Path: "metadata.user_id"}, + }, + ValueRegex: "", + TTLSeconds: 0, + SkipRetryOnFailure: false, + IncludeUsingGroup: true, + IncludeRuleName: true, + UserAgentInclude: nil, + }, + }, } func init() { diff --git a/web/src/pages/Setting/Operation/SettingsChannelAffinity.jsx b/web/src/pages/Setting/Operation/SettingsChannelAffinity.jsx index b89f99113..18e2cfbdc 100644 --- a/web/src/pages/Setting/Operation/SettingsChannelAffinity.jsx +++ b/web/src/pages/Setting/Operation/SettingsChannelAffinity.jsx @@ -67,7 +67,7 @@ const KEY_SOURCE_TYPES = [ const RULE_TEMPLATES = { codex: { - name: 'codex优选', + name: 'codex trace', model_regex: ['^gpt-.*$'], path_regex: ['/v1/responses'], key_sources: [{ type: 'gjson', path: 'prompt_cache_key' }], @@ -78,7 +78,7 @@ const RULE_TEMPLATES = { include_rule_name: true, }, claudeCode: { - name: 'claude-code优选', + name: 'claude-code trace', model_regex: ['^claude-.*$'], path_regex: ['/v1/messages'], key_sources: [{ type: 'gjson', path: 'metadata.user_id' }],