LlamaTalks
LlamaTalks to wyrafinowana aplikacja chatbota oparta na Spring Boot, która demokratyzuje dostęp do zaawansowanej sztucznej inteligencji, wykorzystując lokalne LLM przez Ollama. Integruje LangChain4j do orkiestracji złożonych przepływów konwersacyjnych i implementuje solidny potok Retrieval-Augmented Generation (RAG). To pozwala użytkownikom na rozmowę z ich własnymi danymi, zapewniając, że odpowiedzi są ugruntowane w dostarczonym kontekście, a nie tylko w danych treningowych modelu.
Zaprojektowana dla wydajności i skalowalności, aplikacja obsługuje w pełni reaktywne przesyłanie odpowiedzi w czasie rzeczywistym przy użyciu Reactor/Flux i Server-Sent Events (SSE). Tworzy bezproblemowy efekt „pisania" podobny do komercyjnych interfejsów LLM.
Architektura techniczna
System podąża za modularną architekturą gotową do mikrousług:
- Core Backend: Zbudowany z Spring Boot 3, wykorzystując JPA/Hibernate dla trwałości danych strukturalnych (rozmowy, wiadomości).
- Orkiestracja AI: LangChain4j zarządza interakcją z LLM, zarządzaniem pamięcią i potokiem RAG.
- Pozyskiwanie danych: Apache Tika jest używany do parsowania i wyodrębniania tekstu z różnych formatów dokumentów dla magazynu wektorów.
- Magazyn wektorów: Osadzenia są generowane lokalnie i przechowywane w bazie danych wektorów, aby umożliwić możliwości wyszukiwania semantycznego.
[ User Request ] --> [ Spring Boot API ] --> [ LangChain4j Orchestrator ]
↓ ↓
[ Vector Store ] <-- [ Ollama (Local LLM) ]
Kluczowe funkcje
- RAG świadomy kontekstu: Dynamicznie pobiera istotne informacje z przesłanych dokumentów, aby dokładnie odpowiedzieć na zapytania użytkownika.
- Streaming API: Wykorzystanie zasad Spring WebFlux do nieblokującego przesyłania tokenów w czasie rzeczywistym.
- Elastyczna obsługa modeli: Łatwo przełączaj się między różnymi modelami open-source (Llama 3, Mistral, Gemma) hostowanymi za pośrednictwem Ollama.
- Utrwalona historia czatu: Pełna historia rozmowy jest przechowywana w PostgreSQL, umożliwiając zachowanie kontekstu między sesjami.