Unified · Split
| @@ -207,7 +207,7 @@ func (c *GeminiWebClient) registerModelsOnce() { · 206 unmodified lines | ||
| 207 | 207 | if c.modelsRegistered { |
| 208 | 208 | return |
| 209 | 209 | } |
| 210 | − c.RegisterModels(GEMINI, geminiWeb.GetGeminiWebAliasedModels()) | |
| 210 | + c.RegisterModels(GEMINIWEB, geminiWeb.GetGeminiWebAliasedModels()) | |
| 211 | 211 | c.modelsRegistered = true |
| 212 | 212 | } |
| 213 | 213 | |
| @@ -219,8 +219,8 @@ func (c *GeminiWebClient) EnsureRegistered() { · 5 unmodified lines | ||
| 219 | 219 | } |
| 220 | 220 | } |
| 221 | 221 | |
| 222 | −func (c *GeminiWebClient) Type() string { return GEMINI } | |
| 223 | −func (c *GeminiWebClient) Provider() string { return GEMINI } | |
| 222 | +func (c *GeminiWebClient) Type() string { return GEMINIWEB } | |
| 223 | +func (c *GeminiWebClient) Provider() string { return GEMINIWEB } | |
| 224 | 224 | func (c *GeminiWebClient) CanProvideModel(modelName string) bool { |
| 225 | 225 | geminiWeb.EnsureGeminiWebAliasMap() |
| 226 | 226 | _, ok := geminiWeb.GeminiWebAliasMap[strings.ToLower(modelName)] |
| @@ -3,6 +3,7 @@ package constant · 2 unmodified lines | ||
| 3 | 3 | const ( |
| 4 | 4 | GEMINI = "gemini" |
| 5 | 5 | GEMINICLI = "gemini-cli" |
| 6 | + GEMINIWEB = "gemini-web" | |
| 6 | 7 | CODEX = "codex" |
| 7 | 8 | CLAUDE = "claude" |
| 8 | 9 | OPENAI = "openai" |
| @@ -0,0 +1,20 @@ | ||
| 1 | +package chat_completions | |
| 2 | + | |
| 3 | +import ( | |
| 4 | + . "github.com/luispater/CLIProxyAPI/v5/internal/constant" | |
| 5 | + "github.com/luispater/CLIProxyAPI/v5/internal/interfaces" | |
| 6 | + geminiChat "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/chat-completions" | |
| 7 | + "github.com/luispater/CLIProxyAPI/v5/internal/translator/translator" | |
| 8 | +) | |
| 9 | + | |
| 10 | +func init() { | |
| 11 | + translator.Register( | |
| 12 | + OPENAI, | |
| 13 | + GEMINIWEB, | |
| 14 | + geminiChat.ConvertOpenAIRequestToGemini, | |
| 15 | + interfaces.TranslateResponse{ | |
| 16 | + Stream: geminiChat.ConvertGeminiResponseToOpenAI, | |
| 17 | + NonStream: geminiChat.ConvertGeminiResponseToOpenAINonStream, | |
| 18 | + }, | |
| 19 | + ) | |
| 20 | +} | |
| @@ -0,0 +1,20 @@ | ||
| 1 | +package responses | |
| 2 | + | |
| 3 | +import ( | |
| 4 | + . "github.com/luispater/CLIProxyAPI/v5/internal/constant" | |
| 5 | + "github.com/luispater/CLIProxyAPI/v5/internal/interfaces" | |
| 6 | + geminiResponses "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/responses" | |
| 7 | + "github.com/luispater/CLIProxyAPI/v5/internal/translator/translator" | |
| 8 | +) | |
| 9 | + | |
| 10 | +func init() { | |
| 11 | + translator.Register( | |
| 12 | + OPENAI_RESPONSE, | |
| 13 | + GEMINIWEB, | |
| 14 | + geminiResponses.ConvertOpenAIResponsesRequestToGemini, | |
| 15 | + interfaces.TranslateResponse{ | |
| 16 | + Stream: geminiResponses.ConvertGeminiResponseToOpenAIResponses, | |
| 17 | + NonStream: geminiResponses.ConvertGeminiResponseToOpenAIResponsesNonStream, | |
| 18 | + }, | |
| 19 | + ) | |
| 20 | +} | |
| @@ -23,6 +23,9 @@ import ( · 22 unmodified lines | ||
| 23 | 23 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/chat-completions" |
| 24 | 24 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/responses" |
| 25 | 25 | |
| 26 | + _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini-web/openai/chat-completions" | |
| 27 | + _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini-web/openai/responses" | |
| 28 | + | |
| 26 | 29 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/claude" |
| 27 | 30 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini" |
| 28 | 31 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini-cli" |