mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-04-30 14:56:01 +00:00
refactor: remove dead _error_response wrapper in Anthropic provider
Fold _error_response back into _handle_error to match OpenAI/Azure convention. Update all call sites and tests accordingly. Made-with: Cursor
This commit is contained in:
parent
b575aed20e
commit
aeba9a23e6
@ -98,7 +98,7 @@ class AnthropicProvider(LLMProvider):
|
|||||||
return value if value > 0 else None
|
return value if value > 0 else None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _error_response(cls, e: Exception) -> LLMResponse:
|
def _handle_error(cls, e: Exception) -> LLMResponse:
|
||||||
response = getattr(e, "response", None)
|
response = getattr(e, "response", None)
|
||||||
headers = getattr(response, "headers", None)
|
headers = getattr(response, "headers", None)
|
||||||
payload = (
|
payload = (
|
||||||
@ -505,10 +505,6 @@ class AnthropicProvider(LLMProvider):
|
|||||||
# Public API
|
# Public API
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def _handle_error(cls, e: Exception) -> LLMResponse:
|
|
||||||
return cls._error_response(e)
|
|
||||||
|
|
||||||
async def chat(
|
async def chat(
|
||||||
self,
|
self,
|
||||||
messages: list[dict[str, Any]],
|
messages: list[dict[str, Any]],
|
||||||
@ -527,7 +523,7 @@ class AnthropicProvider(LLMProvider):
|
|||||||
response = await self._client.messages.create(**kwargs)
|
response = await self._client.messages.create(**kwargs)
|
||||||
return self._parse_response(response)
|
return self._parse_response(response)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return self._error_response(e)
|
return self._handle_error(e)
|
||||||
|
|
||||||
async def chat_stream(
|
async def chat_stream(
|
||||||
self,
|
self,
|
||||||
@ -573,7 +569,7 @@ class AnthropicProvider(LLMProvider):
|
|||||||
error_kind="timeout",
|
error_kind="timeout",
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return self._error_response(e)
|
return self._handle_error(e)
|
||||||
|
|
||||||
def get_default_model(self) -> str:
|
def get_default_model(self) -> str:
|
||||||
return self.default_model
|
return self.default_model
|
||||||
|
|||||||
@ -50,7 +50,7 @@ def test_openai_handle_error_marks_timeout_kind() -> None:
|
|||||||
assert response.error_kind == "timeout"
|
assert response.error_kind == "timeout"
|
||||||
|
|
||||||
|
|
||||||
def test_anthropic_error_response_extracts_structured_metadata() -> None:
|
def test_anthropic_handle_error_extracts_structured_metadata() -> None:
|
||||||
class FakeStatusError(Exception):
|
class FakeStatusError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ def test_anthropic_error_response_extracts_structured_metadata() -> None:
|
|||||||
)
|
)
|
||||||
err.body = {"type": "error", "error": {"type": "rate_limit_error"}}
|
err.body = {"type": "error", "error": {"type": "rate_limit_error"}}
|
||||||
|
|
||||||
response = AnthropicProvider._error_response(err)
|
response = AnthropicProvider._handle_error(err)
|
||||||
|
|
||||||
assert response.finish_reason == "error"
|
assert response.finish_reason == "error"
|
||||||
assert response.error_status_code == 408
|
assert response.error_status_code == 408
|
||||||
@ -71,11 +71,11 @@ def test_anthropic_error_response_extracts_structured_metadata() -> None:
|
|||||||
assert response.error_should_retry is True
|
assert response.error_should_retry is True
|
||||||
|
|
||||||
|
|
||||||
def test_anthropic_error_response_marks_connection_kind() -> None:
|
def test_anthropic_handle_error_marks_connection_kind() -> None:
|
||||||
class FakeConnectionError(Exception):
|
class FakeConnectionError(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
response = AnthropicProvider._error_response(FakeConnectionError("connection"))
|
response = AnthropicProvider._handle_error(FakeConnectionError("connection"))
|
||||||
|
|
||||||
assert response.finish_reason == "error"
|
assert response.finish_reason == "error"
|
||||||
assert response.error_kind == "connection"
|
assert response.error_kind == "connection"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user