Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

langchain-vectorpanda

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.

Install

pip install langchain-vectorpanda

Quickstart

from 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"])

Use an existing collection

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,
)

Use with RetrievalQA

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?"})

Filter syntax

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"}}.

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages