Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions gemini/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,15 @@ gemini models
| `gemini-3.5-flash` | Gemini 3.5 Flash |
| `gemini-3-flash-preview` | Gemini 3 Flash Preview |
| `gemini-3.1-flash-lite-preview` | Gemini 3.1 Flash Lite Preview |
| `gemini-3.1-flash-image` | Gemini 3.1 Flash Image |
| `gemini-3-pro-image` | Gemini 3 Pro Image |
| `gemini-2.5-pro` | Gemini 2.5 Pro |
| `gemini-2.5-flash` | Gemini 2.5 Flash (default) |
| `gemini-2.5-flash-lite` | Gemini 2.5 Flash Lite |
| `gemini-2.5-flash-image` | Gemini 2.5 Flash Image |
| `gemini-2.0-flash` | Gemini 2.0 Flash |

> Image-generating models (`gemini-*-image`) are not available on the chat
> endpoint. Use the native `/v1beta/models/{model}:generateContent` API for
> image generation.

## Available Video Models

| Model | Notes |
Expand Down
3 changes: 0 additions & 3 deletions gemini/gemini_cli/core/output.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,9 @@
"gemini-3.5-flash",
"gemini-3-flash-preview",
"gemini-3.1-flash-lite-preview",
"gemini-3.1-flash-image",
"gemini-3-pro-image",
"gemini-2.5-pro",
"gemini-2.5-flash",
"gemini-2.5-flash-lite",
"gemini-2.5-flash-image",
"gemini-2.0-flash",
]

Expand Down
15 changes: 12 additions & 3 deletions gemini/tests/test_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,9 +98,6 @@ def test_chat_with_new_models(self, runner, mock_chat_response):
for model in [
"gemini-2.5-flash-lite",
"gemini-3.1-flash-lite-preview",
"gemini-3.1-flash-image",
"gemini-2.5-flash-image",
"gemini-3-pro-image",
]:
respx.post("https://api.acedata.cloud/gemini/chat/completions").mock(
return_value=Response(200, json=mock_chat_response)
Expand All @@ -110,6 +107,18 @@ def test_chat_with_new_models(self, runner, mock_chat_response):
)
assert result.exit_code == 0, f"Model {model} failed: {result.output}"

def test_chat_rejects_image_models(self, runner):
"""Image models are native-only; the chat endpoint can't serve them."""
for model in [
"gemini-3.1-flash-image",
"gemini-2.5-flash-image",
"gemini-3-pro-image",
]:
result = runner.invoke(
cli, ["--token", "test-token", "chat", "Hello", "-m", model, "--json"]
)
assert result.exit_code != 0, f"Model {model} should be rejected"

@respx.mock
def test_chat_with_max_completion_tokens(self, runner, mock_chat_response):
respx.post("https://api.acedata.cloud/gemini/chat/completions").mock(
Expand Down
Loading