zkt25/sk1
2025-04-13 00:40:37 +02:00
..
Backend add deploy scripts 2025-04-13 00:40:37 +02:00
elasticsearch init 2025-04-10 19:09:56 +00:00
frontend init 2025-04-10 19:09:56 +00:00
connect.sh add deploy scripts 2025-04-13 00:40:37 +02:00
deploy-instance.sh add deploy scripts 2025-04-13 00:40:37 +02:00
docker-compose.yml upd compose 2025-04-11 11:10:15 +00:00
prepare.sh add sh scripts 2025-04-11 10:55:28 +00:00
README.md upd readme 2025-04-11 11:35:39 +00:00
remove-app.sh add sh scripts 2025-04-11 10:55:28 +00:00
setup-docker.sh add deploy scripts 2025-04-13 00:40:37 +02:00
start-app.sh add sh scripts 2025-04-11 10:55:28 +00:00
start-instance.sh add deploy scripts 2025-04-13 00:40:37 +02:00
stop-app.sh add sh scripts 2025-04-11 10:55:28 +00:00
stop-instance.sh add deploy scripts 2025-04-13 00:40:37 +02:00
terminate.sh add deploy scripts 2025-04-13 00:40:37 +02:00

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 skriptov prepare-app.sh, stop-app.sh, start-app.sh a remove-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.
  • 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

  1. Otvorte webový prehliadač a zadajte adresu:
    https://healthai-tuke.com

  2. Používateľské rozhranie vám umožní:

    • Registráciu a prihlásenie.
    • Spustenie chatu so systémom.
    • Prezeranie histórie konverzácií.
  3. 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íkazu docker-compose up --build -d. Skript by sa mal spúšťať z koreňového adresára repozitára, kde sa nachádza súbor docker-compose.yml.

  • stop-app.sh:
    Skript zastaví všetky bežiace kontajnery pomocou príkazu docker-compose stop.

  • start-app.sh:
    Tento skript spustí kontajnery, ktoré boli len zastavené, pomocou príkazu docker-compose start.

  • remove-app.sh:
    Skript úplne odstráni vytvorené kontajnery, siete a persistent volume príkazom docker-compose down --volumes --remove-orphans.

Zoznam externých zdrojov