Robby-chatbot π€
An AI chatbot featuring conversational memory, designed to enable users to discuss their CSV, PDF, TXT data and YouTube videos in a more intuitive manner. π
I'm currently working on making AI useful for geospatial -> building TerraLab with my dad and best friend, come take a look hehe
Robby the Robot from Forbidden Planet
For better understanding, see my Medium article π : Build a chat-bot over your CSV data
Features β¨
- Robby-Chat: Chat with your documents (PDF, TXT, CSV) using vector embeddings and conversational memory
- Robby-Sheet: Analyze tabular data with natural language using PandasAI
- Robby-Youtube: Summarize YouTube videos using AI
Tech Stack π οΈ
- LangChain - LLM orchestration framework
- OpenAI - GPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-3.5-turbo
- PandasAI - Natural language data analysis
- Streamlit - Web application framework
- FAISS - Vector similarity search
Running Locally π»
Follow these steps to set up and run the service locally:
Prerequisites
- Python 3.10 or higher
- Git
- OpenAI API key
Installation
Clone the repository:
git clone https://github.com/yvann-hub/Robby-chatbot.git
Navigate to the project directory:
cd Robby-chatbot
Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows
Install the required dependencies:
pip install -r requirements.txt
Launch the chat service locally:
streamlit run src/Home.py
Environment Variables (Optional)
You can set your OpenAI API key as an environment variable instead of entering it in the UI:
export OPENAI_API_KEY="your-api-key-here"
Or create a .env file in the project root:
OPENAI_API_KEY=your-api-key-here
That's it! The service is now up and running locally. π€
Models Available π€
- GPT-4o-mini - Fast and cost-effective (default)
- GPT-4o - Most capable model
- GPT-4-turbo - Balanced performance
- GPT-3.5-turbo - Legacy model
Contributing π
If you want to contribute to this project, please open an issue, submit a pull request or contact me at [email protected] (: