feat: google临时环境变量线程安全处理

This commit is contained in:
Pollo
2025-11-20 17:05:55 +08:00
parent cf2a0cf8c2
commit 84ef5705e7
+7 -2
View File
@@ -1,6 +1,7 @@
"""MoviePilot AI智能体实现""" """MoviePilot AI智能体实现"""
import asyncio import asyncio
import threading
from typing import Dict, List, Any from typing import Dict, List, Any
from langchain.agents import AgentExecutor, create_openai_tools_agent from langchain.agents import AgentExecutor, create_openai_tools_agent
@@ -20,6 +21,9 @@ from app.helper.message import MessageHelper
from app.log import logger from app.log import logger
from app.schemas import Notification from app.schemas import Notification
# 用于保护环境变量修改的线程锁
_env_lock = threading.Lock()
class AgentChain(ChainBase): class AgentChain(ChainBase):
pass pass
@@ -77,10 +81,11 @@ class MoviePilotAgent:
from contextlib import contextmanager from contextlib import contextmanager
from langchain_google_genai import ChatGoogleGenerativeAI from langchain_google_genai import ChatGoogleGenerativeAI
# 使用临时环境变量配置代理 # 使用线程锁保护的临时环境变量配置
@contextmanager @contextmanager
def _temp_proxy_env(): def _temp_proxy_env():
"""临时设置代理环境变量的上下文管理器""" """线程安全的临时设置代理环境变量的上下文管理器"""
with _env_lock:
old_http = os.environ.get("HTTP_PROXY") old_http = os.environ.get("HTTP_PROXY")
old_https = os.environ.get("HTTPS_PROXY") old_https = os.environ.get("HTTPS_PROXY")
try: try: