Unified · Split
| @@ -207,7 +207,7 @@ func (c *GeminiWebClient) registerModelsOnce() { · 206 unmodified lines | |||
| 207 | if c.modelsRegistered { | 207 | if c.modelsRegistered { |
| 208 | return | 208 | return |
| 209 | } | 209 | } |
| 210 | c.RegisterModels(GEMINI, geminiWeb.GetGeminiWebAliasedModels()) | 210 | c.RegisterModels(GEMINIWEB, geminiWeb.GetGeminiWebAliasedModels()) |
| 211 | c.modelsRegistered = true | 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 } | 222 | func (c *GeminiWebClient) Type() string { return GEMINIWEB } |
| 223 | func (c *GeminiWebClient) Provider() string { return GEMINI } | 223 | func (c *GeminiWebClient) Provider() string { return GEMINIWEB } |
| 224 | func (c *GeminiWebClient) CanProvideModel(modelName string) bool { | 224 | func (c *GeminiWebClient) CanProvideModel(modelName string) bool { |
| 225 | geminiWeb.EnsureGeminiWebAliasMap() | 225 | geminiWeb.EnsureGeminiWebAliasMap() |
| 226 | _, ok := geminiWeb.GeminiWebAliasMap[strings.ToLower(modelName)] | 226 | _, ok := geminiWeb.GeminiWebAliasMap[strings.ToLower(modelName)] |
| @@ -3,6 +3,7 @@ package constant · 2 unmodified lines | |||
| 3 | const ( | 3 | const ( |
| 4 | GEMINI = "gemini" | 4 | GEMINI = "gemini" |
| 5 | GEMINICLI = "gemini-cli" | 5 | GEMINICLI = "gemini-cli" |
| 6 | GEMINIWEB = "gemini-web" | ||
| 6 | CODEX = "codex" | 7 | CODEX = "codex" |
| 7 | CLAUDE = "claude" | 8 | CLAUDE = "claude" |
| 8 | OPENAI = "openai" | 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 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/chat-completions" | 23 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/chat-completions" |
| 24 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/responses" | 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 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/claude" | 29 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/claude" |
| 27 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini" | 30 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini" |
| 28 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini-cli" | 31 | _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini-cli" |