-
-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Studio: add Gemini provider with web_search, code_execution, prompt caching, and Nano Banana image generation #5720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 46 commits
Commits
Show all changes
75 commits
Select commit
Hold shift + click to select a range
e12689f
Studio: add Gemini provider with web_search, code_execution, prompt c…
danielhanchen 9598c15
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] fdee834
Studio: forward presence_penalty to Gemini and recover function name …
danielhanchen 780d2e3
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] e9d4187
Studio: surface Gemini code execution parts as code_execution tool ev…
danielhanchen ca5777a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 7eb273a
Studio: native Gemini model catalog, function-call ids, and honest ca…
danielhanchen e41404d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 5eefaf9
Studio: distinct tool_calls index per emitted Gemini function call
danielhanchen 696728d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] c6724db
Studio: surface Gemini 3.5/3.1/3 + Nano Banana 2/Pro and plumb thinki…
danielhanchen 9732765
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] d277f8f
Studio: tighten Gemini provider after review (PR #5720)
danielhanchen 0785ceb
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 74390e0
Studio: address second-pass review findings on Gemini (PR #5720)
danielhanchen 80ac142
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] d2f972e
Merge remote-tracking branch 'origin/main' into pr-5720
danielhanchen 0a1c42e
Studio: fix third-pass Gemini findings (PR #5720)
danielhanchen c3c477b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 973e537
Studio: Gemini 3 thinkingLevel + image-model Search grounding (PR #5720)
danielhanchen 0c1ee49
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 9372756
Studio: attach Gemini code_execution inline images to the code card (…
danielhanchen 0e79d73
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 57a98bd
Studio: fix fourth-pass Gemini findings (PR #5720)
danielhanchen be2744e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] e853c10
Studio: fix fifth-pass Gemini findings (PR #5720)
danielhanchen fa22e5d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] c052941
Studio: fix sixth-pass Gemini findings (PR #5720)
danielhanchen 616b43c
Studio: round-trip Gemini tool_calls and tool results (PR #5720)
danielhanchen 089a63a
Studio: replay Gemini code_execution and image native parts on histor…
danielhanchen fdaf772
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 0597721
Studio: complete Gemini built-in tool replay round-trip (PR #5720)
danielhanchen 3cfff64
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 92d4bb9
Studio: round 8 Gemini follow-ups (PR #5720)
danielhanchen c60b49c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] cff0785
Studio: round 9 Gemini follow-ups (PR #5720)
danielhanchen c09dffe
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] b333f1c
Studio: round 10 Gemini follow-ups (PR #5720)
danielhanchen 2321731
Studio: round 11 Gemini follow-ups (PR #5720)
danielhanchen bc994ad
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] d42d907
Studio: round 12 Gemini follow-ups (PR #5720)
danielhanchen 2f8eafe
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 0e0fbca
Studio: round 13 Gemini/Responses follow-ups (PR #5720)
danielhanchen 45f1a67
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 5fc3734
Studio: round 14 Gemini follow-ups (PR #5720)
danielhanchen f0e4d94
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] ca7e5a5
Studio: SSRF harden Gemini remote image fetch (PR #5720)
danielhanchen 77cebcd
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 63143bb
Studio: round 16 Gemini follow-ups (PR #5720)
danielhanchen 2df4892
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] d33ee37
Studio: round 17 Gemini follow-ups (PR #5720)
danielhanchen 2d15064
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 83f5f74
Studio: round 18 Gemini follow-ups (PR #5720)
danielhanchen 7326c29
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] e1e6a42
Studio: round 19 Gemini follow-ups (PR #5720)
danielhanchen 2507849
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 6ed67c3
Studio: round 20 Gemini follow-ups (PR #5720)
danielhanchen 0cd41cd
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] fe1c5c1
Apply forced-function tool_choice gate to Anthropic, OpenRouter, Kimi
danielhanchen 68fd4d6
Merge remote-tracking branch 'origin/main' into feat/gemini-provider
danielhanchen 1890d85
Strip Gemini-only synthetic tool history on local-GGUF dispatch
danielhanchen 38d5daf
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 9d91db0
Disable Search/Code composer pills for Gemini image-tier models
danielhanchen de04698
Apply forced-function tool_choice gate to OpenAI Responses path
danielhanchen f8d4edb
Round 24 P1s: SSRF shared-address gap + extra_content text-only leak …
danielhanchen 235b7ee
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 41eccb5
Round 25 P1s: skip synthetic server-tool replay + inline $ref/$defs i…
danielhanchen 31c9711
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] d6d7fa0
Round 26 P1s: drop orphan Gemini functionResponse + Anthropic /messag…
danielhanchen d0cf4b7
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] 622c409
Round 27 P1s: native_part location fallback + Gemini image request bu…
danielhanchen 22dcce8
Merge main into feat/gemini-provider (resolve 5 file conflicts)
danielhanchen 24bee60
Fix TS build errors from main merge: restore imageParts + refusal ret…
danielhanchen 0e73786
Tighten verbose comments in external_provider.py + chat-adapter.ts
danielhanchen b19b662
Merge branch 'main' into feat/gemini-provider
danielhanchen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
1,858 changes: 1,849 additions & 9 deletions
1,858
studio/backend/core/inference/external_provider.py
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing Gemini to the native
https://generativelanguage.googleapis.com/v1betaendpoint routes/modelsto Gemini’s native schema, but our model discovery path still only consumes OpenAI-styledata[].idinExternalProviderClient.list_models(). That leaves Gemini model fetches empty in/api/providers/models(and provider test counts at 0), so users lose dynamic model discovery and rely only on hardcoded defaults. Add native parsing (models[]withname/baseModelId) or mark Gemini as curated-only to avoid silently empty catalogs.Useful? React with 👍 / 👎.