Возврат реальной ошибки провайдера вместо "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 import OpenRouter, RetryConfig
|
||||||
from openrouter.components import AssistantMessage, AssistantMessageTypedDict, ChatMessageContentItemTypedDict, \
|
from openrouter.components import AssistantMessage, AssistantMessageTypedDict, ChatMessageContentItemTypedDict, \
|
||||||
ChatMessageToolCall, MessageTypedDict, ToolDefinitionJSONTypedDict
|
ChatMessageToolCall, MessageTypedDict, ToolDefinitionJSONTypedDict
|
||||||
from openrouter.errors import ResponseValidationError
|
from openrouter.errors import ResponseValidationError, ChatError
|
||||||
from openrouter.utils import BackoffStrategy
|
from openrouter.utils import BackoffStrategy
|
||||||
|
|
||||||
from database import BasicDatabase
|
from database import BasicDatabase
|
||||||
|
|
@ -364,11 +364,23 @@ class AiAgent:
|
||||||
# https://github.com/OpenRouterTeam/python-sdk/issues/44
|
# https://github.com/OpenRouterTeam/python-sdk/issues/44
|
||||||
body = json.loads(e.body)
|
body = json.loads(e.body)
|
||||||
if "error" in body:
|
if "error" in body:
|
||||||
raw_response = json.loads(body["error"]["metadata"]["raw"])
|
try:
|
||||||
message = str(raw_response["error"]["message"])
|
raw_response = json.loads(body["error"]["metadata"]["raw"])
|
||||||
raise RuntimeError(message)
|
message = str(raw_response["error"]["message"])
|
||||||
else:
|
e = RuntimeError(message)
|
||||||
raise RuntimeError("Ошибка валидации ответа от провайдера.") from e
|
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
|
agent: AiAgent
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue