Prosty RAG
Prosty RAG to otwartoźródłowy asystent AI oparty na polskim modelu językowym Bielik-4.5B-v3.0-Instruct, który odpowiada na pytania z prywatnej bazy wiedzy użytkownika, wykorzystując technikę RAG (Retrieval-Augmented Generation). Asystent działa w pełni lokalnie, jako dwa pliki wykonywalne na Windows/Linux/MacOS, wykorzystujące technologię llamafile i embedfile. Aplikacja jest przenośna, nie wymaga środowiska Python z mnóstwem pakietów (np. LangChain, LangGraph, LlamaIndex i podobne), automatycznie wykrywa zainstalowane biblioteki GPU (CUDA/ROCm), a w przypadku ich braku wykorzystuje CPU.
Zasada działania:
- Umieszczamy pliki bazy wiedzy PDF, TXT, MD (Markdown) lub CSV w folderze
baza
, - Pliki są indeksowane (PDF konwertowane na TXT za pomocą pdftotext), dzielone na fragmenty (po 200 słów, 20 słów nakłada się) i osadzane w wektorowej bazie danych sqlite-vec,
- Dla danego zapytania pobierane są najbardziej trafne fragmenty z bazy danych, które uzupełniają kontekst pytania,
- Model językowy generuje odpowiedź na pytanie wykorzystując wzbogacone dane z bazy wiedzy.
Uruchamianie
Wystarczy pobrać plik prosty-rag.cmd (klikając prawym przyciskiem -> zapisz link jako...) i uruchomić go (klikając dwukrotnie myszą lub wpisując w wierszu poleceń ./prosty-rag.cmd
). Skrypt sam pobierze pliki: prosty-rag.llamafile
i bge-m3.embedfile
(jeśli nie zostały wcześniej pobrane), uruchomi indeksator (jeśli nie został jeszcze uruchomiony), załaduje serwer z modelem osadzania (embedfile), serwer z modelem językowym (llamafile) i otworzy stronę http://localhost:8080 w przeglądarce internetowej. Asystent działa off-line, a wszelkie dane pozostają lokalnie na urządzeniu.
W folderze baza
należy umieścić wszystkie pliki PDF, TXT, MD i CSV do stworzenia bazy wiedzy. Następnie należy uruchomić skrypt indeksator.cmd
, który skonwertuje pliki PDF do TXT i zaindeksuje pliki tesktowe w wektorowej bazie danych SQLite prosty-rag.db
, korzystając z modelu osadzania bge-m3.embedfile
. Indeksator należy uruchomić po każdej zmianie plików w folderze baza
.
Aby zadawać pytania dotyczące zaindeksowanej bazy wiedzy, należy uruchomić skrypt prosty-rag.cmd
i wpisać pytanie w aplikacji czatu na http://localhost:8080. Najbardziej trafne fragmenty zostaną wyszukane w bazie danych prosty-rag.db
, a następnie zostanie załadowany model językowy Bielik 4.5B v3.0, który wygeneruje odpowiedź w oparciu o kontekst z bazy wiedzy.
Budowanie
Aby zbudować własną wersję asystenta AI, należy ściągnąć skrypt build.cmd
i uruchomić go pod Windows/Linux/MacOS. Po udanym zbudowaniu powinien pojawić się nowy plik prosty-rag.llamafile
.
Podgląd
Lista zmian
- 0.1 - pierwsza wersja wieloplatformowa
- 0.2 - dodanie serwera embedfile z modelem osadzania BGE-M3
- 0.3 - dodanie obsługi CSV, logowania do pliku
prosty-rag.log
Licencja
© 2025 Jerzy Głowacki na licencji Apache 2.0.
- Downloads last month
- 35
Model tree for jglowa/prosty-rag
Base model
speakleash/Bielik-4.5B-v3