Introducing the Zep Document Vector Store

With the addition of a Document Vector Store, Zep is now a single, batteries-included platform for grounding LLM apps with long-term memory.

Introducing the Zep Document Vector Store

Since our launch in May, Zep has enabled thousands of developers to build LLM apps that offer rich user experiences built on prior interactions with an agent. Today we're releasing the Zep Document Vector Store, which builds on Zep's existing chat history persistence, enrichment, and vector search.

Supporting both chat history and textual data, Zep is now a single, batteries-included platform for grounding LLM apps with long-term memory. Whether you'd like to populate your prompts with chat histories, summaries, extracted entities, or relevant context from documents or other business data, you can do it with Zep. All from a single API.

"Batteries included" means less time working on infrastructure

We're passionate about helping developers build fast, accurate, personalized LLM apps. And build them quickly.

At release, the Zep vector store offers the following:

  • Automatic, local document embedding: offering a low-latency alternative to many commercial embedding services. Text search queries are embedded on the Zep server, meaning results are reliably and quickly returned to your app.
  • Hybrid search: Zep supports associating metadata with documents. Vector search queries can be augmented with JSONPath queries against this metadata, filtering semantic results.
  • LangChain Integration: Zep's LangChain VectorStore simplifies implementing Zep in your LangChain app.
  • Low database management overhead: Zep automatically tunes queries based on the size of your index, and adding, updating, and deleting documents is simple and fast.
# hybrid search for documents using a query string and metadata filter
query = "What was Charles Babbage's contributing to computing?"
metadata_query = {
    "where": {"jsonpath": '$[*] ? (@.topic == "computing")'},
}
results = collection.search(text=query, metadata=metadata_query, limit=5)

Hybrid Search over a Document Collection

docs = text_splitter.create_documents([raw_text])

vectorstore = ZepVectorStore(collection)
vectorstore.add_documents(docs)

chain = ConversationalRetrievalChain.from_llm(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever(),
    memory=memory,
    verbose=True,
)

Using Zep's VectorStore with a LangChain Chain

Under the Hood

Zep uses Postgres and pgvector for database operations and vector search. Vector search can be complicated on Postgres, with careful configuration required at both index creation and query time. We've focused on significantly improving this developer experience.

Zep automatically selects index and query parameters for developers based on best practices and known heuristics. Vector database operations are therefore exposed via a simple API for working with document collections, documents, and search results.

Getting Started with Zep's Document Vector Store

Zep v0.9.0-beta is available today. Follow the Deployment Guide on the Zep documentation website to install it.

Doing more with your documents

Zep offers a rich enrichment feature set for chat histories: auto-summarization, entity and intent enrichment, and more. We'll be looking for opportunities to bring some of these features, and more, to the document vector store. If you have ideas, we'd love to hear about them!

Building Retrieval Augmented Generation apps with a turnkey platform

Grounding LLMs with document and chat history memory is crucial in creating accurate and compelling RAG apps. With Zep's new document vector store, you can now use a single, open source, and simple-to-implement platform to do so.

Visit Zep on GitHub!