Linguacore
Documents translated by LLM, with terminology held steady across every file.
- Client
- AD VERBUM
- Year
- 2024 – 26
- Status
- Live
- My role
- Platform and AI pipeline
Problem
Machine translation is cheap and it drifts. The same term comes back three different ways across a client’s document set, so a linguist has to read everything again and the saving disappears. Agencies were paying twice.
Architecture
- 01
Intake
A Django and DRF API takes the upload, puts the file in S3, and queues the job. Subscription tier decides which models the account may use.
- 02
Convert
A Java Lambda runs OpenXLIFF to split the document into translatable segments and a skeleton that remembers the original formatting.
- 03
Extract terms
A separate Lambda pulls candidate terminology out of the segments and checks it against the client’s approved term index.
- 04
Translate twice
The first pass translates segments. The second reads the result back against the term index and fixes anything that drifted.
- 05
Merge
The skeleton and the translated segments are recombined, so the customer gets their own document back rather than a text dump.
- 06
Bill
Stripe handles subscriptions through dj-stripe, with per-tier model access held in config rather than code.
Impact
Runs as the production translation path, with a separate QA environment beside it
Twelve model versions across three vendors are selectable per tier, so repricing is a config edit
Terminology stays consistent across a client’s whole document set, which was the reason for the rework