How raphaelmerx/tulun works
Tulun is a Django application for low-resource machine translation: a user submits English text, the server retrieves relevant corpus and glossary context, obtains a baseline translation, and uses an LLM to post-edit it before rendering the result. Administration manages target-language configuration, glossaries, corpora, and evaluation rows. The web orchestration and model details were only partially sampled; evaluation sources explicitly substantiate retrieval, baseline translation, prompting, and LLM post-editing. Optional provider wiring is shown separately.
Components 18
Web Interface
- Django Routes
tulun/urls.py - Translation Views
translations/views.py - Translation Interface
translations/templates/translations/translate.html - Admin Interface
translations/admin.py
Translation Pipeline
- Translation Orchestrator
translations/utils.py - Baseline Translation
translations/dspy_models.py - Similar Sentence Retrieval
eval/flores/translator.py - LLM Post-Editor
translations/dspy_models.py
Translation Data
- Corpus Data
translations/models.py - Glossary Data
translations/models.py - System Configuration
translations/models.py - Corpus Entry API
translations/views.py
Evaluation
- Evaluation Switch
translations/views.py - Evaluation Records
translations/models.py - Evaluation Runner
eval/flores/eval_nllb_gemini.py
External Integrations
- LLM Provider
- Translation Datasets
Other components
- Translator User
Connections 22
- Translator User → Django Routes: submits text
- Django Routes → Translation Views: dispatches request
- Translation Views → Translation Orchestrator: requests translation
- Translation Orchestrator → Baseline Translation: gets baseline
- Translation Orchestrator → Similar Sentence Retrieval: retrieves examples
- Translation Orchestrator → LLM Post-Editor: requests post-edit
- Similar Sentence Retrieval → Corpus Data: reads corpus
- Translation Orchestrator → Glossary Data: reads glossary
- Translation Orchestrator → System Configuration: reads configuration
- LLM Post-Editor → LLM Provider: calls model
- Translation Views → Evaluation Switch: checks evaluation
- Evaluation Switch → Evaluation Records: reads eval rows
- Translation Views → Translation Interface: renders result
- Translator User → Admin Interface: manages data
- Admin Interface → System Configuration: writes settings
- Admin Interface → Glossary Data: writes glossary
- Admin Interface → Corpus Data: writes corpus
- Django Routes → Corpus Entry API: dispatches API
- Corpus Entry API → Corpus Data: writes entry
- Evaluation Runner → Translation Datasets: loads datasets
- Evaluation Runner → Similar Sentence Retrieval: runs retrieval
- Evaluation Runner → LLM Post-Editor: evaluates post-editing