Wróć do wszystkich projektów

LlamaTalks

Języki: Java

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.

Użyte technologie

JavaSpring BootLangChain4jOllamaRAGSSEPostgreSQL