DocuBot is a powerful and versatile AI Chatbot that uses advanced natural language processing techniques to create custom Chatbots for document files. Whether you're looking to search through extensive research papers or find specific information in PDFs, DocuBot has you covered. This project combines the power of LlamaIndex and OpenAI to provide seamless document indexing and intelligent search capabilities.
- Document Indexing: DocuBot processes both plain text (txt) and PDF files, creating vector embeddings for efficient and accurate answers.
- Natural Language Search: Utilizing OpenAI's cutting-edge technology, DocuBot understands your queries in natural language, ensuring accurate and relevant search results.
- Flask Backend: The backend of DocuBot is built using Python and Flask, providing a robust and scalable foundation for document processing and API interactions.
- Responsive React Frontend: The user-friendly and simple frontend, developed in React.
-
Obtain OpenAI API Key:
- Create a free account on OpenAI and obtain your API key.
- Paste the obtained API key on line number 9 of
app.pyin thebackendfolder.
-
Start the Backend:
- Navigate to the
backenddirectory. - Run the command
pip3 install -r requirements.txtto install all the required packages. - Run the command:
python3 app.py
- Navigate to the
Note: The entire UI component on this project was created by ChatGPT!
-
Install Dependencies:
- Navigate to the
chatbot-frontenddirectory. - Run:
npm installto install all required dependencies.
- Navigate to the
-
Configure Backend URL:
- In
AskPage.jsandTrainPage.js, change the 'baseURL' constant to the URL of your backend application.
- In
-
Start the Frontend:
- Run:
npm startto launch the frontend application.
- Run:
-
Training:
- Upload your text and PDF documents to train DocuBot.
- DocuBot processes these documents, creating vector embeddings for intelligent search.
-
Searching:
- Enter your queries in natural language on the frontend.
- DocuBot provides answers based on the trained documents.
I am currently learning Langchain and am planning to create a much more complex AI chatbot with several additional features. In addition to this, I am working on a much better UI for the forntend. The present UI is pretty basic and just for demonstration purposes.
I welcome contributions from the community to enhance DocuBot further. Whether you're skilled in Python, React, or have expertise in natural language processing, your contributions are valuable. Fork the repository, make your changes, and submit a pull request.
DocuBot is licensed under the MIT License.