VoxSum-bak / src /server /services /summarization_service.py
Luigi's picture
feat: add X-ASR + Qwen3-ASR backends, Gemma-4 LLMs; fix review findings
db7a819
Raw
History Blame Contribute Delete
1.09 kB
from __future__ import annotations
from typing import Dict, Iterable
from src.summarization import summarize_transcript, generate_title
from ..models.summarization import SummaryRequest
def iter_summary_events(payload: SummaryRequest) -> Iterable[Dict[str, str]]:
try:
# Generate title if requested
title = None
if payload.generate_title:
title = generate_title(payload.transcript, payload.llm_model)
yield {"type": "title", "content": title}
# Generate summary
generator = summarize_transcript(
transcript=payload.transcript,
selected_gguf_model=payload.llm_model,
prompt_input=payload.prompt,
)
for chunk in generator:
yield {"type": "partial", "content": chunk}
yield {"type": "complete"}
except Exception as exc:
# Response already started (HTTP 200 + NDJSON); surface failures as a
# terminal error event instead of a raise that truncates the stream.
yield {"type": "error", "message": f"Summary failed: {exc}"}