106 lines
3.9 KiB
Markdown
106 lines
3.9 KiB
Markdown
# **Health AI**
|
||
|
||
*Interaktívny chat-bot na odporúčanie liekov*
|
||
|
||
---
|
||
|
||
## Čo projekt robí?
|
||
|
||
**Health AI** je full-stack aplikácia, ktorá
|
||
|
||
1. **Odpovedá na otázky o symptómoch a odporúča lieky dostupné na Slovensku.**
|
||
2. **Zohľadňuje osobné údaje pacienta** (vek, chronické ochorenia, alergie, voľnopredajný / na predpis).
|
||
3. **Kombinuje znalosti veľkého jazykového modelu Mistral** so súborom príbalových letákov uložených v Elasticsearch (vektorové aj full-textové vyhľadávanie).
|
||
4. **Automaticky vyhodnocuje kvalitu odpovede** (0 – 10) a výsledky loguje pre ďalšie ladenie.
|
||
5. **Ukladá históriu konverzácie** do PostgreSQL a zobrazuje ju na fronte.
|
||
6. Podporuje **Google OAuth 2.0** aj lokálnu registráciu.
|
||
|
||
---
|
||
|
||
## 🏁 Rýchly štart (Docker compose)
|
||
|
||
```bash
|
||
git clone https://github.com/<your-org>/health-ai.git
|
||
cd health-ai
|
||
|
||
|
||
# – spusti celý stack
|
||
docker compose up --build
|
||
```
|
||
|
||
| Služba | URL |
|
||
| ------------- | ---------------------------------------------- |
|
||
| Frontend | [http://localhost:5173](http://localhost:5173) |
|
||
| Backend API | [http://localhost:5000](http://localhost:5000) |
|
||
| Elasticsearch | [http://localhost:9200](http://localhost:9200) |
|
||
| PostgreSQL | `localhost:5432` |
|
||
|
||
> Pri prvom štarte sa automaticky vytvoria tabuľky `users`, `chat_history` a index `drug_docs`.
|
||
|
||
---
|
||
|
||
|
||
## Štruktúra repozitára
|
||
|
||
```
|
||
.
|
||
├─ docker-compose.yml
|
||
├─ .env
|
||
├─ backend/
|
||
│ ├─ Dockerfile
|
||
│ ├─ server.py # Flask API
|
||
│ ├─ model.py # AI logika (LangChain + Mistral + Elasticsearch)
|
||
│ ├─ requirements.txt
|
||
│ └─ config.json
|
||
└─ frontend/
|
||
├─ Dockerfile
|
||
├─ src/… # React + Vite + TS
|
||
└─ package.json
|
||
```
|
||
|
||
---
|
||
|
||
## Dôležité API endpointy
|
||
|
||
| Metóda | URL | Stručný popis |
|
||
| ------------------------------------ | ------------------------------------------------- | ------------- |
|
||
| `POST /api/chat` | `{query, email, chatId?}` → AI odpoveď + `chatId` | |
|
||
| `GET /api/chat_history?email=x` | zoznam konverzácií používateľa | |
|
||
| `GET /api/chat_history_detail?id=x` | detail jednej konverzácie | |
|
||
| `POST /api/save_user_data` | uloženie doplnkových údajov pacienta | |
|
||
| `POST /api/verify` | Google OAuth verifikácia tokenu | |
|
||
| `POST /api/register` / `/login` | lokálny účet | |
|
||
|
||
---
|
||
|
||
## Architektúra (high-level)
|
||
|
||
```
|
||
┌───────────── Vite/React ─────────────┐
|
||
│ používateľský chat → /api/chat │
|
||
└──────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌───────────── Flask API ──────────────┐
|
||
│ validácia tokenu · REST · routing │
|
||
│ │ │
|
||
│ ▼ ▼
|
||
│ PostgreSQL Elasticsearch
|
||
│ (users, chat) (vektor + text index)
|
||
│ ▲ │
|
||
└─────────────────┴──→ Mistral LLM ←──┘
|
||
```
|
||
|
||
---
|
||
|
||
## ✨ Hlavné knižnice
|
||
|
||
* **LangChain**, **HuggingFace Embeddings**
|
||
* **Mistral-small / mistral-large** (Chat Completion API)
|
||
* **Elasticsearch** ako vektorový úložný priestor
|
||
* **React 18 + TypeScript + Vite** na fronte
|
||
|
||
|
||
|
||
> **Upozornenie**: Aplikácia má iba demonštračný charakter. Neposkytuje oficiálne lekárske odporúčania – pred použitím akéhokoľvek lieku sa poraďte s lekárom.
|