ROBIN (ROBotska INteligencija) je chatbot sustav dizajniran za pružanje podrške studentima i osoblju Fakulteta organizacije i informatike (FOI). Ovaj projekt koristi velike jezične modele (LLM) i tehnike strojnog učenja za obradu prirodnog jezika (NLP), s ciljem pružanja točnih i relevantnih odgovora o fakultetskim programima, pravilnicima, kolegijima i resursima.
Ovaj projekt ima za cilj smanjiti opterećenje studentske referade pružanjem brzih odgovora na česta pitanja, poput informacija o kolegijima, pravilnicima i akademskom životu. Sustav koristi Retrieval-Augmented Generation (RAG) kako bi omogućio točne i kontekstualno relevantne odgovore.
Projekt je organiziran u nekoliko modula:
- chat.py: Glavni modul za upravljanje chatbotom i korisničkim interakcijama.
- api.py: Flask API za omogućavanje interakcije putem web sučelja i vanjskih aplikacija.
- evaluation-metrics.py: Modul za evaluaciju performansi modela na temelju točnosti, relevantnosti i koherentnosti odgovora.
- model_utils.py: Pomoćni alati za upravljanje i inicijalizaciju modela.
- config.py: Datoteka s postavkama projekta, uključujući API ključeve i konfiguracije modela.
- document_processor.py: Skripta za obradu i indeksiranje fakultetske dokumentacije.
- demo.html: Web sučelje za interakciju s chatbotom putem preglednika.
Da biste pokrenuli ovaj projekt, potrebno je instalirati sljedeće Python pakete:
Flask
llama-index
openai
numpy
scikit-learn
nltk
Klonirajte repozitorij te instalirajte potrebne biblioteke:
bash git clone https://github.com/fsuman20/Robin-zav.git
Za pokretanje chatbota u interaktivnom načinu rada:
python chat.py
Pokretanje Flask API-ja za chatbot:
python api.py
API će biti dostupan na http://127.0.0.1:5000
, a možete slati POST zahtjeve na /query
s JSON tijelom koje sadrži query
.
Za pripremu dokumentacije koju chatbot koristi, pokrenite:
python document_processor.py
Ovo će stvoriti indeks za pretraživanje dokumenata.
Za procjenu performansi modela, koristite sljedeću naredbu:
python evaluation-metrics.py
Izvještaj će prikazati rezultate evaluacije, uključujući metrike poput BLEU score-a, relevantnosti i koherentnosti odgovora.
Za interakciju putem web preglednika, otvorite demo.html
. Ovo sučelje koristi Flask API za omogućavanje korisnicima slanje upita putem preglednika.
ROBIN je lako prilagodljiv. Konfiguracije modela, uključujući SYSTEM_PROMPT, mogu se mijenjati unutar config.py
. Dodatni dokumenti se mogu dodati u direktorij storage
, nakon čega je potrebno izbrisati postojeće te ponovno pokrenuti document_processor.py
kako bi se ažurirao indeks.
Projekt je licenciran pod MIT licencom.