Download internal/upstream/context_catalog.go from a3216/gcli2api: direct link, hf CLI and curl.
- Browser
- Download file 6.96 kB
-
https://huggingface.co/spaces/a3216/gcli2api/resolve/main/internal/upstream/context_catalog.go
- Command line
-
hf download hf://spaces/a3216/gcli2api/internal/upstream/context_catalog.go
-
curl -L -o context_catalog.go https://huggingface.co/spaces/a3216/gcli2api/resolve/main/internal/upstream/context_catalog.go
6.96 kB
| // context_catalog.go context_length / max_output_tokens 字段级静态兜底知识表。 | |
| // | |
| // 数据来源四级(model-json-dynamic 任务书;查找链入口在 model_catalog.go 的 | |
| // ContextWindowListingV4 / MaxOutputTokensListingV4,本文件是第 2 级): | |
| // - 上游动态值(ModelInfo.ContextWindow/MaxTokens,即 maxInputTokens/maxOutputTokens)权威,优先; | |
| // - 本文件静态知识表(远端零值时补齐;model.json 缺失/损坏时的编译期兜底); | |
| // - model.json 本地缓存(数据目录,含运行时 models.dev 按需补值,见 model_catalog.go); | |
| // - models.dev 按需拉取(异步不阻塞;仍未知 → context_length 1M 兜底——宁可高估 | |
| // 不低估:高估代价是客户端不截断、上游报错可重试;低估代价是下游客户端 | |
| // (Codex/ZCode/Claude Code 按 context_length 提前截断)白白丢上下文; | |
| // max_output_tokens 未知 → 省略字段(输出上限无合估算据,不编造))。 | |
| // | |
| // 知识表**一处定义、CN/global 两域共用**:context_length 是模型固有属性——fork | |
| // 706412584 实测结论「两区是同一套 API 的两次部署」,同 id 上下文一致,无按 realm | |
| // 分表必要(与 effort 档位的 realm 分表刻意不同)。 | |
| // | |
| // 值来源两类,逐条注释标注: | |
| // - fork 实测:706412584 直连上游 /console/enterprises/personal/models 的 | |
| // maxInputTokens(/tmp/fork_diffs/70_927f57f9.diff,2026-09-13 实测; | |
| // global 侧无法直测、按同 id 外推); | |
| // - models.dev:https://models.dev/ 收录值(2026-09-16 查询,取多 provider 共识值; | |
| // 官方源如 moonshotai/zai 优先)。未收录或歧义大者不编造。 | |
| package upstream | |
| // DefaultContextWindow 知识表也未收录的模型的 context_length 兜底:1M。 | |
| // 上游多数大窗口模型的实际量级;高估优于低估(见文件头)。 | |
| const DefaultContextWindow int64 = 1000000 | |
| // contextCap 一个模型的上下文能力(字段级兜底条目)。 | |
| // context 必为正(否则条目无意义,直接走 1M 兜底); | |
| // maxOutput 为 0 表示输出上限未知 → max_output_tokens 字段省略(不编造)。 | |
| type contextCap struct { | |
| context int64 | |
| maxOutput int64 | |
| } | |
| // contextCapFallback context_length / max_output_tokens 知识表(CN/global 共用)。 | |
| // 每条注释标注来源:实测 = fork 706412584 直连 CN /console 实测 maxInputTokens | |
| // (global 侧为同 id 外推);models.dev = 2026-09-16 收录共识值;估算 = 同族外推。 | |
| var contextCapFallback = map[string]contextCap{ | |
| // ---- GLM 家族(z-ai)---- | |
| "glm-5.2": {context: 1000000, maxOutput: 131072}, // 实测(CN 1M;models.dev 共识 1M/131072) | |
| "glm-5.1": {context: 200000, maxOutput: 131072}, // 实测(CN 200K;models.dev 共识 200K/131072) | |
| "glm-5.3": {context: 1000000, maxOutput: 131072}, // 实测外推 + models.dev 共识 1M/131072 | |
| "glm-5.3-flash": {context: 1000000, maxOutput: 131072}, // models.dev 共识 1M/131072 | |
| "glm-5v-turbo": {context: 200000, maxOutput: 131072}, // 实测(CN 200K;models.dev 共识 200K/131072) | |
| // ---- Kimi 家族(moonshot)---- | |
| "kimi-k2.7": {context: 256000, maxOutput: 65536}, // 实测(CN 256K);输出 65536 为 models.dev kimi-k2.7-code 同族估算 | |
| "kimi-k2.6": {context: 256000, maxOutput: 262144}, // 实测(CN 256K);输出 models.dev 官方 262144 | |
| "kimi-k2.5": {context: 164000, maxOutput: 262144}, // 实测(global 侧同 id 外推 164K);输出 models.dev 共识 262144 | |
| "kimi-k3": {context: 1048576, maxOutput: 131072}, // models.dev 官方(moonshotai 1M/128K) | |
| "kimi-k2.8-preview": {context: 1048576, maxOutput: 0}, // models.dev(Kimi K2.8 Preview 1M;输出上限未收录,省略) | |
| // ---- MiniMax / 混元(tencent)---- | |
| "minimax-m3": {context: 512000, maxOutput: 512000}, // 实测(CN 512K);输出 models.dev 共识 512000 | |
| "hy3": {context: 192000, maxOutput: 64000}, // 实测(CN 192K/64K,repo hy3 抓取样本同值) | |
| "hy3-preview": {context: 262144, maxOutput: 64000}, // models.dev(共识 262144/64000) | |
| "hy4-preview": {context: 1000000, maxOutput: 64000}, // 实测外推 + models.dev(~1M/64000) | |
| "hy4-preview-x": {context: 1000000, maxOutput: 64000}, // 实测外推(1M);输出同族 hy4-preview 估算 | |
| // ---- DeepSeek 家族 ---- | |
| "deepseek-v4-pro": {context: 1000000, maxOutput: 384000}, // 实测(CN 1M;models.dev 共识 1M/384000) | |
| "deepseek-v4-flash": {context: 1000000, maxOutput: 384000}, // 实测(CN 1M;models.dev 共识 1M/384000) | |
| "deepseek-v4.1-flash": {context: 1000000, maxOutput: 384000}, // 实测外推 + models.dev 共识 1M/384000 | |
| // ---- OpenAI / Google(global 域家族)---- | |
| "gpt-6-astra": {context: 1050000, maxOutput: 128000}, // models.dev(全 provider 一致 1050000/128000) | |
| "gpt-5.6-sol": {context: 1050000, maxOutput: 128000}, // models.dev 共识 | |
| "gpt-5.6-terra": {context: 1050000, maxOutput: 128000}, // models.dev 共识 | |
| "gpt-5.6-luna": {context: 1050000, maxOutput: 128000}, // models.dev 共识 | |
| "gpt-5.5": {context: 1050000, maxOutput: 128000}, // models.dev 共识 | |
| "gpt-5.4": {context: 1050000, maxOutput: 128000}, // models.dev 共识 | |
| "gpt-5.3-codex": {context: 400000, maxOutput: 128000}, // models.dev(全 provider 一致 400000/128000) | |
| "gemini-3.5-flash": {context: 1048576, maxOutput: 65536}, // models.dev 共识 | |
| // ---- global 域路由别名/别名模型 ---- | |
| "auto": {context: 168000, maxOutput: 0}, // 实测外推(fork global 静态表 168K);输出上限未知,省略 | |
| } | |
| // ContextWindowListing 模型在 /v1/models 的 context_length(三级查找): | |
| // remote(上游 maxInputTokens)>0 时权威;否则查知识表;仍未收录 → DefaultContextWindow | |
| // (1M,宁可高估不低估)。绝不再透出假 131072。 | |
| func ContextWindowListing(model string, remote int64) int64 { | |
| if remote > 0 { | |
| return remote | |
| } | |
| if cap, ok := contextCapFallback[model]; ok && cap.context > 0 { | |
| return cap.context | |
| } | |
| return DefaultContextWindow | |
| } | |
| // MaxOutputTokensListing 模型在 /v1/models 的 max_output_tokens(三级查找): | |
| // remote(上游 maxOutputTokens)>0 时权威;否则查知识表;仍未收录 → ok=false | |
| // (调用方省略字段,不编造输出上限)。与 ContextWindowListing 的 1M 兜底刻意不同: | |
| // 输出上限无「宁可高估」的安全侧,未知即省略。 | |
| func MaxOutputTokensListing(model string, remote int64) (int64, bool) { | |
| if remote > 0 { | |
| return remote, true | |
| } | |
| if cap, ok := contextCapFallback[model]; ok && cap.maxOutput > 0 { | |
| return cap.maxOutput, true | |
| } | |
| return 0, false | |
| } | |