From ccccf51cd332a5e4ab5c5f85338b275581a9069e Mon Sep 17 00:00:00 2001 From: Oleh Poiasnik Date: Wed, 21 May 2025 20:20:03 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 105 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 97 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b64b372..ba01680 100644 --- a/README.md +++ b/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. -- **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//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.