Skip to content

Commit 65ee473

Browse files
committed
make google-ai-studio override opt-in via gemini=false flag
1 parent 909ecd3 commit 65ee473

1 file changed

Lines changed: 25 additions & 20 deletions

File tree

src/OpenRouterCLIProxyAPI.jl

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,13 @@ end
161161
# ============ Provider Override ============
162162

163163
"""
164-
override_providers!(base_url, api_key_env_var)
164+
override_providers!(base_url, api_key_env_var; gemini, verbose)
165165
166-
Override anthropic, openai, and google-ai-studio providers to route through cli_proxy_api.
166+
Override providers to route through cli_proxy_api.
167+
Set `gemini=true` to also override google-ai-studio.
167168
"""
168-
function override_providers!(base_url::String, api_key_env_var::String; verbose::Bool=false)
169+
function override_providers!(base_url::String, api_key_env_var::String;
170+
gemini::Bool=false, verbose::Bool=false)
169171
schemas = Dict("anthropic" => ChatCompletionAnthropicSchema(), "openai" => ChatCompletionSchema())
170172
for name in ("anthropic", "openai")
171173
set_provider!(
@@ -180,20 +182,21 @@ function override_providers!(base_url::String, api_key_env_var::String; verbose:
180182
)
181183
end
182184

183-
# google-ai-studio: proxy speaks OpenAI format, just strip "google/" prefix
184-
google_proxy_transform(id::AbstractString) = replace(id, r"^google/" => "")
185-
set_provider!(
186-
"google-ai-studio",
187-
base_url,
188-
"Bearer",
189-
api_key_env_var,
190-
Dict{String,String}(),
191-
google_proxy_transform,
192-
ChatCompletionSchema(),
193-
"google-ai-studio (overridden to cli_proxy_api)"
194-
)
185+
if gemini
186+
google_proxy_transform(id::AbstractString) = replace(id, r"^google/" => "")
187+
set_provider!(
188+
"google-ai-studio",
189+
base_url,
190+
"Bearer",
191+
api_key_env_var,
192+
Dict{String,String}(),
193+
google_proxy_transform,
194+
ChatCompletionSchema(),
195+
"google-ai-studio (overridden to cli_proxy_api)"
196+
)
197+
end
195198

196-
verbose && @info "Overrode anthropic, openai, and google-ai-studio providers to route through cli_proxy_api"
199+
verbose && @info "Overrode providers to route through cli_proxy_api" gemini
197200
end
198201

199202
# ============ Setup ============
@@ -203,22 +206,24 @@ end
203206
base_url::String="http://localhost:8317/v1",
204207
api_key_env_var::String="CLIPROXYAPI_API_KEY",
205208
provider_name::String="cli_proxy_api",
206-
mutate::Bool=false
209+
mutate::Bool=false,
210+
gemini::Bool=false
207211
)
208212
209213
Complete setup for CLI proxy:
210214
1. Register the cli_proxy_api provider
211215
2. Inject endpoints into all mapped models
212216
213-
Set `mutate=true` to override original providers (anthropic, openai) to route through cli_proxy_api.
214-
This allows `anthropic:anthropic/claude-sonnet-4.5` to transparently route through the proxy.
217+
Set `mutate=true` to override anthropic and openai providers to route through cli_proxy_api.
218+
Set `gemini=true` to also override google-ai-studio.
215219
Set `verbose=true` to log setup details.
216220
"""
217221
function setup_cli_proxy!(;
218222
base_url::String = "http://localhost:8317/v1",
219223
api_key_env_var::String = "CLIPROXYAPI_API_KEY",
220224
provider_name::String = "cli_proxy_api",
221225
mutate::Bool = false,
226+
gemini::Bool = false,
222227
verbose::Bool = false
223228
)
224229
# Always register cli_proxy_api provider
@@ -237,7 +242,7 @@ function setup_cli_proxy!(;
237242
count = inject_cli_proxy_endpoints!(provider_name)
238243

239244
if mutate
240-
override_providers!(base_url, api_key_env_var; verbose)
245+
override_providers!(base_url, api_key_env_var; gemini, verbose)
241246
end
242247

243248
verbose && @info "CLI Proxy setup complete" provider_name base_url mutate

0 commit comments

Comments
 (0)