fix(agent): 增强 LLM 流式回复兜底
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import json
|
||||
import logging
|
||||
from urllib import error, request
|
||||
|
||||
from django.conf import settings
|
||||
@@ -12,6 +13,9 @@ class LLMRequestError(RuntimeError):
|
||||
"""Raised when the remote LLM provider call fails."""
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def generate_reply(conversation, user_message: str) -> str:
|
||||
"""Calls the SiliconFlow OpenAI-compatible chat endpoint and returns assistant text."""
|
||||
|
||||
@@ -130,7 +134,11 @@ def stream_reply(conversation, user_message: str):
|
||||
data = line[5:].strip()
|
||||
if data == "[DONE]":
|
||||
break
|
||||
payload = json.loads(data)
|
||||
try:
|
||||
payload = json.loads(data)
|
||||
except json.JSONDecodeError:
|
||||
logger.warning("Skipping malformed LLM stream data", extra={"data": data[:200]})
|
||||
continue
|
||||
delta = (
|
||||
payload.get("choices", [{}])[0]
|
||||
.get("delta", {})
|
||||
|
||||
Reference in New Issue
Block a user