# tauhid-topu-007/verba-translator architecture

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

- Interactive diagram: https://gitdiagram.com/tauhid-topu-007/verba-translator
- Repository: https://github.com/tauhid-topu-007/verba-translator
- Video tour (about a minute): https://gitdiagram.com/tauhid-topu-007/verba-translator/video

## Overview

Verba Translator lets a user enter text, choose a target from 25 languages, and request a translation. The Streamlit client validates nonempty input, posts it to the FastAPI invoke endpoint, and displays the returned translation using session state. The backend validates the request, runs a LangChain prompt/model/parser chain, and returns text generated through Groq. A separate health endpoint is available to API callers. The graph reflects the README and sampled source; no persistent translation history or other future features are shown.

Main entry points: [`serve.py`](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py) (FastAPI Routes), [`client.py`](https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py) (Request Client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Translation UI"]
  node_ui["Streamlit Interface<br/>[client.py]"]
  node_client_request["Request Client<br/>[client.py]"]
  node_session["Translation Session<br/>[client.py]"]
end

subgraph group_backend["Translation Backend"]
  node_api["FastAPI Routes<br/>[serve.py]"]
  node_request_model["Request Validation<br/>[serve.py]"]
  node_chain["Translation Chain<br/>[serve.py]"]
  node_prompt["Language Prompt<br/>[serve.py]"]
  node_model["ChatGroq Model<br/>[serve.py]"]
  node_parser["Text Parser<br/>[serve.py]"]
end

subgraph group_provider["Model Provider"]
  node_groq["Groq API"]
end

node_user(("User"))
node_api_caller(("API Caller"))

node_user -->|"enters text"| node_ui
node_ui -->|"submits request"| node_client_request
node_client_request -->|"POST invoke"| node_api
node_api -->|"validates with"| node_request_model
node_api -->|"invokes"| node_chain
node_chain -->|"formats input"| node_prompt
node_prompt -->|"provides messages"| node_model
node_model -->|"requests completion"| node_groq
node_model -->|"returns response"| node_parser
node_parser -->|"returns text"| node_chain
node_chain -->|"returns translation"| node_api
node_api -->|"returns output"| node_client_request
node_client_request -->|"stores translation"| node_session
node_session -->|"renders result"| node_ui
node_api_caller -->|"GET health"| node_api

click node_ui "https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py"
click node_client_request "https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py"
click node_session "https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py"
click node_api "https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py"
click node_request_model "https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py"
click node_chain "https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py"
click node_prompt "https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py"
click node_model "https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py"
click node_parser "https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.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_ui,node_client_request,node_session,node_user toneBlue
class node_api,node_request_model,node_chain,node_prompt,node_model,node_parser toneAmber
class node_groq,node_api_caller toneMint
```

## Components

### Translation UI

- [Streamlit Interface](https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py): `client.py`
- [Request Client](https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py): `client.py`
- [Translation Session](https://github.com/tauhid-topu-007/verba-translator/blob/main/client.py): `client.py`

### Translation Backend

- [FastAPI Routes](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py): `serve.py`
- [Request Validation](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py): `serve.py`
- [Translation Chain](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py): `serve.py`
- [Language Prompt](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py): `serve.py`
- [ChatGroq Model](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py): `serve.py`
- [Text Parser](https://github.com/tauhid-topu-007/verba-translator/blob/main/serve.py): `serve.py`

### Model Provider

- **Groq API**

### Other components

- **User**
- **API Caller**

## Connections

- User → Streamlit Interface: enters text
- Streamlit Interface → Request Client: submits request
- Request Client → FastAPI Routes: POST invoke
- FastAPI Routes → Request Validation: validates with
- FastAPI Routes → Translation Chain: invokes
- Translation Chain → Language Prompt: formats input
- Language Prompt → ChatGroq Model: provides messages
- ChatGroq Model → Groq API: requests completion
- ChatGroq Model → Text Parser: returns response
- Text Parser → Translation Chain: returns text
- Translation Chain → FastAPI Routes: returns translation
- FastAPI Routes → Request Client: returns output
- Request Client → Translation Session: stores translation
- Translation Session → Streamlit Interface: renders result
- API Caller → FastAPI Routes: GET health
