From e1a71723bcc041c2dd4645837361ee860782b735 Mon Sep 17 00:00:00 2001 From: zhayujie Date: Sat, 31 Jan 2026 12:50:21 +0800 Subject: [PATCH] fix: gemini support api base --- bot/gemini/google_gemini_bot.py | 15 ++++++++++++++- config.py | 8 ++++++++ requirements-optional.txt | 5 ----- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/bot/gemini/google_gemini_bot.py b/bot/gemini/google_gemini_bot.py index 53142306..bf15c3ae 100644 --- a/bot/gemini/google_gemini_bot.py +++ b/bot/gemini/google_gemini_bot.py @@ -32,6 +32,19 @@ class GoogleGeminiBot(Bot): self.model = conf().get("model") or "gemini-pro" if self.model == "gemini": self.model = "gemini-pro" + + # 支持自定义API base地址,复用open_ai_api_base配置 + self.api_base = conf().get("open_ai_api_base", "").strip() + if self.api_base: + # 移除末尾的斜杠 + self.api_base = self.api_base.rstrip('/') + # 如果配置的是OpenAI的地址,则使用默认的Gemini地址 + if "api.openai.com" in self.api_base or not self.api_base: + self.api_base = "https://generativelanguage.googleapis.com" + logger.info(f"[Gemini] Using custom API base: {self.api_base}") + else: + self.api_base = "https://generativelanguage.googleapis.com" + def reply(self, query, context: Context = None) -> Reply: try: if context.type != ContextType.TEXT: @@ -245,7 +258,7 @@ class GoogleGeminiBot(Bot): logger.info(f"[Gemini] Added {len(tools)} tools to request") # Make REST API call - base_url = "https://generativelanguage.googleapis.com/v1beta" + base_url = f"{self.api_base}/v1beta" endpoint = f"{base_url}/models/{model_name}:generateContent" if stream: endpoint = f"{base_url}/models/{model_name}:streamGenerateContent?alt=sse" diff --git a/config.py b/config.py index 794954be..1a2a1051 100644 --- a/config.py +++ b/config.py @@ -212,6 +212,14 @@ class Config(dict): return super().__setitem__(key, value) def get(self, key, default=None): + # 跳过以下划线开头的注释字段 + if key.startswith("_"): + return super().get(key, default) + + # 如果key不在available_setting中,直接返回default + if key not in available_setting: + return super().get(key, default) + try: return self[key] except KeyError as e: diff --git a/requirements-optional.txt b/requirements-optional.txt index 0e9e1c53..8d86cdaf 100644 --- a/requirements-optional.txt +++ b/requirements-optional.txt @@ -19,14 +19,9 @@ dulwich web.py wechatpy -# chatgpt-tool-hub plugin -chatgpt_tool_hub==0.5.0 - # xunfei spark websocket-client==1.2.0 -# claude bot -curl_cffi # claude API anthropic==0.25.0