Files
Onyscribe-Admin/app/agent/testrun.py
RubenRWU 7d8c226da2 Onyscribe Admin: Initialer Stand
Admin-Plattform für die Tenants von Onyscribe: Editor mit Live-Vorschau (echter Core in Sandbox), Versionen, KI-Agent (Cortecs),
OIDC-Abgleich über die Login-Developer-API, Deploy-Engine (Mittwald, gesperrt ohne DEPLOY_LIVE, Freigabe pro Tenant),
Core-Vertrag (Schema/Manifest), Core-Releases mit Kompatibilitätsprüfung, Canary-Rollout und Rollback, Zustandsabgleich.
Runbook: docs/RUNBOOK_PARALLELTEST.md

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 15:30:26 +02:00

25 lines
1.3 KiB
Python

"""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