ai: enforce mode timeouts and accept atlasbot reply payload
This commit is contained in:
parent
03b282da20
commit
9b87c8bfbd
@ -65,17 +65,25 @@ def _atlasbot_answer(message: str, mode: str, conversation_id: str) -> str:
|
|||||||
payload = {"prompt": message, "mode": mode}
|
payload = {"prompt": message, "mode": mode}
|
||||||
if conversation_id:
|
if conversation_id:
|
||||||
payload["conversation_id"] = conversation_id
|
payload["conversation_id"] = conversation_id
|
||||||
with httpx.Client(timeout=settings.AI_ATLASBOT_TIMEOUT_SEC) as client:
|
with httpx.Client(timeout=_atlasbot_timeout_sec(mode)) as client:
|
||||||
resp = client.post(endpoint, json=payload, headers=headers)
|
resp = client.post(endpoint, json=payload, headers=headers)
|
||||||
if resp.status_code != 200:
|
if resp.status_code != 200:
|
||||||
return ""
|
return ""
|
||||||
data = resp.json()
|
data = resp.json()
|
||||||
answer = (data.get("answer") or "").strip()
|
answer = (data.get("reply") or data.get("answer") or "").strip()
|
||||||
return answer
|
return answer
|
||||||
except (httpx.RequestError, ValueError):
|
except (httpx.RequestError, ValueError):
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def _atlasbot_timeout_sec(mode: str) -> float:
|
||||||
|
if mode == "genius":
|
||||||
|
return settings.AI_ATLASBOT_TIMEOUT_GENIUS_SEC
|
||||||
|
if mode == "smart":
|
||||||
|
return settings.AI_ATLASBOT_TIMEOUT_SMART_SEC
|
||||||
|
return settings.AI_ATLASBOT_TIMEOUT_QUICK_SEC
|
||||||
|
|
||||||
|
|
||||||
def _discover_ai_meta(profile: str) -> dict[str, str]:
|
def _discover_ai_meta(profile: str) -> dict[str, str]:
|
||||||
meta = {
|
meta = {
|
||||||
"node": settings.AI_NODE_NAME,
|
"node": settings.AI_NODE_NAME,
|
||||||
|
|||||||
@ -29,6 +29,15 @@ AI_CHAT_TIMEOUT_SEC = float(os.getenv("AI_CHAT_TIMEOUT_SEC", "20"))
|
|||||||
AI_ATLASBOT_ENDPOINT = os.getenv("AI_ATLASBOT_ENDPOINT", "").strip()
|
AI_ATLASBOT_ENDPOINT = os.getenv("AI_ATLASBOT_ENDPOINT", "").strip()
|
||||||
AI_ATLASBOT_TOKEN = os.getenv("AI_ATLASBOT_TOKEN", "").strip()
|
AI_ATLASBOT_TOKEN = os.getenv("AI_ATLASBOT_TOKEN", "").strip()
|
||||||
AI_ATLASBOT_TIMEOUT_SEC = float(os.getenv("AI_ATLASBOT_TIMEOUT_SEC", "5"))
|
AI_ATLASBOT_TIMEOUT_SEC = float(os.getenv("AI_ATLASBOT_TIMEOUT_SEC", "5"))
|
||||||
|
AI_ATLASBOT_TIMEOUT_QUICK_SEC = float(
|
||||||
|
os.getenv("AI_ATLASBOT_TIMEOUT_QUICK_SEC", str(max(AI_ATLASBOT_TIMEOUT_SEC, 15)))
|
||||||
|
)
|
||||||
|
AI_ATLASBOT_TIMEOUT_SMART_SEC = float(
|
||||||
|
os.getenv("AI_ATLASBOT_TIMEOUT_SMART_SEC", str(max(AI_ATLASBOT_TIMEOUT_SEC, 45)))
|
||||||
|
)
|
||||||
|
AI_ATLASBOT_TIMEOUT_GENIUS_SEC = float(
|
||||||
|
os.getenv("AI_ATLASBOT_TIMEOUT_GENIUS_SEC", str(max(AI_ATLASBOT_TIMEOUT_SEC, 180)))
|
||||||
|
)
|
||||||
AI_ATLASBOT_MODEL_FAST = os.getenv("AI_ATLASBOT_MODEL_FAST", "").strip()
|
AI_ATLASBOT_MODEL_FAST = os.getenv("AI_ATLASBOT_MODEL_FAST", "").strip()
|
||||||
AI_ATLASBOT_MODEL_SMART = os.getenv("AI_ATLASBOT_MODEL_SMART", "").strip()
|
AI_ATLASBOT_MODEL_SMART = os.getenv("AI_ATLASBOT_MODEL_SMART", "").strip()
|
||||||
AI_ATLASBOT_MODEL_GENIUS = os.getenv("AI_ATLASBOT_MODEL_GENIUS", "").strip()
|
AI_ATLASBOT_MODEL_GENIUS = os.getenv("AI_ATLASBOT_MODEL_GENIUS", "").strip()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user