LangChain VectorStore integration for Vector Panda.
Drop Vector Panda into any LangChain RAG application — from_texts,
similarity_search, get_by_ids, MMR re-ranking, metadata filters, all work
out of the box.
pip install langchain-vectorpandafrom langchain_openai import OpenAIEmbeddings
from langchain_vectorpanda import VectorPandaStore
embeddings = OpenAIEmbeddings()
# Create + populate in one call
store = VectorPandaStore.from_texts(
texts=[
"Pandas are bears native to south-central China.",
"The Eiffel Tower is in Paris.",
"Bamboo makes up 99% of a giant panda's diet.",
],
embedding=embeddings,
collection_name="my_docs",
api_key="vp_...",
)
# Search
results = store.similarity_search("what do pandas eat?", k=2)
for doc in results:
print(doc.page_content)
# With diversity (MMR)
results = store.max_marginal_relevance_search(
"what do pandas eat?", k=2, fetch_k=10, lambda_mult=0.5
)
# With metadata filters (Mongo-style)
results = store.similarity_search(
"Paris landmarks",
k=3,
filter={"category": {"$eq": "travel"}},
)
# Fetch documents back by ID (missing IDs are skipped, never raise)
docs = store.get_by_ids(["doc-1", "doc-2"])from veep import VP
from langchain_vectorpanda import VectorPandaStore
client = VP(api_key="vp_...")
store = VectorPandaStore(
collection_name="my_existing_collection",
embedding=embeddings,
client=client,
)from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI
retriever = store.as_retriever(search_type="mmr", search_kwargs={"k": 4})
qa = RetrievalQA.from_chain_type(llm=ChatOpenAI(), retriever=retriever)
qa.invoke({"query": "What do pandas eat?"})Vector Panda accepts Mongo-style metadata filters:
| Operator | Example |
|---|---|
$eq, $ne |
{"color": {"$eq": "red"}} |
$gt, $gte, $lt, $lte |
{"price": {"$gt": 100}} |
$in, $nin |
{"tag": {"$in": ["a", "b"]}} |
$and, $or |
{"$and": [{"a": 1}, {"b": 2}]} |
A bare value is shorthand for $eq: {"color": "red"} ≡ {"color": {"$eq": "red"}}.
MIT — see LICENSE.