An open API service indexing awesome lists of open source software.

https://github.com/ysocrius/pinecone-vector-chat


https://github.com/ysocrius/pinecone-vector-chat

Last synced: 8 days ago
JSON representation

Awesome Lists containing this project

README

          

# Pinecone Vector Chat - RAG Assistant

A complete implementation of a Retrieval-Augmented Generation (RAG) chatbot using OpenAI, Pinecone, and Flask. This project demonstrates how to build a personal AI assistant that can ingest documents and answer questions with precise source citations.

## 🌟 New Features
- **Multi-Path Ingestion**: Sync documents from multiple local paths simultaneously.
- **Clean Source Citations**: RAG responses now cite specific filenames without clutter.
- **Automated Verification**: Integration with Playwright for end-to-end testing.

## 🎯 Key Capabilities
✅ **Cloud-based LLM** - GPT-4o-mini integration for intelligent responses
✅ **Vector Database** - Pinecone for scalable knowledge retrieval
✅ **Web Interface** - Modern, responsive chatbot UI built with Flask & Bootstrap
✅ **RAG Pipeline** - customized context injection with accurate sourcing
✅ **Production Ready** - Configured for deployment on Render

## 🚀 Quick Start

### Prerequisites
- Python 3.8+
- OpenAI API Key
- Pinecone API Key

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/ysocrius/pinecone-vector-chat.git
cd pinecone-vector-chat
```

2. **Set up virtual environment**
```bash
python -m venv venv
# Windows
venv\Scripts\activate
# Mac/Linux
source venv/bin/activate
```

3. **Install dependencies**
```bash
pip install -r requirements.txt
```

4. **Configure environment variables**
Create a `.env` file with your keys:
```env
OPENAI_API_KEY=your_key
PINECONE_API_KEY=your_key
PINECONE_ENVIRONMENT=us-east-1
PINECONE_INDEX_NAME=jarvis-assistant-index
```

5. **Start the application**
```bash
python jarvis_assistant.py
```
Open your browser to `http://127.0.0.1:5000`

## 📚 Document Ingestion

You have two ways to add knowledge to Jarvis:
1. **Web Upload**: Use the "File Upload" button in the UI to upload PDF or TXT files directly.
2. **Local Path Sync**: Enter full local paths (comma-separated) in the "Local Path Ingestion" field to sync files from anywhere on your machine.
- *Example*: `C:\Documents\project_specs.pdf, C:\Notes\learning.txt`

## 🏗️ Architecture

```
pinecone-vector-chat/
├── docs/ # Default folder for document placement
├── static/ # Frontend assets (Clean JS/CSS)
├── templates/ # Jinja2 HTML templates
├── jarvis_assistant.py # Main Flask application & API
├── ingest.py # Standalone ingestion script
└── setup_pinecone.py # Index initialization utility
```

## 🛠️ Technical Stack
- **Backend**: Flask
- **AI/ML**: OpenAI (GPT-4o), LangChain
- **Database**: Pinecone (Vector Store)
- **Frontend**: Vanilla JS, Bootstrap 5
- **Testing**: Playwright MCP

## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.

---
**Built for:** Banao RAG Evaluation Task