Add Gemini 3.5 Flash to model list#1422
Conversation
Released May 19, 2026. Frontier-level coding and reasoning at 4x speed. Applied zero-sum rule: removed suggested flags from Gemini 3 Flash. https://claude.ai/code/session_013vy5C9RfT3dgKnALCiECyK
WalkthroughThis PR registers Gemini 3.5 Flash: it adds ChangesGemini 3.5 Flash Model Addition
🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request introduces support for the Gemini 3.5 Flash model across OpenRouter, Gemini API, and Vertex AI providers, while simultaneously removing data generation and evaluation suggestions for the older Gemini 3 Flash model. Feedback indicates that the Vertex AI configuration for Gemini 3.5 Flash lacks multimodal and document extraction flags, which should be added to ensure feature parity with the other providers.
| KilnModelProvider( | ||
| name=ModelProviderName.vertex, | ||
| model_id="gemini-3.5-flash", | ||
| structured_output_mode=StructuredOutputMode.json_schema, | ||
| suggested_for_data_gen=True, | ||
| suggested_for_evals=True, | ||
| # while the model is capable of reasoning, it doesn't always return it in the response | ||
| # reasoning_capable=True, | ||
| gemini_reasoning_enabled=True, | ||
| available_thinking_levels=GEMINI_3_FLASH_THINKING_LEVELS, | ||
| default_thinking_level="high", | ||
| ), |
There was a problem hiding this comment.
The Vertex AI provider configuration for Gemini 3.5 Flash is missing multimodal and document extraction flags. Gemini 3.5 Flash supports vision, audio, video, and document extraction, and these capabilities should be enabled for the Vertex provider to maintain parity with the Gemini API and OpenRouter configurations.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@libs/core/kiln_ai/adapters/ml_model_list.py`:
- Around line 2545-2556: The KilnModelProvider entry for model_id
"gemini-3.5-flash" is missing multimodal/doc-extraction flags; update the
KilnModelProvider instantiation (the KilnModelProvider call for model_id
"gemini-3.5-flash") to include supports_doc_extraction=True,
supports_vision=True, multimodal_capable=True, and set multimodal_mime_types to
the same list used by other Gemini 3.5 Flash providers (e.g. image/png,
image/jpeg, application/pdf, image/tiff) so Vertex is treated as
multimodal/document-capable in capability-gated flows.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: b1c18d0f-5456-4f91-a42d-80804b2d694b
📒 Files selected for processing (1)
libs/core/kiln_ai/adapters/ml_model_list.py
📊 Coverage ReportOverall Coverage: 92% Diff: origin/main...HEADNo lines with coverage information in this diff.
|
Adds supports_doc_extraction, multimodal_capable, supports_vision, and multimodal_mime_types to the Vertex provider entry for Gemini 3.5 Flash so it has parity with the Gemini API and OpenRouter configurations. Addresses review feedback that the Vertex entry was missing multimodal/document-extraction capability flags despite the model supporting them. Verified by running the full paid Vertex test suite (24 passed, 3 unrelated skips, 0 failures), including document extraction tests across PDF/CSV/HTML/PNG/JPG/MP3/OGG/WAV/MP4/MOV. Co-authored-by: Cursor <cursoragent@cursor.com>
Update: Vertex multimodal/doc-extraction flags + verified Vertex testsAddresses the review feedback from both Changes in
|
What does this PR do?
Adds Google's Gemini 3.5 Flash model (released May 19, 2026) with support for OpenRouter, Gemini API, and Vertex AI providers. This model brings frontier-level coding and reasoning performance at 4x speed with Flash-tier pricing.
Applied the zero-sum rule by removing
suggested_for_data_genandsuggested_for_evalsflags from the older Gemini 3 Flash model to maintain stable suggested model counts.The Vertex provider entry was also brought to full parity with the Gemini API and OpenRouter entries:
supports_doc_extraction,multimodal_capable,supports_vision, and the fullmultimodal_mime_typeslist (documents, images, audio, video) — addressing thegemini-code-assistandcoderabbitaireview feedback.Test Results
All tests passed across all three providers (OpenRouter, Gemini API, Vertex). The Vertex suite was re-run with valid
gcloudcredentials after the initial auth failures.The model supports thinking levels (minimal, low, medium, high) via the
GEMINI_3_FLASH_THINKING_LEVELSconstant, multimodal capabilities (documents, images, audio, video), and structured output via JSON schema.Gemini 3.5 Flash (openrouter):
Gemini 3.5 Flash (gemini_api):
Gemini 3.5 Flash (vertex):
text/plainandtext/markdownextraction probes, andlogprobs_gevalwhich Vertex/Gemini doesn't surface)Gemini 3.5 Flash (openrouter):
✅ test_data_gen_all_models_providers[gemini_3_5_flash-openrouter]
✅ test_data_gen_sample_all_models_providers[gemini_3_5_flash-openrouter]
✅ test_data_gen_sample_all_models_providers_with_structured_output[gemini_3_5_flash-openrouter]
✅ test_all_built_in_models_llm_as_judge[gemini_3_5_flash-openrouter]
✅ test_all_built_in_models_structured_output[gemini_3_5_flash-openrouter]
✅ test_all_built_in_models_structured_input[gemini_3_5_flash-openrouter]
✅ test_structured_output_cot_prompt_builder[gemini_3_5_flash-openrouter]
✅ test_structured_input_cot_prompt_builder[gemini_3_5_flash-openrouter]
✅ test_all_models_providers_plaintext[gemini_3_5_flash-openrouter]
✅ test_cot_prompt_builder[gemini_3_5_flash-openrouter]
✅ test_tools_all_built_in_models[gemini_3_5_flash-openrouter]
✅ test_supports_vision_is_coherent[gemini_3_5_flash-openrouter]
✅ test_extract_document_success[application/pdf-text_probe0-gemini_3_5_flash-openrouter]
✅ test_extract_document_success[text/html-text_probe3-gemini_3_5_flash-openrouter]
✅ test_extract_document_success[text/csv-text_probe4-gemini_3_5_flash-openrouter]
✅ test_extract_document_success[image/jpeg-text_probe6-gemini_3_5_flash-openrouter]
✅ test_extract_document_success[image/jpeg-text_probe7-gemini_3_5_flash-openrouter]
✅ test_extract_document_success[image/png-text_probe5-gemini_3_5_flash-openrouter]
✅ test_provider_bad_request[gemini_3_5_flash-openrouter]
✅ test_thinking_level_reasoning_content[ModelProviderName.openrouter/gemini_3_5_flash/minimal]
✅ test_thinking_level_reasoning_content[ModelProviderName.openrouter/gemini_3_5_flash/low]
✅ test_thinking_level_reasoning_content[ModelProviderName.openrouter/gemini_3_5_flash/medium]
✅ test_thinking_level_reasoning_content[ModelProviderName.openrouter/gemini_3_5_flash/high]
Gemini 3.5 Flash (gemini_api):
✅ test_data_gen_all_models_providers[gemini_3_5_flash-gemini_api]
✅ test_data_gen_sample_all_models_providers[gemini_3_5_flash-gemini_api]
✅ test_data_gen_sample_all_models_providers_with_structured_output[gemini_3_5_flash-gemini_api]
✅ test_all_built_in_models_llm_as_judge[gemini_3_5_flash-gemini_api]
✅ test_all_built_in_models_structured_output[gemini_3_5_flash-gemini_api]
✅ test_all_built_in_models_structured_input[gemini_3_5_flash-gemini_api]
✅ test_structured_output_cot_prompt_builder[gemini_3_5_flash-gemini_api]
✅ test_structured_input_cot_prompt_builder[gemini_3_5_flash-gemini_api]
✅ test_all_models_providers_plaintext[gemini_3_5_flash-gemini_api]
✅ test_cot_prompt_builder[gemini_3_5_flash-gemini_api]
✅ test_tools_all_built_in_models[gemini_3_5_flash-gemini_api]
✅ test_supports_vision_is_coherent[gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[application/pdf-text_probe0-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[text/html-text_probe3-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[text/csv-text_probe4-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[image/jpeg-text_probe6-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[image/jpeg-text_probe7-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[image/png-text_probe5-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[video/mp4-text_probe8-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[video/quicktime-text_probe9-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[audio/mpeg-text_probe10-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[audio/ogg-text_probe11-gemini_3_5_flash-gemini_api]
✅ test_extract_document_success[audio/wav-text_probe12-gemini_3_5_flash-gemini_api]
✅ test_provider_bad_request[gemini_3_5_flash-gemini_api]
✅ test_thinking_level_reasoning_content[ModelProviderName.gemini_api/gemini_3_5_flash/minimal]
✅ test_thinking_level_reasoning_content[ModelProviderName.gemini_api/gemini_3_5_flash/low]
✅ test_thinking_level_reasoning_content[ModelProviderName.gemini_api/gemini_3_5_flash/medium]
✅ test_thinking_level_reasoning_content[ModelProviderName.gemini_api/gemini_3_5_flash/high]
Gemini 3.5 Flash (vertex):
✅ test_data_gen_all_models_providers[gemini_3_5_flash-vertex]
✅ test_data_gen_sample_all_models_providers[gemini_3_5_flash-vertex]
✅ test_data_gen_sample_all_models_providers_with_structured_output[gemini_3_5_flash-vertex]
✅ test_all_built_in_models_llm_as_judge[gemini_3_5_flash-vertex]
⏭️ test_all_built_in_models_logprobs_geval[gemini_3_5_flash-vertex]
✅ test_extract_document_success[application/pdf-text_probe0-gemini_3_5_flash-vertex]
⏭️ test_extract_document_success[text/plain-text_probe1-gemini_3_5_flash-vertex]
⏭️ test_extract_document_success[text/markdown-text_probe2-gemini_3_5_flash-vertex]
✅ test_extract_document_success[text/html-text_probe3-gemini_3_5_flash-vertex]
✅ test_extract_document_success[text/csv-text_probe4-gemini_3_5_flash-vertex]
✅ test_extract_document_success[image/png-text_probe5-gemini_3_5_flash-vertex]
✅ test_extract_document_success[image/jpeg-text_probe6-gemini_3_5_flash-vertex]
✅ test_extract_document_success[image/jpeg-text_probe7-gemini_3_5_flash-vertex]
✅ test_extract_document_success[video/mp4-text_probe8-gemini_3_5_flash-vertex]
✅ test_extract_document_success[video/quicktime-text_probe9-gemini_3_5_flash-vertex]
✅ test_extract_document_success[audio/mpeg-text_probe10-gemini_3_5_flash-vertex]
✅ test_extract_document_success[audio/ogg-text_probe11-gemini_3_5_flash-vertex]
✅ test_extract_document_success[audio/wav-text_probe12-gemini_3_5_flash-vertex]
✅ test_supports_vision_is_coherent[gemini_3_5_flash-vertex]
✅ test_provider_bad_request[gemini_3_5_flash-vertex]
✅ test_all_built_in_models_structured_output[gemini_3_5_flash-vertex]
✅ test_all_built_in_models_structured_input[gemini_3_5_flash-vertex]
✅ test_structured_input_cot_prompt_builder[gemini_3_5_flash-vertex]
✅ test_structured_output_cot_prompt_builder[gemini_3_5_flash-vertex]
✅ test_tools_all_built_in_models[gemini_3_5_flash-vertex]
✅ test_all_models_providers_plaintext[gemini_3_5_flash-vertex]
✅ test_cot_prompt_builder[gemini_3_5_flash-vertex]
Checklists
Related to Slack thread: https://getkiln.slack.com/archives/C0AG8U78MNG/p1779283975481699?thread_ts=1779283765.647149&cid=C0AG8U78MNG
Generated by Claude Code