Give your model the right context before it answers. Store your documents' embeddings, retrieve by meaning, and ground every response — with no index to pick or tune.
Simple flow, powerful results
Chunk and embed your documents
Store in Vector Panda
Query relevant context
Generate accurate responses
Store context, retrieve by meaning, assemble the grounded prompt — runnable as-is
from veep import Client, samples
vp = Client.login() # browser OAuth; or Client(api_key="veep_live_...")
docs = [
"Vector databases store embeddings and search them by meaning.",
"RAG retrieves relevant context before the model answers.",
"Vector Panda bills for storage only; queries are free.",
]
vp.collections.create("rag-notes", tier="hot")
vp.vectors.upsert("rag-notes", vectors=[
{"id": f"doc-{i}", "vector": samples.encode(d), "metadata": {"text": d}}
for i, d in enumerate(docs)
])
question = "How does RAG improve an LLM's answers?"
hits = vp.vectors.query("rag-notes", samples.encode(question), top_k=2)
context = "\n".join(h.metadata["text"] for h in hits)
# Hand the assembled prompt to whichever LLM you use
prompt = f"Context:\n{context}\n\nQuestion: {question}"
print(prompt)For the concepts behind it, read How AI assistants use your documents; the full SDK surface is in the documentation.
One collection on the standard Cohere 1M dataset, measured end to end through the public API with VectorDBBench. Real numbers, not projections — methodology and raw results here.
Optimize your RAG implementation
Use overlapping chunks of 500-1000 tokens for optimal context retrieval. Include document structure in metadata for better ranking.
Store source, timestamp, section headers, and document type. Use metadata filters to improve relevance and reduce noise.
Combine semantic search with keyword filters for precision. Use Vector Panda's metadata queries for exact matches.
Adjust the number of retrieved chunks based on query complexity. Start with k=5 and increase for open-ended questions.
Ingest documents in batches — one upsert call takes a file, a DataFrame, or a list of vectors, and blocks until the data is queryable.
Keep recent docs in hot storage, move historical data to warm. Save 80%+ on storage costs without sacrificing performance.
Start with our Python SDK and scale to billions of documents. No configuration, no complexity, just results.
Get Started Free →