# abhijitmanepatil/indiannlp-transliteration architecture

> Architecture diagram of the GitHub repository abhijitmanepatil/indiannlp-transliteration, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abhijitmanepatil/indiannlp-transliteration
- Repository: https://github.com/abhijitmanepatil/indiannlp-transliteration

## Overview

IndianNLP-Transliteration is a neural transliteration project with a deployable Python/API interface and research workflows for training and evaluating language models. The principal user flow is text and language input through the HTTP API into the configured transliteration engine, which returns candidate spellings; the API also accepts user-choice and annotation feedback. The README additionally highlights model training and language datasets. Source excerpts are partial, so links to unsampled model-serving and training subsystems are limited to relationships documented by the README or shown in sampled code.

Main entry points: [`apps/api_expose.py`](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/api_expose.py) (HTTP API), [`tasks`](https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/tasks) (Training runners), [`tasks/infer_engine.py`](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tasks/infer_engine.py) (Inference engine), [`tools/wiki/retrieve_wikidata_xlits.py`](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tools/wiki/retrieve_wikidata_xlits.py) (Wikidata pairs)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_serving["Transliteration serving"]
  node_api["HTTP API<br/>[api_expose.py]"]
  node_server["Library server<br/>[xlit_server.py]"]
  node_engine["Transliteration engine<br/>[xlit_src.py]"]
  node_lineup["Language lineup"]
  node_feedback["Feedback logs<br/>[api_expose.py]"]
  node_cloud[("Cloud feedback store")]
end

subgraph group_research["Model research"]
  node_training["Training runners"]
  node_inference["Inference engine<br/>[infer_engine.py]"]
  node_models["Neural architectures"]
  node_fusion["Language model fusion<br/>[lm_fused_rnn.py]"]
  node_utilities["Training utilities"]
end

subgraph group_data["Language data"]
  node_datasets["Transliteration datasets"]
  node_json_tools["Dataset conversion<br/>[json_handler.py]"]
  node_wiki["Wikidata pairs"]
end

node_user(("API user"))
node_external_wikidata(("Wikidata service"))

node_user -->|"sends text"| node_api
node_api -->|"gets app"| node_server
node_server -->|"serves transliteration"| node_engine
node_engine -->|"loads configuration"| node_lineup
node_api -->|"writes feedback"| node_feedback
node_api -.->|"optionally stores"| node_cloud
node_training -->|"uses architectures"| node_models
node_training -->|"uses fusion model"| node_fusion
node_training -->|"uses utilities"| node_utilities
node_inference -->|"runs models"| node_models
node_inference -->|"uses utilities"| node_utilities
node_json_tools -->|"converts data"| node_datasets
node_wiki -->|"queries"| node_external_wikidata
node_wiki -->|"writes pairs"| node_datasets

click node_api "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/api_expose.py"
click node_server "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/ai4bharat/transliteration/xlit_server.py"
click node_engine "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/ai4bharat/transliteration/xlit_src.py"
click node_lineup "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/ai4bharat/transliteration/models/default_lineup.json"
click node_feedback "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/api_expose.py"
click node_training "https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/tasks"
click node_inference "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tasks/infer_engine.py"
click node_models "https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/algorithms"
click node_fusion "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/algorithms/lm_fused_rnn.py"
click node_utilities "https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/utilities"
click node_datasets "https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/data"
click node_json_tools "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tools/json_handler.py"
click node_wiki "https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tools/wiki/retrieve_wikidata_xlits.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_api,node_server,node_engine,node_lineup,node_feedback,node_cloud,node_user toneBlue
class node_training,node_inference,node_models,node_fusion,node_utilities toneAmber
class node_datasets,node_json_tools,node_wiki toneMint
class node_external_wikidata toneIndigo
```

## Components

### Transliteration serving

- [HTTP API](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/api_expose.py): `apps/api_expose.py`
- [Library server](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/ai4bharat/transliteration/xlit_server.py): `apps/ai4bharat/transliteration/xlit_server.py`
- [Transliteration engine](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/ai4bharat/transliteration/xlit_src.py): `apps/ai4bharat/transliteration/xlit_src.py`
- [Language lineup](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/ai4bharat/transliteration/models/default_lineup.json): `apps/ai4bharat/transliteration/models/default_lineup.json`
- [Feedback logs](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/apps/api_expose.py): `apps/api_expose.py`
- **Cloud feedback store**

### Model research

- [Training runners](https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/tasks): `tasks`
- [Inference engine](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tasks/infer_engine.py): `tasks/infer_engine.py`
- [Neural architectures](https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/algorithms): `algorithms`
- [Language model fusion](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/algorithms/lm_fused_rnn.py): `algorithms/lm_fused_rnn.py`
- [Training utilities](https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/utilities): `utilities`

### Language data

- [Transliteration datasets](https://github.com/abhijitmanepatil/indiannlp-transliteration/tree/master/data): `data`
- [Dataset conversion](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tools/json_handler.py): `tools/json_handler.py`
- [Wikidata pairs](https://github.com/abhijitmanepatil/indiannlp-transliteration/blob/master/tools/wiki/retrieve_wikidata_xlits.py): `tools/wiki/retrieve_wikidata_xlits.py`

### Other components

- **API user**
- **Wikidata service**

## Connections

- API user → HTTP API: sends text
- HTTP API → Library server: gets app
- Library server → Transliteration engine: serves transliteration
- Transliteration engine → Language lineup: loads configuration
- HTTP API → Feedback logs: writes feedback
- HTTP API → Cloud feedback store: optionally stores
- Training runners → Neural architectures: uses architectures
- Training runners → Language model fusion: uses fusion model
- Training runners → Training utilities: uses utilities
- Inference engine → Neural architectures: runs models
- Inference engine → Training utilities: uses utilities
- Dataset conversion → Transliteration datasets: converts data
- Wikidata pairs → Wikidata service: queries
- Wikidata pairs → Transliteration datasets: writes pairs
