mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-11 22:51:28 +00:00
Merge 7f13522143 into 22a349ee70
This commit is contained in:
commit
adc22fa0ac
2 changed files with 43 additions and 0 deletions
|
|
@ -1546,6 +1546,18 @@ class OpenAiResponsesToChatCompletionStreamIterator(BaseModelResponseIterator):
|
|||
],
|
||||
usage=usage,
|
||||
)
|
||||
elif event_type in ("response.failed", "error"):
|
||||
failure_response_data = parsed_chunk.get("response") or {}
|
||||
if not isinstance(failure_response_data, dict):
|
||||
failure_response_data = {}
|
||||
error_data = failure_response_data.get("error") or parsed_chunk.get("error") or parsed_chunk
|
||||
error_message = error_data.get("message") if isinstance(error_data, dict) else None
|
||||
raise litellm.APIError(
|
||||
status_code=500,
|
||||
message=error_message or "Responses API stream failed",
|
||||
llm_provider="",
|
||||
model=failure_response_data.get("model", ""),
|
||||
)
|
||||
else:
|
||||
pass
|
||||
# For any unhandled event types, create a minimal valid chunk or skip
|
||||
|
|
|
|||
|
|
@ -21,6 +21,37 @@ if TYPE_CHECKING:
|
|||
from litellm.types.utils import ModelResponse
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("chunk", "message"),
|
||||
[
|
||||
(
|
||||
{
|
||||
"type": "response.failed",
|
||||
"response": {
|
||||
"model": "gpt-5.6-luna",
|
||||
"error": {"code": "server_error", "message": "upstream failed"},
|
||||
},
|
||||
},
|
||||
"upstream failed",
|
||||
),
|
||||
({"type": "error", "code": "server_error", "message": "stream failed"}, "stream failed"),
|
||||
(
|
||||
{"type": "response.failed", "response": "invalid", "error": {"message": "malformed failure"}},
|
||||
"malformed failure",
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_response_stream_failure_raises_api_error(chunk, message):
|
||||
from litellm.completion_extras.litellm_responses_transformation.transformation import (
|
||||
OpenAiResponsesToChatCompletionStreamIterator,
|
||||
)
|
||||
|
||||
with pytest.raises(litellm.APIError, match=message) as exc_info:
|
||||
OpenAiResponsesToChatCompletionStreamIterator.translate_responses_chunk_to_openai_stream(chunk)
|
||||
|
||||
assert exc_info.value.status_code == 500
|
||||
|
||||
|
||||
def test_convert_chat_completion_messages_to_responses_api_image_input():
|
||||
from litellm.completion_extras.litellm_responses_transformation.transformation import (
|
||||
LiteLLMResponsesTransformationHandler,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue