Обновить README.md
This commit is contained in:
parent
54b9229a40
commit
ccccf51cd3
105
README.md
105
README.md
@ -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.
|
**Health AI** je full-stack aplikácia, ktorá
|
||||||
- **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.
|
1. **Odpovedá na otázky o symptómoch a odporúča lieky dostupné na Slovensku.**
|
||||||
- **Memory & context** – Tracks patient age, anamnesis, prescription type for multi-turn dialogue.
|
2. **Zohľadňuje osobné údaje pacienta** (vek, chronické ochorenia, alergie, voľnopredajný / na predpis).
|
||||||
- **React SPA frontend** – Built with **React**, styled with **Tailwind CSS** and **Material UI** for a clean, responsive UI.
|
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.
|
||||||
|
Loading…
Reference in New Issue
Block a user