History

feat(provider): Introduce dedicated provider type for Gemini-Web

hkfires committed 1 year ago

Commit 9253bdb1 parent 41effa55 files · +47 −3Browse files

Unified · Split

5 files
  1. internal/client/gemini-web_client.go +3 −3
  2. internal/constant/constant.go +1 −0
  3. internal/translator/gemini-web/openai/chat-completions/init.go +20 −0
  4. internal/translator/gemini-web/openai/responses/init.go +20 −0
  5. internal/translator/init.go +3 −0
internal/client/gemini-web_client.go+3−3
@@ -207,7 +207,7 @@ func (c *GeminiWebClient) registerModelsOnce() { · 206 unmodified lines
207207 if c.modelsRegistered {
208208 return
209209 }
210− c.RegisterModels(GEMINI, geminiWeb.GetGeminiWebAliasedModels())
210+ c.RegisterModels(GEMINIWEB, geminiWeb.GetGeminiWebAliasedModels())
211211 c.modelsRegistered = true
212212 }
213213
@@ -219,8 +219,8 @@ func (c *GeminiWebClient) EnsureRegistered() { · 5 unmodified lines
219219 }
220220 }
221221
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 }
224224 func (c *GeminiWebClient) CanProvideModel(modelName string) bool {
225225 geminiWeb.EnsureGeminiWebAliasMap()
226226 _, ok := geminiWeb.GeminiWebAliasMap[strings.ToLower(modelName)]
internal/constant/constant.go+1−0
@@ -3,6 +3,7 @@ package constant · 2 unmodified lines
33 const (
44 GEMINI = "gemini"
55 GEMINICLI = "gemini-cli"
6+ GEMINIWEB = "gemini-web"
67 CODEX = "codex"
78 CLAUDE = "claude"
89 OPENAI = "openai"
internal/translator/gemini-web/openai/chat-completions/init.go+20−0
@@ -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+}
internal/translator/gemini-web/openai/responses/init.go+20−0
@@ -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+}
internal/translator/init.go+3−0
@@ -23,6 +23,9 @@ import ( · 22 unmodified lines
2323 _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/chat-completions"
2424 _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/gemini/openai/responses"
2525
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+
2629 _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/claude"
2730 _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini"
2831 _ "github.com/luispater/CLIProxyAPI/v5/internal/translator/openai/gemini-cli"

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t