"""Prompt-Test: finalen Prompt vom Core bauen lassen (inkl. Hooks), LLM aufrufen.""" from __future__ import annotations from app.services import llm, preview from app.services.samples import SAMPLE_TRANSCRIPT, ROTARY_TRANSCRIPT def user_content(transcript: str, terminart="", projekt="", kunde="", title="Beispiel") -> str: return (f"Termin-Art: {terminart or '(aus Gespräch erkennen)'}\nProjektname: {projekt or '(keiner)'}\n" f"Kunde / Unternehmen: {kunde or '(aus Gespräch erkennen)'}\nAnsprechpartner Kunde: (aus Gespräch erkennen)\n" f"Meeting-Titel: {title}\n\nGesprächsprotokoll:\n{transcript}") def default_transcript(tenant_id: str) -> str: return ROTARY_TRANSCRIPT if tenant_id.startswith("rotary") else SAMPLE_TRANSCRIPT def prompt_test(db, tenant, cfg, files, transcript: str | None, terminart="", projekt="", kunde="") -> dict: transcript = (transcript or "").strip() or default_transcript(tenant.id) r = preview.run_content(db, tenant, cfg, files, "prompt", args={"title": "Prompt-Test", "terminart": terminart, "projekt": projekt, "kunde": kunde}) out = llm.summarize(db, r["prompt"], user_content(transcript, terminart, projekt, kunde, "Prompt-Test"), tenant_id=tenant.id) out["prompt_chars"] = r["chars"] return out