.. | ||
Backend | ||
elasticsearch | ||
frontend | ||
connect.sh | ||
deploy-instance.sh | ||
docker-compose.yml | ||
prepare.sh | ||
README.md | ||
remove-app.sh | ||
setup-docker.sh | ||
start-app.sh | ||
start-instance.sh | ||
stop-app.sh | ||
stop-instance.sh | ||
terminate.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.sh
aremove-app.sh
.
Obsah odovzdávaných súborov a konfigurácia
V repozitári su 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ôžu používatelia 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: