# app/utils/sse_utils.py import json import time from typing import Dict, Any, Optional DONE_CHUNK = b"data: [DONE]\n\n" def create_sse_data(data: Dict[str, Any]) -> bytes: return f"data: {json.dumps(data)}\n\n".encode('utf-8') def create_chat_completion_chunk( request_id: str, model: str, content: Optional[str] = None, finish_reason: Optional[str] = None, role: Optional[str] = None ) -> Dict[str, Any]: delta: Dict[str, Any] = {} if role is not None: delta["role"] = role if content is not None: delta["content"] = content return { "id": request_id, "object": "chat.completion.chunk", "created": int(time.time()), "model": model, "choices": [ { "index": 0, "delta": delta, "finish_reason": finish_reason } ] }