ZepChatMessageHistory#

class langchain_community.chat_message_histories.zep.ZepChatMessageHistory(session_id: str, url: str = 'http://localhost:8000', api_key: str | None = None)[source]#

Chat message history that uses Zep as a backend.

Recommended usage:

# Set up Zep Chat History
zep_chat_history = ZepChatMessageHistory(
    session_id=session_id,
    url=ZEP_API_URL,
    api_key=<your_api_key>,
)

# Use a standard ConversationBufferMemory to encapsulate the Zep chat history
memory = ConversationBufferMemory(
    memory_key="chat_history", chat_memory=zep_chat_history
)

Zep provides long-term conversation storage for LLM apps. The server stores, summarizes, embeds, indexes, and enriches conversational AI chat histories, and exposes them via simple, low-latency APIs.

For server installation instructions and more, see: https://docs.getzep.com/deployment/quickstart/

This class is a thin wrapper around the zep-python package. Additional Zep functionality is exposed via the zep_summary and zep_messages properties.

For more information on the zep-python package, see: getzep/zep-python

Attributes

messages

Retrieve messages from Zep memory

zep_messages

Retrieve summary from Zep memory

zep_summary

Retrieve summary from Zep memory

Methods

__init__(session_id[, url, api_key])

aadd_messages(messages)

Append the messages to the Zep memory history asynchronously

aclear()

Clear session memory from Zep asynchronously.

add_ai_message(message[, metadata])

Convenience method for adding an AI message string to the store.

add_message(message[, metadata])

Append the message to the Zep memory history

add_messages(messages)

Append the messages to the Zep memory history

add_user_message(message[, metadata])

Convenience method for adding a human message string to the store.

aget_messages()

Async version of getting messages.

clear()

Clear session memory from Zep.

search(query[, metadata, search_scope, ...])

Search Zep memory for messages matching the query

Parameters:
  • session_id (str)

  • url (str)

  • api_key (Optional[str])

__init__(session_id: str, url: str = 'http://localhost:8000', api_key: str | None = None) None[source]#
Parameters:
  • session_id (str)

  • url (str)

  • api_key (str | None)

Return type:

None

async aadd_messages(messages: Sequence[BaseMessage]) None[source]#

Append the messages to the Zep memory history asynchronously

Parameters:

messages (Sequence[BaseMessage])

Return type:

None

async aclear() None[source]#

Clear session memory from Zep asynchronously. Note that Zep is long-term storage for memory and this is not advised unless you have specific data retention requirements.

Return type:

None

add_ai_message(message: str, metadata: Dict[str, Any] | None = None) None[source]#

Convenience method for adding an AI message string to the store.

Parameters:
  • message (str) – The string contents of an AI message.

  • metadata (Dict[str, Any] | None) – Optional metadata to attach to the message.

Return type:

None

add_message(message: BaseMessage, metadata: Dict[str, Any] | None = None) None[source]#

Append the message to the Zep memory history

Parameters:
  • message (BaseMessage)

  • metadata (Dict[str, Any] | None)

Return type:

None

add_messages(messages: Sequence[BaseMessage]) None[source]#

Append the messages to the Zep memory history

Parameters:

messages (Sequence[BaseMessage])

Return type:

None

add_user_message(message: str, metadata: Dict[str, Any] | None = None) None[source]#

Convenience method for adding a human message string to the store.

Parameters:
  • message (str) – The string contents of a human message.

  • metadata (Dict[str, Any] | None) – Optional metadata to attach to the message.

Return type:

None

async aget_messages() list[BaseMessage]#

Async version of getting messages.

Can over-ride this method to provide an efficient async implementation.

In general, fetching messages may involve IO to the underlying persistence layer.

Return type:

list[BaseMessage]

clear() None[source]#

Clear session memory from Zep. Note that Zep is long-term storage for memory and this is not advised unless you have specific data retention requirements.

Return type:

None

search(query: str, metadata: Dict | None = None, search_scope: SearchScope = SearchScope.messages, search_type: SearchType = SearchType.similarity, mmr_lambda: float | None = None, limit: int | None = None) List[MemorySearchResult][source]#

Search Zep memory for messages matching the query

Parameters:
  • query (str)

  • metadata (Optional[Dict])

  • search_scope (SearchScope)

  • search_type (SearchType)

  • mmr_lambda (Optional[float])

  • limit (Optional[int])

Return type:

List[MemorySearchResult]