home / skills / willsigmon / sigstack / vector-db-expert
This skill helps you choose and implement the right vector database for RAG and semantic search across projects.
npx playbooks add skill willsigmon/sigstack --skill vector-db-expertReview the files below or copy the command above to add this skill to your agents.
---
name: Vector Database Expert
description: Vector databases - Pinecone, Weaviate, Chroma, Qdrant for RAG and semantic search
allowed-tools: Read, Edit, Bash, WebFetch
model: sonnet
---
# Vector Database Expert
Choose and implement the right vector database for your AI applications.
## Pricing Comparison (2026)
| Database | Free Tier | Paid (1M vectors) |
|----------|-----------|-------------------|
| Pinecone | Yes | ~$41/mo |
| Weaviate | Yes | ~$25-153/mo |
| Chroma | Open source | Self-host cost |
| Qdrant | Open source | Self-host or cloud |
## When to Use Each
### Pinecone
- **Best for**: Production RAG, minimal ops
- **Pros**: Fully managed, fast, reliable
- **Cons**: 3-5x more expensive
- **Use when**: Need SLAs, no DevOps capacity
### Weaviate
- **Best for**: Hybrid search, GraphQL fans
- **Pros**: Flexible pricing, compression options
- **Cons**: More complex setup
- **Use when**: Mid-scale with in-house ops
### Chroma
- **Best for**: Prototypes, learning, embedded use
- **Pros**: Free, simple Python API
- **Cons**: Limited production features
- **Use when**: Starting out, tight budget
### Qdrant
- **Best for**: Performance-critical apps
- **Pros**: Fast, Rust-based, filtering
- **Cons**: Newer ecosystem
- **Use when**: High-performance requirements
## Quick Implementations
### Chroma (Local Dev)
```python
import chromadb
from chromadb.utils import embedding_functions
client = chromadb.Client()
ef = embedding_functions.OpenAIEmbeddingFunction(api_key="...")
collection = client.create_collection(
name="docs",
embedding_function=ef
)
collection.add(
documents=["Swift is great for iOS", "React is for web"],
ids=["doc1", "doc2"]
)
results = collection.query(
query_texts=["mobile development"],
n_results=2
)
```
### Pinecone (Production)
```python
from pinecone import Pinecone
pc = Pinecone(api_key="...")
index = pc.Index("my-index")
# Upsert
index.upsert(vectors=[
{"id": "doc1", "values": [...], "metadata": {"source": "docs"}}
])
# Query
results = index.query(
vector=[...],
top_k=5,
filter={"source": "docs"}
)
```
### Weaviate
```python
import weaviate
client = weaviate.connect_to_wcs(
cluster_url="your-url",
auth_credentials=weaviate.AuthApiKey("key")
)
collection = client.collections.create(
name="Document",
vectorizer_config=wvc.Configure.Vectorizer.text2vec_openai()
)
```
## RAG Pattern
```
User Query → Embed → Vector Search → Top K Docs → LLM Context → Response
```
Use when: Building RAG, semantic search, similarity matching, AI memory
This skill helps you choose and implement the right vector database for retrieval-augmented generation (RAG) and semantic search. It compares Pinecone, Weaviate, Chroma, and Qdrant by trade-offs like cost, ops burden, performance, and production readiness. You get concise guidance and quick code patterns to get started in development and production.
The skill summarizes when each vector store is appropriate and outlines simple implementation snippets for local dev and production. It inspects trade-offs—managed vs self-hosted, pricing, performance, and feature gaps like filtering or graph support—and maps them to concrete use cases. It also shows the standard RAG pipeline so you can integrate embedding, search, and LLM context steps quickly.
Which vendor is cheapest for 1M vectors?
Pricing varies by features; open-source Chroma/Qdrant minimize software cost but add hosting; managed Pinecone is typically more expensive than Weaviate for equivalent service levels.
Can I migrate vectors between stores?
Yes. Export vectors and metadata from one store and upsert into another; preserve IDs and embedding model to maintain nearest-neighbor behavior.