VDBA is a Flask-based web application for analyzing and comparing different vector databases using various language models and embedding techniques. This tool allows users to explore document similarity search and question answering capabilities across multiple vector database backends.
-
Multiple Vector Database Support
- ChromaDB
- PGVector (PostgreSQL)
- Pinecone
-
Flexible LLM Integration
- Local models via Ollama
- OpenAI API support
- Configurable model settings
-
Document Analysis
- Support for multiple datasets
- Configurable embedding models
- Real-time chat interface
- Thought process visualization
The main dashboard provides quick access to all features including settings, chat interface, and dataset configuration.
Configure your vector database, embedding model, and LLM preferences.
Select which features/fields to use for creating embeddings from your dataset.
Interactive chat interface with RAG (Retrieval-Augmented Generation) for querying your data. Includes thought process visualization to see the LLM's reasoning.
- Python 3.10+
- PostgreSQL with pgvector extension (for PGVector support)
- Docker (optional, for containerized databases)
- Clone the repository:
git clone https://github.com/yourusername/vdba.git
cd vdba- Create and activate a virtual environment (or use anaconda/mamba):
python -m venv venv
# Windows
.\venv\Scripts\activate
# Linux/MacOS
source venv/bin/activate- Install dependencies:
pip install -r requirements.txt- Configure your environment variables in
.env:
OPENAI_API_KEY=your_key_here
PINECONE_API_KEY=your_key_here
HUGGINGFACE_API_KEY=your_key_here
docker pull pgvector/pgvector
docker run -d --name pgvector -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=password -e POSTGRES_DB=langchain -p 6024:5432 pgvector/pgvector - Start the application:
python app.py-
Navigate to
http://localhost:5000in your web browser -
Configure your settings:
- Select vector database
- Choose embedding model
- Select LLM
- Upload or select dataset
-
Start analyzing documents through the chat interface
vdba/
├── app/
│ ├── templates/ # HTML templates
│ ├── static/ # Static assets
│ └── routes.py # Flask routes
├── scripts/
│ ├── chromadb_handler.py
│ ├── pgvector_hander.py
│ ├── pineconedb_handler.py
│ └── data_loader.py
└── requirements.txt
- Fork the repository
- Create your feature branch (
git checkout -b feature/featureXYZ) - Commit your changes (
git commit -m 'Add some featureXYZ') - Push to the branch (
git push origin feature/featureXYZ) - Open a Pull Request
This project is licensed under the MIT License
- LangChain for vector store integrations
- Sentence Transformers for embedding models
- ChromaDB, PGVector, and Pinecone for vector database support