Quillwright / quillwright /api /translate.py
Aarya2004's picture
Deploy Quillwright (stub Docker Space): bespoke gr.Server app + sample data
76a2f92 verified
Raw
History Blame Contribute Delete
1 kB
"""Localize the customer-facing estimate via Cohere Aya (or any text model).
Only descriptions and labels are translated; every number (rate/subtotal/tax/
total) is left exactly as computed — money is never sent through the model.
"""
import copy
def _translate_text(text: str, language: str, model) -> str:
prompt = (
f"Translate the following field-service estimate line into {language}. "
f"Return ONLY the translation, no quotes or notes.\n\n{text}"
)
out = model.generate(prompt).strip()
return out or text
def translate_estimate(estimate: dict, language: str, model) -> dict:
"""Return a copy of the estimate with descriptions translated into `language`."""
if not language or language.lower().startswith("english"):
return estimate # source is English; nothing to do
out = copy.deepcopy(estimate)
for li in out.get("line_items", []):
li["description"] = _translate_text(li["description"], language, model)
return out