Self-hosted knowledge management for SMEs: a split-screen Markdown editor whose sections an LLM refines while you write, and RAG question answering over the documents that result. FastAPI + Postgres/pgvector on the back, SvelteKit on the front, everything OpenAI-compatible and self-hostable. Squashed into a single commit; the development history stays local. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CA43ZJda8Rbp2hKXNy8f6b
14 lines
428 B
Python
14 lines
428 B
Python
"""Server-sent events, the one way this API streams.
|
|
|
|
Two endpoints stream (a chat turn and a section refinement) and they frame the
|
|
same way, so the wire format lives here rather than in both. `event:` names the frame, `data:` carries a JSON object, and
|
|
a blank line ends it.
|
|
"""
|
|
|
|
import json
|
|
from typing import Any
|
|
|
|
|
|
def sse(event: str, data: dict[str, Any]) -> str:
|
|
return f"event: {event}\ndata: {json.dumps(data)}\n\n"
|