# alphafrederic94/predictions-backend-service architecture

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

- Interactive diagram: https://gitdiagram.com/alphafrederic94/predictions-backend-service
- Repository: https://github.com/alphafrederic94/predictions-backend-service

## Overview

Medical Prediction Services is a FastAPI backend for symptom-based disease prediction, diabetes and heart-risk estimates, alternative symptom models, and a medical chatbot. The main workflow is a client request through the API entry point to a route, which returns a prediction or chatbot response; symptom results can include confidence, disease details, and precautions. The README also documents advanced symptom lookup, top predictions, similar-symptom search, and model metrics. Standard diabetes and heart routes implement rule-based scoring in the route modules. Sampled excerpts do not establish every route-to-service connection.

Main entry points: [`api/main.py`](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/main.py) (FastAPI app), [`ml/models`](https://github.com/alphafrederic94/predictions-backend-service/tree/main/ml/models) (Fine-tuned model assets), [`api/routes/symptoms.py`](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/symptoms.py) (Standard symptoms), [`api/routes/advanced_symptoms.py`](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/advanced_symptoms.py) (Advanced symptoms API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API layer"]
  node_entry["FastAPI app<br/>[main.py]"]
  node_symptoms_api["Standard symptoms<br/>[symptoms.py]"]
  node_diabetes_api["Diabetes scoring<br/>[diabetes.py]"]
  node_heart_api["Heart scoring<br/>[heart.py]"]
  node_advanced_api["Advanced symptoms API"]
  node_finetuned_symptoms_api["Fine-tuned symptoms API"]
  node_finetuned_heart_api["Fine-tuned heart API<br/>[finetuned_heart.py]"]
  node_chat_api["Chat API<br/>[chatbot.py]"]
end

subgraph group_prediction["Prediction services"]
  node_advanced_service["Advanced inference"]
  node_finetuned_symptom_service["Fine-tuned symptom inference"]
  node_finetuned_heart_service["Fine-tuned heart inference"]
end

subgraph group_chat["Chatbot"]
  node_chat_service["Medical chatbot"]
  node_docker_chat_service["Docker chatbot"]
end

subgraph group_assets["Data and models"]
  node_standard_models["Standard model assets"]
  node_finetuned_models["Fine-tuned model assets"]
  node_datasets["Condition datasets"]
end

node_client(("API client"))
node_huggingface["Hugging Face inference"]
node_docker_model["Docker-hosted model"]

node_client -->|"sends request"| node_entry
node_entry -->|"dispatches"| node_symptoms_api
node_entry -->|"dispatches"| node_diabetes_api
node_entry -->|"dispatches"| node_heart_api
node_entry -->|"dispatches"| node_advanced_api
node_entry -->|"dispatches"| node_finetuned_symptoms_api
node_entry -->|"dispatches"| node_finetuned_heart_api
node_entry -->|"dispatches"| node_chat_api
node_advanced_api -->|"invokes"| node_advanced_service
node_finetuned_symptoms_api -->|"invokes"| node_finetuned_symptom_service
node_finetuned_heart_api -->|"invokes"| node_finetuned_heart_service
node_chat_api -->|"invokes"| node_chat_service
node_chat_service -.->|"queries"| node_huggingface
node_docker_chat_service -.->|"queries"| node_docker_model
node_advanced_service -->|"loads artifacts"| node_finetuned_models
node_finetuned_symptom_service -->|"loads artifacts"| node_finetuned_models
node_finetuned_heart_service -->|"loads artifacts"| node_finetuned_models
node_symptoms_api -->|"uses models"| node_standard_models
node_client -.->|"selects option"| node_docker_chat_service

click node_entry "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/main.py"
click node_symptoms_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/symptoms.py"
click node_diabetes_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/diabetes.py"
click node_heart_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/heart.py"
click node_advanced_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/advanced_symptoms.py"
click node_finetuned_symptoms_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/finetuned_symptoms.py"
click node_finetuned_heart_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/finetuned_heart.py"
click node_chat_api "https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/chatbot.py"
click node_advanced_service "https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/symptoms/advanced_symptom_service.py"
click node_finetuned_symptom_service "https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/symptoms/finetuned_symptom_service.py"
click node_finetuned_heart_service "https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/heart/finetuned_heart_service.py"
click node_standard_models "https://github.com/alphafrederic94/predictions-backend-service/tree/main/ml/models"
click node_finetuned_models "https://github.com/alphafrederic94/predictions-backend-service/tree/main/ml/models"
click node_datasets "https://github.com/alphafrederic94/predictions-backend-service/tree/main/data/datasets"
click node_chat_service "https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/chatbot/medical_chatbot_service.py"
click node_docker_chat_service "https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/chatbot/docker_chatbot_service.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_entry,node_symptoms_api,node_diabetes_api,node_heart_api,node_advanced_api,node_finetuned_symptoms_api,node_finetuned_heart_api,node_chat_api,node_client toneBlue
class node_advanced_service,node_finetuned_symptom_service,node_finetuned_heart_service toneAmber
class node_chat_service,node_docker_chat_service toneMint
class node_standard_models,node_finetuned_models,node_datasets toneRose
class node_huggingface,node_docker_model toneIndigo
```

## Components

### API layer

- [FastAPI app](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/main.py): `api/main.py`
- [Standard symptoms](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/symptoms.py): `api/routes/symptoms.py`
- [Diabetes scoring](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/diabetes.py): `api/routes/diabetes.py`
- [Heart scoring](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/heart.py): `api/routes/heart.py`
- [Advanced symptoms API](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/advanced_symptoms.py): `api/routes/advanced_symptoms.py`
- [Fine-tuned symptoms API](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/finetuned_symptoms.py): `api/routes/finetuned_symptoms.py`
- [Fine-tuned heart API](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/finetuned_heart.py): `api/routes/finetuned_heart.py`
- [Chat API](https://github.com/alphafrederic94/predictions-backend-service/blob/main/api/routes/chatbot.py): `api/routes/chatbot.py`

### Prediction services

- [Advanced inference](https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/symptoms/advanced_symptom_service.py): `services/symptoms/advanced_symptom_service.py`
- [Fine-tuned symptom inference](https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/symptoms/finetuned_symptom_service.py): `services/symptoms/finetuned_symptom_service.py`
- [Fine-tuned heart inference](https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/heart/finetuned_heart_service.py): `services/heart/finetuned_heart_service.py`

### Chatbot

- [Medical chatbot](https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/chatbot/medical_chatbot_service.py): `services/chatbot/medical_chatbot_service.py`
- [Docker chatbot](https://github.com/alphafrederic94/predictions-backend-service/blob/main/services/chatbot/docker_chatbot_service.py): `services/chatbot/docker_chatbot_service.py`

### Data and models

- [Standard model assets](https://github.com/alphafrederic94/predictions-backend-service/tree/main/ml/models): `ml/models`
- [Fine-tuned model assets](https://github.com/alphafrederic94/predictions-backend-service/tree/main/ml/models): `ml/models`
- [Condition datasets](https://github.com/alphafrederic94/predictions-backend-service/tree/main/data/datasets): `data/datasets`

### Other components

- **API client**
- **Hugging Face inference**
- **Docker-hosted model**

## Connections

- API client → FastAPI app: sends request
- FastAPI app → Standard symptoms: dispatches
- FastAPI app → Diabetes scoring: dispatches
- FastAPI app → Heart scoring: dispatches
- FastAPI app → Advanced symptoms API: dispatches
- FastAPI app → Fine-tuned symptoms API: dispatches
- FastAPI app → Fine-tuned heart API: dispatches
- FastAPI app → Chat API: dispatches
- Advanced symptoms API → Advanced inference: invokes
- Fine-tuned symptoms API → Fine-tuned symptom inference: invokes
- Fine-tuned heart API → Fine-tuned heart inference: invokes
- Chat API → Medical chatbot: invokes
- Medical chatbot → Hugging Face inference: queries
- Docker chatbot → Docker-hosted model: queries
- Advanced inference → Fine-tuned model assets: loads artifacts
- Fine-tuned symptom inference → Fine-tuned model assets: loads artifacts
- Fine-tuned heart inference → Fine-tuned model assets: loads artifacts
- Standard symptoms → Standard model assets: uses models
- API client → Docker chatbot: selects option
