mirror of https://github.com/aliasrobotics/cai.git
Fix Google Gemini OpenAI compatibility issues (#268)
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:
parent
6a1fd59fbd
commit
46c25e7f17
|
|
@ -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,15 @@ 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.
|
||||
if "openai/gemini" in os.getenv("CAI_MODEL"):
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue