NovaBot is a support chatbot application designed to assist customers with product information and support issues for BigCommerce. It uses various technologies and libraries to provide its functionality, including FastAPI for the backend, Streamlit for the frontend, and Qdrant for vector storage.
- Interactive Chatbot: Provides support and information to customers.
- Product Manual Management: Upload and search product manuals.
- Customer Ticket Management: Create and manage customer support tickets.
- Multimodal Search: Supports text and image-based search.
- Backend: FastAPI
- Frontend: Streamlit
- Vector Storage: Qdrant
- Language Model: LangChain
-
Clone the repository:
git clone https://github.com/yourusername/novabot.git cd novabot
-
Create and activate a virtual environment:
python -m venv env source env/bin/activate # On Windows use `env\Scripts\activate`
-
Install the dependencies:
pip install -r requirements.txt
-
Set up environment variables: Create a .env file in the root directory and add the following variables:
QDRANT_HOST=localhost QDRANT_KEY=your_qdrant_api_key GROQ_KEY=your_groq_api_key
-
Start the FastAPI backend:
python [run.py](http://_vscodecontentref_/21)
-
Start the Streamlit frontend:
streamlit run [streamlit_run.py](http://_vscodecontentref_/22)
-
Build the Docker image:
docker build -t novabot .
-
Run the Docker container:
docker run -p 8000:8000 novabot
- Upload Product Manual: Use the sidebar in the Streamlit interface to upload product manuals.
- Create Customer Ticket: Use the sidebar in the Streamlit interface to create customer tickets.
- Chat with NovaBot: Use the chat interface to ask questions and get support.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License.