dp-zp-agent/tools/answers/answer_errors.py

57 lines
2.6 KiB
Python

"""Public failure wording; transport/model exception text is never a UI message."""
MESSAGES = {
'invalid_context':'Kontext predchádzajúcej otázky sa nepodarilo overiť. Zopakuj úplnú otázku s osobou, prácou a prípadným dátumom.',
'stale_context':'Dáta alebo kontext konverzácie sa zmenili. Zopakuj úplnú otázku; starý výber stretnutia nepoužijem.',
'expired_context':'Kontext predchádzajúcej otázky už vypršal. Zopakuj úplnú otázku.',
'proposal_not_available':'Otázka žiada návrh možného prepojenia, nie iba existujúce fakty. Návrhový režim ešte nie je dostupný; výpis podkladov preto nevydávam za hotový návrh.',
"reference_unavailable": "Zdrojový repozitár sa nepodarilo verejne overiť. Odpoveď založenú iba na tomto odkaze neuvádzam.",
"content_index_unavailable": "Obsahové vyhľadávanie momentálne nie je pripravené alebo sa jeho výstup "
"nepodarilo overiť. Treba overiť extrakciu pre aktuálnu verziu dát; "
"nejde o potvrdenie, že hľadané údaje neexistujú.",
"model_unavailable": "Jazykový model momentálne nie je dostupný. Skús otázku neskôr.",
"retrieval_unavailable": "Vyhľadávací index momentálne nie je dostupný. Skús otázku neskôr.",
"answer_capacity_exceeded": "Agent práve spracúva iné otázky. Skús to o chvíľu.",
"answer_rejected": "Odpoveď sa nepodarilo spoľahlivo overiť podľa podkladov. "
"Neoverené údaje sa nezobrazia.",
"answer_unavailable": "Overenú odpoveď sa momentálne nepodarilo pripraviť. Skús to neskôr.",
}
def public_failure(result: dict) -> dict:
reason = result.get("reason")
if not isinstance(reason, str) or reason not in MESSAGES:
reason = "answer_unavailable"
return {
"index_version": None,
"complete": False,
"truncated": False,
"truncation_reasons": [],
**result,
"status": "error",
"reason": reason,
"accepted_for_delivery": False,
"answer": MESSAGES[reason],
"claims": [],
"source_urls": [],
}
def clarification_result(
answer: str, reason: str, *, engine: str, index_version: dict | None = None
) -> dict:
"""Build a clarification with the same public fields on every branch."""
return {
"status": "ambiguous",
"reason": reason,
"accepted_for_delivery": True,
"answer": answer,
"claims": [],
"source_urls": [],
"engine": engine,
"index_version": index_version,
"complete": False,
"truncated": False,
"truncation_reasons": [],
}