53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
"""Public failure wording; transport/model exception text is never a UI message."""
|
|
|
|
MESSAGES = {
|
|
"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": [],
|
|
}
|