优化方法

pull/1251/head
foxplaying 2025-09-22 11:59:12 +08:00 committed by GitHub
parent f075f28f02
commit 45115b802f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 12 additions and 12 deletions

View File

@ -17,6 +17,7 @@ from google.genai.types import (
EmbedContentResponse,
EmbedContentConfig,
SafetySetting,
HttpOptions,
HarmCategory,
HarmBlockThreshold,
)
@ -345,22 +346,21 @@ class GeminiClient(BaseClient):
def __init__(self, api_provider: APIProvider):
super().__init__(api_provider)
http_options_kwargs = {"timeout": api_provider.timeout}
# 增加传入参数处理
if api_provider.base_url:
parts = api_provider.base_url.rsplit("/", 1)
if len(parts) == 2 and parts[1].startswith("v"):
http_options_kwargs["base_url"] = parts[0] + "/"
http_options_kwargs["api_version"] = parts[1]
else:
http_options_kwargs["base_url"] = api_provider.base_url
self.client = genai.Client(
http_options=HttpOptions(**http_options_kwargs),
api_key=api_provider.api_key,
) # 这里和openai不一样gemini会自己决定自己是否需要retry
# 尝试传入自定义base_url(实验性必须为Gemini格式)
if hasattr(api_provider, "base_url") and api_provider.base_url:
base_url = api_provider.base_url.rstrip("/") # 去掉末尾 /
self.client._api_client._http_options.base_url = base_url
# 如果 base_url 已经带了 /v1 或 /v1beta就清掉 SDK 的 api_version
if base_url.endswith("/v1") or base_url.endswith("/v1beta"):
self.client._api_client._http_options.api_version = None
# 让 GeminiClient 内部也能访问底层 api_client
self._api_client = self.client._api_client
@staticmethod
def clamp_thinking_budget(tb: int, model_id: str) -> int:
"""