Обновить README.md

This commit is contained in:
Oleh Poiasnik 2025-05-21 20:20:03 +00:00
parent 54b9229a40
commit ccccf51cd3

105
README.md
View File

@ -1,16 +1,105 @@
# DrugConv: Conversational Drug Recommendation System
# **Health AI**
**DrugConv** is a modular, Python-based backend + React frontend application that helps users find relevant medication recommendations, dosages and explanations via a friendly conversational interface powered by Mistral LLM and Elasticsearch.
*Interaktívny chat-bot na odporúčanie liekov*
---
## Features
## Čo projekt robí?
- **Conversational QA** Ask natural-language questions about medications, indications, dosing, and get follow-ups.
- **Mistral LLM integration** Dual-model (“small” & “large”) pipelines for generation, validation and evaluation.
- **Vector & text search** Hybrid retrieval from Elasticsearch for up-to-date drug documentation.
- **Memory & context** Tracks patient age, anamnesis, prescription type for multi-turn dialogue.
- **React SPA frontend** Built with **React**, styled with **Tailwind CSS** and **Material UI** for a clean, responsive UI.
**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.