Skip to content

Commit c2c0515

Browse files
authored
Merge pull request #5163 from Pollo3470/feat/ai-proxy
2 parents 840da6d + b97fefd commit c2c0515

File tree

1 file changed

+15
-34
lines changed

1 file changed

+15
-34
lines changed

app/agent/__init__.py

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"""MoviePilot AI智能体实现"""
22

33
import asyncio
4-
import threading
54
from typing import Dict, List, Any
65

76
from langchain.agents import AgentExecutor, create_openai_tools_agent
@@ -21,9 +20,6 @@
2120
from app.log import logger
2221
from app.schemas import Notification
2322

24-
# 用于保护环境变量修改的线程锁
25-
_env_lock = threading.Lock()
26-
2723

2824
class AgentChain(ChainBase):
2925
pass
@@ -77,36 +73,21 @@ def _initialize_llm(self):
7773
raise ValueError("未配置 LLM_API_KEY")
7874

7975
if provider == "google":
80-
import os
81-
from contextlib import contextmanager
82-
from langchain_google_genai import ChatGoogleGenerativeAI
83-
84-
# 使用线程锁保护的临时环境变量配置
85-
@contextmanager
86-
def _temp_proxy_env():
87-
"""线程安全的临时设置代理环境变量的上下文管理器"""
88-
with _env_lock:
89-
old_http = os.environ.get("HTTP_PROXY")
90-
old_https = os.environ.get("HTTPS_PROXY")
91-
try:
92-
if settings.PROXY_HOST:
93-
os.environ["HTTP_PROXY"] = settings.PROXY_HOST
94-
os.environ["HTTPS_PROXY"] = settings.PROXY_HOST
95-
yield
96-
finally:
97-
# 恢复原始环境变量
98-
if old_http is not None:
99-
os.environ["HTTP_PROXY"] = old_http
100-
elif "HTTP_PROXY" in os.environ:
101-
del os.environ["HTTP_PROXY"]
102-
103-
if old_https is not None:
104-
os.environ["HTTPS_PROXY"] = old_https
105-
elif "HTTPS_PROXY" in os.environ:
106-
del os.environ["HTTPS_PROXY"]
107-
108-
# 在临时环境变量中初始化 ChatGoogleGenerativeAI
109-
with _temp_proxy_env():
76+
if settings.PROXY_HOST:
77+
from langchain_openai import ChatOpenAI
78+
return ChatOpenAI(
79+
model=settings.LLM_MODEL,
80+
api_key=api_key,
81+
max_retries=3,
82+
base_url="https://generativelanguage.googleapis.com/v1beta/openai",
83+
temperature=settings.LLM_TEMPERATURE,
84+
streaming=True,
85+
callbacks=[self.callback_handler],
86+
stream_usage=True,
87+
openai_proxy=settings.PROXY_HOST
88+
)
89+
else:
90+
from langchain_google_genai import ChatGoogleGenerativeAI
11091
return ChatGoogleGenerativeAI(
11192
model=settings.LLM_MODEL,
11293
google_api_key=api_key,

0 commit comments

Comments
 (0)