Spaces:
Sleeping
Sleeping
| """Pre-compute the curated example translations once, so the "Surprise me" | |
| button can load them instantly with NO LLM call at request time. | |
| Run locally (needs the local LLM): python build_examples_cache.py | |
| Writes examples_cache.py (a module embedding the precomputed results as JSON). | |
| """ | |
| import json | |
| import config | |
| import examples | |
| import llm | |
| import translate | |
| def key(text, src, tgt): | |
| return f"{src}|{tgt}|{text}" | |
| def main(): | |
| langs = set(config.LANGUAGES) | |
| print("LLM backend:", llm.backend()) | |
| cache = {} | |
| for text, src, tgt in examples.EXAMPLES: | |
| if src not in langs or tgt not in langs: | |
| print("skip (unsupported lang):", src, "->", tgt) | |
| continue | |
| k = key(text, src, tgt) | |
| if k in cache: | |
| continue | |
| print(f"translating {src}->{tgt}: {text[:45]}") | |
| cache[k] = translate.progressive_translate(text, src, tgt) | |
| payload = json.dumps(cache, ensure_ascii=False) | |
| with open("examples_cache.py", "w", encoding="utf-8") as f: | |
| f.write('"""Auto-generated by build_examples_cache.py — do not edit by hand.\n') | |
| f.write('Precomputed example translations so the Surprise-me button needs no LLM.\n"""\n') | |
| f.write("import json\n\n") | |
| f.write("CACHE = json.loads(%r)\n" % payload) | |
| print(f"wrote examples_cache.py with {len(cache)} entries") | |
| if __name__ == "__main__": | |
| main() | |