ChatHelp is a simple chat application that uses hybrid search algorithms and LLMs to answer questions about software programs based on the documentation file of the program in quesiton.
This application was developed as final project of the Bachelor's Degree in Computer Science at University of Padua during my internship period at Zucchetti S.p.A.
The complete documentation of this project (requirements analisys, code design, testing and a deep mathematical analisys of the used algorithms) consists in my thesis, which can be found in this repo (thesis.pdf), in Italian.
In order to run and use ChatHelp, make sure to follow all the steps below.
- Clone this repo with the command
git clone https://github.com/FabioMeneghini/ChatHelp.gitto get your local copy
- Install
Python 3 - install the required libraries and packages with the command
pip install -r requirements.txt
- Create a GroqCloud account here
- create an API key here
- copy your API key and paste it in the
.envfile in yor local copy of this repo
- install
PostgreSQL - install the
pgvectorextension forPostgreSQL(follow the instructions here) - create a database named
documentazione - create a table named
docswith the following fields:codice(smallint),testo(character varying, 4095),vettore(vector) andsezione(character varying, 255) - create a table named
filewith the fieldnome(character varying, 255)
Now the environment is set up correctly and the application is ready to be used.
- Open the command prompt
- go to your local repository location
- run the application with the command
streamlit run src/gui_main_window.py
- Access the advanced settings through the sidebar (the password is
admin) - upload a document with the appropriate widget (only PDF and SAM files are supported)
- Now you can use the application by asking something related to the program the document you uploaded refers to