prosty-rag / README.md
jglowa's picture
Update README.md
3b2fae3 verified
|
raw
history blame
3.36 kB
metadata
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:

  1. Umieszczamy pliki bazy wiedzy PDF, TXT i MD (Markdown) w folderze baza,
  2. Pliki są indeksowane (PDF konwertowane na TXT za pomocą pdftotext), dzielone na fragmenty i osadzane w wektorowej bazie danych sqlite-vec,
  3. Dla danego zapytania pobierane są najbardziej trafne fragmenty z bazy danych, które uzupełniają kontekst pytania,
  4. 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.

Podgląd

Prosty RAG