Возврат реальной ошибки провайдера вместо "Provider returned error".
This commit is contained in:
parent
41dfd3b4a0
commit
ba902e30a7
1 changed files with 18 additions and 6 deletions
24
ai_agent.py
24
ai_agent.py
|
|
@ -12,7 +12,7 @@ from typing import List, Tuple, Any, Optional, Union, Dict, Awaitable
|
|||
from openrouter import OpenRouter, RetryConfig
|
||||
from openrouter.components import AssistantMessage, AssistantMessageTypedDict, ChatMessageContentItemTypedDict, \
|
||||
ChatMessageToolCall, MessageTypedDict, ToolDefinitionJSONTypedDict
|
||||
from openrouter.errors import ResponseValidationError
|
||||
from openrouter.errors import ResponseValidationError, ChatError
|
||||
from openrouter.utils import BackoffStrategy
|
||||
|
||||
from database import BasicDatabase
|
||||
|
|
@ -364,11 +364,23 @@ class AiAgent:
|
|||
# https://github.com/OpenRouterTeam/python-sdk/issues/44
|
||||
body = json.loads(e.body)
|
||||
if "error" in body:
|
||||
raw_response = json.loads(body["error"]["metadata"]["raw"])
|
||||
message = str(raw_response["error"]["message"])
|
||||
raise RuntimeError(message)
|
||||
else:
|
||||
raise RuntimeError("Ошибка валидации ответа от провайдера.") from e
|
||||
try:
|
||||
raw_response = json.loads(body["error"]["metadata"]["raw"])
|
||||
message = str(raw_response["error"]["message"])
|
||||
e = RuntimeError(message)
|
||||
except Exception:
|
||||
pass
|
||||
raise e
|
||||
except ChatError as e:
|
||||
if e.message == "Provider returned error":
|
||||
body = json.loads(e.body)
|
||||
try:
|
||||
raw_response = json.loads(body["error"]["metadata"]["raw"])
|
||||
message = str(raw_response["error"]["message"])
|
||||
e = RuntimeError(message)
|
||||
except Exception:
|
||||
pass
|
||||
raise e
|
||||
|
||||
|
||||
agent: AiAgent
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue