- Shipped
- September 28, 2026 at 9:38 PM UTC
- Author
- Kamo
- Commit
- 28858cd
LibreTranslate lists no Tamil and Bergamot serves German only, so every en->ta request (the dictionary sync, Help Center articles, chat) matched no provider and came back as its English source: kamo-internal's ta.json equalled English in 34,549 of 34,779 keys. Kamo IndicTrans serves IndicTrans2's distilled en->indic 200M model (MIT; the rotary-position variant by its authors, as converted to CTranslate2) on CPU on k3m1, behind the same Kamo auth proxy as bergamot and libretranslate (kamo-translate-auth). It speaks LibreTranslate's API and serves en->ta only; any other pair is a 400, never an English echo. - scripts/server.py: IndicTransToolkit's IndicProcessor for an English source, ported; Kamo's KMPH<n> sentinels ride as the model's own <ID n> entities (150 of 150 kept); and four output repairs measured on kamo-internal strings: spaced dashes kept, the model's visarga-for-colon (Tamil aytham) turned back into a colon, the ellipsis character kept, and no full stop added to a label. Logs sizes and timings, never text. SIGTERM finishes the requests in flight. - scripts/fetch_models.py: Job indictrans-models fetches the model by revision and SHA-256 and the packages by requirements.txt with --require-hashes into a local-path PVC; a file that does not verify never takes the served name. The serving pod mounts it read-only and has no egress (CiliumNetworkPolicy); only translateservice reaches the proxy. - Sizing (measured): 0.9 GB peak RSS, 0.5-0.6 GB serving; p50 0.16 s per string at 4 threads. Requests 2 CPU / 1Gi, limit 2Gi, no CPU limit. - Workflow step Deploy IndicTrans (K3M1), before the audit; a changed script or proxy config restarts a running server. SECRETS.md lists the new consumer of kamo-translate-auth. Tests: python3 -m unittest discover -s indictrans/tests (70; the two real-model tests run with INDICTRANS_MODEL_DIR set).
