AlIna - Chat AI
🤖 AlIna - Chat AI
Natywna aplikacja czatu AI, która strumieniuje odpowiedzi modeli, przechowuje rozmowy lokalnie i zapewnia płynny interfejs JavaFX zintegrowany z usługami Spring Boot.
✨ Funkcjonalność
- Streamingowy czat z kontekstem – rozmowy są aktualizowane w czasie rzeczywistym, zapisują się w
data/conversations/, a historia może być szybko duplikowana lub resetowana dzięki wewnętrznemu silnikowi wątku czatu. - Tryb ciemny i jasny wraz ze stylami Atlantafx – przełączanie motywów zachowuje czytelność UI i pozwala na dodatkowe motywy CSS trzymane w
data/css/.


- Komendy i automatyzacje – wbudowana lista komend (edytowalna w
data/commands/) z podpowiedziami po wpisaniu „/” pozwala szybko uruchamiać akcje, narzędzia MCP i makra rozmowy.

- Przypinanie okna – pin w nagłówku pozwala utrzymać aplikację zawsze na wierzchu podczas pracy w innych programach; jednym kliknięciem można przełączać tryb „stay-on-top”.
- Wielojęzyczny interfejs – zasoby
Bundle_en.propertiesorazBundle_pl.propertieswczytywane przezLanguageManagerumożliwiają natychmiastowe przełączanie języka UI. - Konfigurowalny asystent – ustawienia (np. limit wiadomości przekazywanych do modelu, personalizacja promptów, klucze API w zmiennych środowiskowych) są dostępne z poziomu aplikacji i zapisywane lokalnie.
🧱 Architektura
- JavaFX UI (
com.patres.alina.uidesktop) – komponenty FXML (np.fxml/header-bar-button-box.fxml) odpowiadają za rozmieszczanie widoków, przełączanie motywów i interakcje użytkownika. - Spring Boot backend (
com.patres.alina.server) – usługi czatu, zapisywanie wątków i obsługa komend działają w tym samym procesie, dzięki czemu nie potrzeba osobnego serwera. - Warstwa wspólna (
com.patres.alina.common) – modele rozmów, zdarzenia oraz narzędzia współdzielone przez UI i backend zapewniają spójny kontrakt. - Integracje AI – Spring AI (OpenAI) oraz klient MCP dostarczają połączenia z dużymi modelami językowymi i zewnętrznymi narzędziami.
- Dane i konfiguracja – katalogi
data/(rozmowy, komendy, style),config/(lokalne YAML-e) ilogs/izolują dane użytkownika od kodu, co ułatwia przenoszenie instancji między komputerami.