fix: AGNES图像/视频生成强制经智能路由代理(172.18.0.1:7890),修复容器内直连被重置导致图像生成异常
This commit is contained in:
1 parent
202a181ebe
commit
ba09017884
1 file changed
+10
-2
@@ -79,6 +79,14 @@ def _html_escape(s: str) -> str:
|
||||
.replace('"', """).replace("'", "'"))
|
||||
|
||||
|
||||
def _outbound_proxy() -> str:
|
||||
"""出网代理地址。容器内直连 apihub.agnes-ai.com 会被对端重置
|
||||
(httpx RemoteProtocolError: Server disconnected without sending a response),
|
||||
必须经 172.18.0.1:7890 智能路由代理(其对国内 AGNES 域名走直连)。"""
|
||||
import os
|
||||
return os.environ.get("HTTPS_PROXY") or os.environ.get("HTTP_PROXY") or "http://172.18.0.1:7890"
|
||||
|
||||
|
||||
async def _generate_media(db, ai_model, prompt: str, user_id: str = None) -> str:
|
||||
"""图像/视频生成模型统一入口:按 capabilities 调用 AGNES 等媒体生成 API。
|
||||
返回可直接在 AI 聊天中渲染的富文本(含 <img>/<video> 标签)。"""
|
||||
@@ -105,7 +113,7 @@ async def _generate_media(db, ai_model, prompt: str, user_id: str = None) -> str
|
||||
"extra_body": {"response_format": "url"},
|
||||
}
|
||||
try:
|
||||
async with httpx.AsyncClient(timeout=timeout) as client:
|
||||
async with httpx.AsyncClient(timeout=timeout, proxy=_outbound_proxy()) as client:
|
||||
resp = await client.post(api_url, headers=headers, json=payload)
|
||||
if resp.status_code != 200:
|
||||
return f"⚠️ 图像生成失败 (HTTP {resp.status_code}): {resp.text[:200]}"
|
||||
@@ -141,7 +149,7 @@ async def _generate_media(db, ai_model, prompt: str, user_id: str = None) -> str
|
||||
"frame_rate": 24,
|
||||
}
|
||||
try:
|
||||
async with httpx.AsyncClient(timeout=timeout) as client:
|
||||
async with httpx.AsyncClient(timeout=timeout, proxy=_outbound_proxy()) as client:
|
||||
resp = await client.post(api_url, headers=headers, json=payload)
|
||||
if resp.status_code != 200:
|
||||
return f"⚠️ 视频生成失败 (HTTP {resp.status_code}): {resp.text[:200]}"
|
||||
|
||||
Reference in new issue
Block a user