20 lines
614 B
Python
20 lines
614 B
Python
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from app.modules.agent_api.domain.events.client_event import ClientEventRecord
|
|
|
|
|
|
class SseEncoder:
|
|
def encode(self, event: ClientEventRecord) -> str:
|
|
payload = {
|
|
"event_id": event.event_id,
|
|
"request_id": event.request_id,
|
|
"type": event.type.value,
|
|
"source": event.source,
|
|
"text": event.text,
|
|
"payload": event.payload,
|
|
"created_at": event.created_at.isoformat(),
|
|
}
|
|
return f"event: {event.type.value}\ndata: {json.dumps(payload, ensure_ascii=False)}\n\n"
|