|
||
---|---|---|
.idea | ||
backend | ||
documents | ||
front_end | ||
temp_file | ||
README.md |
Chat locally with any PDF
Ask questions, get answer with usefull references
Work well with math pdfs (convert them to LaTex, a math syntax comprehensible by computer)
Work flow chart
Demos
chatbot test with some US Laws pdf
https://github.com/Crizomb/ai_pdf/assets/62544756/b399d5bc-df2f-4be0-b6fe-0c272f915c72
chatbot test with math pdf (interpereted as latex by the LLM)
https://github.com/Crizomb/ai_pdf/assets/62544756/eebf5520-bf78-4b82-8699-782e6d7147c4
full length process of converting pdf to latex, then using the chat bot
https://github.com/Crizomb/ai_pdf/assets/62544756/a10238f1-2e26-4a97-94d0-d32ec52ee195
How to use
Clone the project to some location that we will call 'x' install requierements listed in the requirements.txt file (open terminal, go to the 'x' location, run pip install -r requirements.txt) ([OPTIONAL] for better performance during embedding, install pytorch with cuda, go to https://pytorch.org/get-started/locally/)
Put your pdfs in x/ai_pdf/documents/pdfs Run x/ai_pdf/main.py Select or not math mode Choose the pdf you want to work on Wait a little bit for the pdf to get vectorized (check task manager to see if your gpu is going vrum)
Launch LM Studio, Go to the local Server tab, choose the model you want to run, choose 1234 as server port, start server (If you want to use open-ai or any other cloud LLM services, change line 10 of x/ai_pdf/back_end/inference.py with your api_key and your provider url)
Ask questions to the chatbot Get answer Go eat cookies
TODO
- Option tabs
- add more different embedding models
- add menu to choose how many relevant chunk of information the vector search should get from the vector db
- menu to configure api url and api key
Maybe in the futur
- Add special support for code PDF (with specialized langchain code spliter)
- Add Multimodality