Fix Google Gemini OpenAI compatibility issues

Gemini is ready to use with this configuration.
```
OPENAI_API_KEY="gemini_key"
OPENAI_BASE_URL="gemini_openai_compatible_url"
CAI_MODEL=openai/gemini-2.5-pro
```
This commit is contained in:
top9th 2025-09-11 17:29:42 +08:00
parent 5376aaf200
commit 4dbe76023f
1 changed files with 9 additions and 0 deletions

View File

@ -12,6 +12,7 @@ from collections.abc import AsyncIterator, Iterable
from dataclasses import dataclass, field
from typing import TYPE_CHECKING, Any, Literal, cast, overload
import uuid
import litellm
import tiktoken
from openai import NOT_GIVEN, AsyncOpenAI, AsyncStream, NotGiven
@ -969,6 +970,14 @@ class OpenAIChatCompletionsModel(Model):
if not hasattr(self, "_pending_tool_calls"):
self._pending_tool_calls = {}
# Fix Google Gemini OpenAI compatibility issues.
# When using the OpenAI-compatible API to call tools with Google Gemini
# tool_call.id is returned as an empty string.
for tool_call in assistant_msg.tool_calls:
if tool_call.id is None or tool_call.id == "":
tool_call.id = uuid.uuid4().hex[:16]
for tool_call in assistant_msg.tool_calls:
# Handle empty arguments before storing
tool_args = tool_call.function.arguments