2025-12-29 17:46:52 +08:00
|
|
|
|
// Package ctxkey 定义用于 context.Value 的类型安全 key
|
|
|
|
|
|
package ctxkey
|
|
|
|
|
|
|
|
|
|
|
|
// Key 定义 context key 的类型,避免使用内置 string 类型(staticcheck SA1029)
|
|
|
|
|
|
type Key string
|
|
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
|
// ForcePlatform 强制平台(用于 /antigravity 路由),由 middleware.ForcePlatform 设置
|
|
|
|
|
|
ForcePlatform Key = "ctx_force_platform"
|
2026-01-09 20:51:41 +08:00
|
|
|
|
|
2026-02-12 16:27:29 +08:00
|
|
|
|
// RequestID 为服务端生成/透传的请求 ID。
|
|
|
|
|
|
RequestID Key = "ctx_request_id"
|
|
|
|
|
|
|
2026-01-09 20:51:41 +08:00
|
|
|
|
// ClientRequestID 客户端请求的唯一标识,用于追踪请求全生命周期(用于 Ops 监控与排障)。
|
|
|
|
|
|
ClientRequestID Key = "ctx_client_request_id"
|
|
|
|
|
|
|
2026-02-12 16:27:29 +08:00
|
|
|
|
// Model 请求模型标识(用于统一请求链路日志字段)。
|
|
|
|
|
|
Model Key = "ctx_model"
|
|
|
|
|
|
|
|
|
|
|
|
// Platform 当前请求最终命中的平台(用于统一请求链路日志字段)。
|
|
|
|
|
|
Platform Key = "ctx_platform"
|
|
|
|
|
|
|
|
|
|
|
|
// AccountID 当前请求最终命中的账号 ID(用于统一请求链路日志字段)。
|
|
|
|
|
|
AccountID Key = "ctx_account_id"
|
|
|
|
|
|
|
2026-01-09 20:51:41 +08:00
|
|
|
|
// RetryCount 表示当前请求在网关层的重试次数(用于 Ops 记录与排障)。
|
|
|
|
|
|
RetryCount Key = "ctx_retry_count"
|
2026-01-11 10:59:01 +08:00
|
|
|
|
|
2026-01-28 00:01:03 +08:00
|
|
|
|
// AccountSwitchCount 表示请求过程中发生的账号切换次数
|
|
|
|
|
|
AccountSwitchCount Key = "ctx_account_switch_count"
|
|
|
|
|
|
|
2026-01-11 10:59:01 +08:00
|
|
|
|
// IsClaudeCodeClient 标识当前请求是否来自 Claude Code 客户端
|
|
|
|
|
|
IsClaudeCodeClient Key = "ctx_is_claude_code_client"
|
2026-02-07 12:31:10 +08:00
|
|
|
|
|
|
|
|
|
|
// ThinkingEnabled 标识当前请求是否开启 thinking(用于 Antigravity 最终模型名推导与模型维度限流)
|
|
|
|
|
|
ThinkingEnabled Key = "ctx_thinking_enabled"
|
2026-01-09 23:01:42 +08:00
|
|
|
|
// Group 认证后的分组信息,由 API Key 认证中间件设置
|
|
|
|
|
|
Group Key = "ctx_group"
|
2026-02-07 19:04:08 +08:00
|
|
|
|
|
|
|
|
|
|
// IsMaxTokensOneHaikuRequest 标识当前请求是否为 max_tokens=1 + haiku 模型的探测请求
|
|
|
|
|
|
// 用于 ClaudeCodeOnly 验证绕过(绕过 system prompt 检查,但仍需验证 User-Agent)
|
|
|
|
|
|
IsMaxTokensOneHaikuRequest Key = "ctx_is_max_tokens_one_haiku"
|
2026-02-09 14:26:01 +08:00
|
|
|
|
|
|
|
|
|
|
// SingleAccountRetry 标识当前请求处于单账号 503 退避重试模式。
|
|
|
|
|
|
// 在此模式下,Service 层的模型限流预检查将等待限流过期而非直接切换账号。
|
|
|
|
|
|
SingleAccountRetry Key = "ctx_single_account_retry"
|
2026-02-22 13:31:30 +08:00
|
|
|
|
|
|
|
|
|
|
// PrefetchedStickyAccountID 标识上游(通常 handler)预取到的 sticky session 账号 ID。
|
|
|
|
|
|
// Service 层可复用该值,避免同请求链路重复读取 Redis。
|
|
|
|
|
|
PrefetchedStickyAccountID Key = "ctx_prefetched_sticky_account_id"
|
2026-02-22 16:43:33 +08:00
|
|
|
|
|
|
|
|
|
|
// PrefetchedStickyGroupID 标识上游预取 sticky session 时所使用的分组 ID。
|
|
|
|
|
|
// Service 层仅在分组匹配时复用 PrefetchedStickyAccountID,避免分组切换重试误用旧 sticky。
|
|
|
|
|
|
PrefetchedStickyGroupID Key = "ctx_prefetched_sticky_group_id"
|
2026-03-01 15:35:46 +08:00
|
|
|
|
|
|
|
|
|
|
// ClaudeCodeVersion stores the extracted Claude Code version from User-Agent (e.g. "2.1.22")
|
|
|
|
|
|
ClaudeCodeVersion Key = "ctx_claude_code_version"
|
2025-12-29 17:46:52 +08:00
|
|
|
|
)
|