license: apache-2.0
language:
- pl
base_model:
- speakleash/Bielik-4.5B-v3.0-Instruct
pipeline_tag: text-generation
tags:
- rag
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 i MD (Markdown) w folderze
baza, - Pliki są indeksowane (PDF konwertowane na TXT za pomocą pdftotext), dzielone na fragmenty 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), 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 i MD 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. Najbardziej trafne fragmenty zostaną wyszukane w bazie danych prosty-rag.db, a następnie zostanie załadowany model językowy prosty-rag.llamafile i uruchomiony czat z wypełnionym pytaniem użytkownika w przeglądarce internetowej. Wystarczy poczekać na odpowiedź.
Budowanie
Aby zbudować własną wersję asystenta AI, należy ściągnąć pliki: build.cmd, .args oraz www/chatbot.js, ewentualnie zmienić model GGUF w pliku build.cmd. Na koniec uruchomić skrypt build.cmd. Po udanym zbudowaniu powinien pojawić się nowy plik prosty-rag.llamafile.
