@@ -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
197200end
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
209213Complete setup for CLI proxy:
2102141. Register the cli_proxy_api provider
2112152. 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 .
215219Set `verbose=true` to log setup details.
216220"""
217221function 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