Spaces:
Running
Running
File size: 951 Bytes
0157ac7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | """Canonical Anthropic-style SSE sequence for provider-side streaming errors."""
from __future__ import annotations
import uuid
from collections.abc import Iterator
from typing import Any
from core.anthropic.sse import SSEBuilder
def iter_provider_stream_error_sse_events(
*,
request: Any,
input_tokens: int,
error_message: str,
sent_any_event: bool,
log_raw_sse_events: bool,
message_id: str | None = None,
) -> Iterator[str]:
"""Yield message_start (if needed), a text block with the error, then message_delta/stop."""
mid = message_id or f"msg_{uuid.uuid4()}"
model = getattr(request, "model", "") or ""
sse = SSEBuilder(
mid,
model,
input_tokens,
log_raw_events=log_raw_sse_events,
)
if not sent_any_event:
yield sse.message_start()
yield from sse.emit_error(error_message)
yield sse.message_delta("end_turn", 1)
yield sse.message_stop()
|