| .. | ||
| Backend | ||
| elasticsearch | ||
| frontend | ||
| docker-compose.yml | ||
| prepare.sh | ||
| README.md | ||
| remove-app.sh | ||
| start-app.sh | ||
| stop-app.sh | ||
Health AI Assistant
Opis aplikácie
Health AI Assistant je webová aplikácia, ktorá umožňuje používateľom registráciu, prihlásenie, interaktívny chat a prezeranie histórie konverzácií. Aplikácia využíva generatívny model (pomocou Mistral) na spracovanie dotazov a poskytovanie odpovedí. Používateľom poskytuje možnosť overenia pomocou Google OAuth a uchováva dáta v databáze PostgreSQL.
Použité cloudové a kontajnerové technológie
- Verejný cloud:
Aplikácia je nasadená na AWS EC2, pričom bol použitý Elastic IP, aby bol verejný IP adresa statická. - Docker:
Nasadenie aplikácie je plne založené na Docker kontajneroch. Použité sú kontajnery pre:- Elasticsearch – pre fulltext vyhľadávanie a ukladanie indexov.
- PostgreSQL – ako databáza s perzistentným zväzkom (volume
pgdata). - Backend – Flask aplikácia, ktorá spracúva API požiadavky.
- Frontend – klientská časť, ktorá komunikuje s backendom.
- Nginx:
Ako reverzný proxy server je nastavený Nginx pre zabezpečený prístup cez HTTPS. Certifikát je získaný pomocou Certbot (Let's Encrypt). - Skripty:
Nasadenie a zrušenie aplikácie sa automatizuje pomocou skriptovprepare-app.sh,stop-app.sh,start-app.sharemove-app.sh.
Obsah odovzdávaných súborov a konfigurácia
V repozitári máte nasledovné súbory a adresáre:
- docker-compose.yml – Definuje štyri služby (elasticsearch, postgres, backend, frontend) a sieť
app-network.- Pre každú službu je definovaný aj parameter
restart: always, ktorý zabezpečuje automatický reštart v prípade chyby. - Pre postgres je definovaný persistent volume
pgdata.
- Pre každú službu je definovaný aj parameter
- Dockerfile pre jednotlivé komponenty:
./elasticsearch/Dockerfile– Konfigurácia Elasticsearch, vrátane nastavení environmentálnych premenných../Backend/Dockerfile– Konfigurácia backendovej Flask aplikácie../frontend/Dockerfile– Konfigurácia frontendovej aplikácie.
- Skripty:
- prepare-app.sh – Skript, ktorý zostaví (build) a spustí celú aplikáciu pomocou docker-compose.
- stop-app.sh – Skript, ktorý zastaví všetky služby.
- start-app.sh – Skript, ktorý spustí služby, ktoré boli len zastavené.
- remove-app.sh – Skript, ktorý úplne odstráni všetky kontajnery, siete a volume, čím zabezpečí, že aplikáciu je možné rýchlo zrušiť.
- Nginx konfigurácia
Súbor/etc/nginx/sites-available/healthai-tuke.com(nasadený na AWS) zabezpečuje:- Presmerovanie HTTP na HTTPS.
- Reverzný proxy, ktorý smeruje požiadavky:
/api/na backend (Flask, port 5000).- Ostatné požiadavky na frontend (port 5173).
Ako pozrieť a použiť aplikáciu
-
Otvorte webový prehliadač a zadajte adresu:
https://healthai-tuke.com -
Používateľské rozhranie vám umožní:
- Registráciu a prihlásenie.
- Spustenie chatu so systémom.
- Prezeranie histórie konverzácií.
-
Pre prístup k API môžete testovať požiadavky pomocou nástrojov ako Postman, curl alebo priamo cez Frontend, ktorý komunikuje s backendom.
Podmienky pre spustenie skriptov
-
prepare-app.sh:
Tento skript zostaví a spustí celú aplikáciu pomocou príkazudocker-compose up --build -d. Skript by sa mal spúšťať z koreňového adresára repozitára, kde sa nachádza súbordocker-compose.yml. -
stop-app.sh:
Skript zastaví všetky bežiace kontajnery pomocou príkazudocker-compose stop. -
start-app.sh:
Tento skript spustí kontajnery, ktoré boli len zastavené, pomocou príkazudocker-compose start. -
remove-app.sh:
Skript úplne odstráni vytvorené kontajnery, siete a persistent volume príkazomdocker-compose down --volumes --remove-orphans.
Zoznam externých zdrojov
- Externé zdroje a dokumentácia: