From b97fefdb8d63baec4686c3004b9e82e91a655a7b Mon Sep 17 00:00:00 2001 From: Pollo Date: Fri, 21 Nov 2025 11:10:41 +0800 Subject: [PATCH] =?UTF-8?q?fix(ai):=20=E8=A7=A3=E5=86=B3google=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E4=B8=8D=E7=94=9F=E6=95=88=E9=97=AE=E9=A2=98=20-=20go?= =?UTF-8?q?ogle=E5=9C=A8=E6=A3=80=E6=B5=8B=E5=88=B0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E4=BB=A3=E7=90=86=E6=97=B6=EF=BC=8C=E4=BD=BF=E7=94=A8gemini=20?= =?UTF-8?q?openai=E5=85=BC=E5=AE=B9API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/agent/__init__.py | 49 +++++++++++++------------------------------ 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/app/agent/__init__.py b/app/agent/__init__.py index 96ef40f7..848f5dd1 100644 --- a/app/agent/__init__.py +++ b/app/agent/__init__.py @@ -1,7 +1,6 @@ """MoviePilot AI智能体实现""" import asyncio -import threading from typing import Dict, List, Any from langchain.agents import AgentExecutor, create_openai_tools_agent @@ -21,9 +20,6 @@ from app.helper.message import MessageHelper from app.log import logger from app.schemas import Notification -# 用于保护环境变量修改的线程锁 -_env_lock = threading.Lock() - class AgentChain(ChainBase): pass @@ -77,36 +73,21 @@ class MoviePilotAgent: raise ValueError("未配置 LLM_API_KEY") if provider == "google": - import os - from contextlib import contextmanager - from langchain_google_genai import ChatGoogleGenerativeAI - - # 使用线程锁保护的临时环境变量配置 - @contextmanager - def _temp_proxy_env(): - """线程安全的临时设置代理环境变量的上下文管理器""" - with _env_lock: - old_http = os.environ.get("HTTP_PROXY") - old_https = os.environ.get("HTTPS_PROXY") - try: - if settings.PROXY_HOST: - os.environ["HTTP_PROXY"] = settings.PROXY_HOST - os.environ["HTTPS_PROXY"] = settings.PROXY_HOST - yield - finally: - # 恢复原始环境变量 - if old_http is not None: - os.environ["HTTP_PROXY"] = old_http - elif "HTTP_PROXY" in os.environ: - del os.environ["HTTP_PROXY"] - - if old_https is not None: - os.environ["HTTPS_PROXY"] = old_https - elif "HTTPS_PROXY" in os.environ: - del os.environ["HTTPS_PROXY"] - - # 在临时环境变量中初始化 ChatGoogleGenerativeAI - with _temp_proxy_env(): + if settings.PROXY_HOST: + from langchain_openai import ChatOpenAI + return ChatOpenAI( + model=settings.LLM_MODEL, + api_key=api_key, + max_retries=3, + base_url="https://generativelanguage.googleapis.com/v1beta/openai", + temperature=settings.LLM_TEMPERATURE, + streaming=True, + callbacks=[self.callback_handler], + stream_usage=True, + openai_proxy=settings.PROXY_HOST + ) + else: + from langchain_google_genai import ChatGoogleGenerativeAI return ChatGoogleGenerativeAI( model=settings.LLM_MODEL, google_api_key=api_key,