From db1dd25a9bc8ff068a06ff612af153518b7020a3 Mon Sep 17 00:00:00 2001 From: hermes Date: Tue, 26 May 2026 11:48:44 +0800 Subject: [PATCH] feat: add --model flag, isKnownModelID routing, [1M] context tag --- cmd/ocgo/main.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cmd/ocgo/main.go b/cmd/ocgo/main.go index fd27350..a0f5c4f 100644 --- a/cmd/ocgo/main.go +++ b/cmd/ocgo/main.go @@ -188,6 +188,16 @@ func knownModelIDs() []string { return []string{"glm-5.1", "glm-5", "kimi-k2.6", "kimi-k2.5", "mimo-v2.5-pro", "mimo-v2.5", "mimo-v2-pro", "mimo-v2-omni", "minimax-m2.7", "minimax-m2.5", "deepseek-v4-pro[1M]", "deepseek-v4-flash[1M]", "qwen3.6-plus", "qwen3.5-plus"} } +func isKnownModelID(model string) bool { + cleaned := cleanModelName(model) + for _, m := range knownModelIDs() { + if cleanModelName(m) == cleaned { + return true + } + } + return false +} + func cleanModelName(model string) string { model = strings.TrimSuffix(model, "[1M]") model = strings.TrimSuffix(model, "[128K]") @@ -448,7 +458,7 @@ func proxyChatCompletions(w http.ResponseWriter, r *http.Request, cfg Config) { dm := cleanModelName(cfg.Model) var reqMap map[string]any if json.Unmarshal(body, &reqMap) == nil { - if m, _ := reqMap["model"].(string); m == "" || strings.HasPrefix(m, "claude-") { + if m, _ := reqMap["model"].(string); m == "" || !isKnownModelID(m) { reqMap["model"] = dm body, _ = json.Marshal(reqMap) } @@ -627,7 +637,7 @@ func stripRawChatImageDetails(req map[string]any) bool { func convertRequest(ar AnthropicRequest, defaultModel string) OAIRequest { model := cleanModelName(ar.Model) - if model == "" || strings.HasPrefix(model, "claude-") || defaultModel != "" { + if model == "" || !isKnownModelID(model) { model = cleanModelName(defaultModel) } if model == "" { @@ -648,7 +658,7 @@ func convertRequest(ar AnthropicRequest, defaultModel string) OAIRequest { func responsesToChat(rr ResponsesRequest, defaultModel string) OAIRequest { model := cleanModelName(rr.Model) - if model == "" || defaultModel != "" { + if model == "" || !isKnownModelID(model) { model = cleanModelName(defaultModel) } if model == "" {