Module zep_python.memory.models
Expand source code
from __future__ import annotations
from enum import Enum
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field
from zep_python.message.models import Message
class SearchScope(str, Enum):
messages = "messages"
summary = "summary"
class MemoryType(str, Enum):
message_window = "message_window"
perpetual = "perpetual"
summary_retriever = "summary_retriever"
class Session(BaseModel):
"""
Represents a session object with a unique identifier, metadata,
and other attributes.
Attributes
----------
uuid : Optional[str]
A unique identifier for the session.
This is generated server-side and is not expected to be present on creation.
created_at : str
The timestamp when the session was created.
Generated by the server.
updated_at : str
The timestamp when the session was last updated.
Generated by the server.
deleted_at : Optional[datetime]
The timestamp when the session was deleted.
Generated by the server.
session_id : str
The unique identifier of the session.
metadata : Dict[str, Any]
The metadata associated with the session.
facts : Optional[List[str]]
A list of facts derived from the session.
"""
uuid: Optional[str] = None
id: Optional[int] = None
created_at: Optional[str] = None
updated_at: Optional[str] = None
deleted_at: Optional[str] = None
session_id: str
user_id: Optional[str] = None
metadata: Optional[Dict[str, Any]] = None
facts: Optional[List[str]] = Field(default=None)
class Summary(BaseModel):
"""
Represents a summary of a conversation.
Attributes
----------
uuid : str
The unique identifier of the summary.
created_at : str
The timestamp of when the summary was created.
content : str
The content of the summary.
recent_message_uuid : str
The unique identifier of the most recent message in the conversation.
token_count : int
The number of tokens in the summary.
Methods
-------
to_dict() -> Dict[str, Any]:
Returns a dictionary representation of the summary.
"""
uuid: str = Field("A uuid is required")
created_at: str = Field("A created_at is required")
content: str = Field("Content is required")
recent_message_uuid: str = Field("A recent_message_uuid is required")
token_count: int = Field("A token_count is required")
def to_dict(self) -> Dict[str, Any]:
"""
Returns a dictionary representation of the summary.
Returns
-------
Dict[str, Any]
A dictionary containing the attributes of the summary.
"""
return self.model_dump(exclude_unset=True, exclude_none=True)
class Memory(BaseModel):
"""
Represents a memory object with messages, metadata, and other attributes.
Attributes
----------
messages : Optional[List[Message]]
A list of message objects, where each message contains a role and content.
metadata : Optional[Dict[str, Any]]
A dictionary containing metadata associated with the memory.
summary : Optional[Summary]
A Summary object.
uuid : Optional[str]
A unique identifier for the memory.
created_at : Optional[str]
The timestamp when the memory was created.
token_count : Optional[int]
The token count of the memory.
facts : Optional[List[str]]
Most recent list of facts derived from the session. Included only with
perpetual memory type.
summary_instruction : Optional[str]
Additional instruction for generating the summary.
Methods
-------
to_dict() -> Dict[str, Any]:
Returns a dictionary representation of the message.
"""
messages: Optional[List[Message]] = Field(
default=[],
description="A List of Messages or empty List is required",
)
metadata: Optional[Dict[str, Any]] = Field(default=None)
summary: Optional[Summary] = Field(default=None)
uuid: Optional[str] = Field(default=None)
created_at: Optional[str] = Field(default=None)
token_count: Optional[int] = Field(default=None)
facts: Optional[List[str]] = Field(default=None)
summary_instruction: Optional[str] = Field(default=None)
def to_dict(self) -> Dict[str, Any]:
return self.model_dump(exclude_unset=True, exclude_none=True)
class MemorySearchPayload(BaseModel):
"""
Represents a search payload for querying memory.
Attributes
----------
metadata : Dict[str, Any]
Metadata associated with the search query.
text : str
The text of the search query.
search_scope : Optional[str]
Search over messages or summaries. Defaults to "messages".
Must be one of "messages" or "summary".
search_type : Optional[str]
The type of search to perform. Defaults to "similarity".
Must be one of "similarity" or "mmr".
mmr_lambda : Optional[float]
The lambda parameter for the MMR Reranking Algorithm.
"""
text: Optional[str] = Field(default=None)
metadata: Optional[Dict[str, Any]] = Field(default=None)
search_scope: Optional[str] = Field(default="messages")
search_type: Optional[str] = Field(default="similarity")
mmr_lambda: Optional[float] = Field(default=None)
class MemorySearchResult(BaseModel):
"""
Represents a search result from querying memory.
Attributes
----------
message : Optional[Message]
The message matched by search.
summary : Optional[Summary]
The summary matched by search.
metadata : Optional[Dict[str, Any]]
Metadata associated with the search result.
score : Optional[float]
The score of the search result.
"""
message: Optional[Message] = None
summary: Optional[Summary] = None
metadata: Optional[Dict[str, Any]] = None
score: Optional[float] = None
class Question(BaseModel):
"""
Represents a question object with a question.
"""
question: str
class ClassifySessionRequest(BaseModel):
"""
Represents a request to classify a session.
Attributes
----------
session_id : str
The unique identifier of the session.
name : str
The name of the classifier. e.g. "emotion" or "intent". This will be used to
store the classification in session metadata if persist is True.
classes : List[str]
A list of classes to classify the session into.
last_n : Optional[int]
The number of session messages to consider for classification. Defaults to 4.
persist : Optional[bool]
Whether to persist the classification to session metadata. Defaults to True.
"""
session_id: str
name: str
classes: List[str]
last_n: Optional[int] = None
persist: Optional[bool] = True
instruction: Optional[str] = None
class ClassifySessionResponse(BaseModel):
"""
Represents a response to classify a session.
Attributes
----------
name : str
The name of the class list. e.g. "emotion" or "intent".
class_ : str
The class the session was classified into.
"""
name: str
class_: str = Field(alias="class")
Classes
class ClassifySessionRequest (**data: Any)
-
Represents a request to classify a session.
Attributes
session_id
:str
- The unique identifier of the session.
name
:str
- The name of the classifier. e.g. "emotion" or "intent". This will be used to store the classification in session metadata if persist is True.
classes
:List[str]
- A list of classes to classify the session into.
last_n
:Optional[int]
- The number of session messages to consider for classification. Defaults to 4.
persist
:Optional[bool]
- Whether to persist the classification to session metadata. Defaults to True.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class ClassifySessionRequest(BaseModel): """ Represents a request to classify a session. Attributes ---------- session_id : str The unique identifier of the session. name : str The name of the classifier. e.g. "emotion" or "intent". This will be used to store the classification in session metadata if persist is True. classes : List[str] A list of classes to classify the session into. last_n : Optional[int] The number of session messages to consider for classification. Defaults to 4. persist : Optional[bool] Whether to persist the classification to session metadata. Defaults to True. """ session_id: str name: str classes: List[str] last_n: Optional[int] = None persist: Optional[bool] = True instruction: Optional[str] = None
Ancestors
- pydantic.main.BaseModel
Class variables
var classes : List[str]
var instruction : Optional[str]
var last_n : Optional[int]
var model_computed_fields
var model_config
var model_fields
var name : str
var persist : Optional[bool]
var session_id : str
class ClassifySessionResponse (**data: Any)
-
Represents a response to classify a session.
Attributes
name
:str
- The name of the class list. e.g. "emotion" or "intent".
class_
:str
- The class the session was classified into.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class ClassifySessionResponse(BaseModel): """ Represents a response to classify a session. Attributes ---------- name : str The name of the class list. e.g. "emotion" or "intent". class_ : str The class the session was classified into. """ name: str class_: str = Field(alias="class")
Ancestors
- pydantic.main.BaseModel
Class variables
var class_ : str
var model_computed_fields
var model_config
var model_fields
var name : str
class Memory (**data: Any)
-
Represents a memory object with messages, metadata, and other attributes.
Attributes
messages
:Optional[List[Message]]
- A list of message objects, where each message contains a role and content.
metadata
:Optional[Dict[str, Any]]
- A dictionary containing metadata associated with the memory.
summary
:Optional[Summary]
- A Summary object.
uuid
:Optional[str]
- A unique identifier for the memory.
created_at
:Optional[str]
- The timestamp when the memory was created.
token_count
:Optional[int]
- The token count of the memory.
facts
:Optional[List[str]]
- Most recent list of facts derived from the session. Included only with perpetual memory type.
summary_instruction
:Optional[str]
- Additional instruction for generating the summary.
Methods
to_dict() -> Dict[str, Any]: Returns a dictionary representation of the message.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class Memory(BaseModel): """ Represents a memory object with messages, metadata, and other attributes. Attributes ---------- messages : Optional[List[Message]] A list of message objects, where each message contains a role and content. metadata : Optional[Dict[str, Any]] A dictionary containing metadata associated with the memory. summary : Optional[Summary] A Summary object. uuid : Optional[str] A unique identifier for the memory. created_at : Optional[str] The timestamp when the memory was created. token_count : Optional[int] The token count of the memory. facts : Optional[List[str]] Most recent list of facts derived from the session. Included only with perpetual memory type. summary_instruction : Optional[str] Additional instruction for generating the summary. Methods ------- to_dict() -> Dict[str, Any]: Returns a dictionary representation of the message. """ messages: Optional[List[Message]] = Field( default=[], description="A List of Messages or empty List is required", ) metadata: Optional[Dict[str, Any]] = Field(default=None) summary: Optional[Summary] = Field(default=None) uuid: Optional[str] = Field(default=None) created_at: Optional[str] = Field(default=None) token_count: Optional[int] = Field(default=None) facts: Optional[List[str]] = Field(default=None) summary_instruction: Optional[str] = Field(default=None) def to_dict(self) -> Dict[str, Any]: return self.model_dump(exclude_unset=True, exclude_none=True)
Ancestors
- pydantic.main.BaseModel
Class variables
var created_at : Optional[str]
var facts : Optional[List[str]]
var messages : Optional[List[Message]]
var metadata : Optional[Dict[str, Any]]
var model_computed_fields
var model_config
var model_fields
var summary : Optional[Summary]
var summary_instruction : Optional[str]
var token_count : Optional[int]
var uuid : Optional[str]
Methods
def to_dict(self) ‑> Dict[str, Any]
-
Expand source code
def to_dict(self) -> Dict[str, Any]: return self.model_dump(exclude_unset=True, exclude_none=True)
class MemorySearchPayload (**data: Any)
-
Represents a search payload for querying memory.
Attributes
metadata
:Dict[str, Any]
- Metadata associated with the search query.
text
:str
- The text of the search query.
search_scope
:Optional[str]
- Search over messages or summaries. Defaults to "messages". Must be one of "messages" or "summary".
search_type
:Optional[str]
- The type of search to perform. Defaults to "similarity". Must be one of "similarity" or "mmr".
mmr_lambda
:Optional[float]
- The lambda parameter for the MMR Reranking Algorithm.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class MemorySearchPayload(BaseModel): """ Represents a search payload for querying memory. Attributes ---------- metadata : Dict[str, Any] Metadata associated with the search query. text : str The text of the search query. search_scope : Optional[str] Search over messages or summaries. Defaults to "messages". Must be one of "messages" or "summary". search_type : Optional[str] The type of search to perform. Defaults to "similarity". Must be one of "similarity" or "mmr". mmr_lambda : Optional[float] The lambda parameter for the MMR Reranking Algorithm. """ text: Optional[str] = Field(default=None) metadata: Optional[Dict[str, Any]] = Field(default=None) search_scope: Optional[str] = Field(default="messages") search_type: Optional[str] = Field(default="similarity") mmr_lambda: Optional[float] = Field(default=None)
Ancestors
- pydantic.main.BaseModel
Class variables
var metadata : Optional[Dict[str, Any]]
var mmr_lambda : Optional[float]
var model_computed_fields
var model_config
var model_fields
var search_scope : Optional[str]
var search_type : Optional[str]
var text : Optional[str]
class MemorySearchResult (**data: Any)
-
Represents a search result from querying memory.
Attributes
message
:Optional[Message]
- The message matched by search.
summary
:Optional[Summary]
- The summary matched by search.
metadata
:Optional[Dict[str, Any]]
- Metadata associated with the search result.
score
:Optional[float]
- The score of the search result.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class MemorySearchResult(BaseModel): """ Represents a search result from querying memory. Attributes ---------- message : Optional[Message] The message matched by search. summary : Optional[Summary] The summary matched by search. metadata : Optional[Dict[str, Any]] Metadata associated with the search result. score : Optional[float] The score of the search result. """ message: Optional[Message] = None summary: Optional[Summary] = None metadata: Optional[Dict[str, Any]] = None score: Optional[float] = None
Ancestors
- pydantic.main.BaseModel
Class variables
var message : Optional[Message]
var metadata : Optional[Dict[str, Any]]
var model_computed_fields
var model_config
var model_fields
var score : Optional[float]
var summary : Optional[Summary]
class MemoryType (*args, **kwds)
-
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.str() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.
Expand source code
class MemoryType(str, Enum): message_window = "message_window" perpetual = "perpetual" summary_retriever = "summary_retriever"
Ancestors
- builtins.str
- enum.Enum
Class variables
var message_window
var perpetual
var summary_retriever
class Question (**data: Any)
-
Represents a question object with a question.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class Question(BaseModel): """ Represents a question object with a question. """ question: str
Ancestors
- pydantic.main.BaseModel
Class variables
var model_computed_fields
var model_config
var model_fields
var question : str
class SearchScope (*args, **kwds)
-
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.str() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.
Expand source code
class SearchScope(str, Enum): messages = "messages" summary = "summary"
Ancestors
- builtins.str
- enum.Enum
Class variables
var messages
var summary
class Session (**data: Any)
-
Represents a session object with a unique identifier, metadata, and other attributes.
Attributes
uuid
:Optional[str]
- A unique identifier for the session. This is generated server-side and is not expected to be present on creation.
created_at
:str
- The timestamp when the session was created. Generated by the server.
updated_at
:str
- The timestamp when the session was last updated. Generated by the server.
deleted_at
:Optional[datetime]
- The timestamp when the session was deleted. Generated by the server.
session_id
:str
- The unique identifier of the session.
metadata
:Dict[str, Any]
- The metadata associated with the session.
facts
:Optional[List[str]]
- A list of facts derived from the session.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class Session(BaseModel): """ Represents a session object with a unique identifier, metadata, and other attributes. Attributes ---------- uuid : Optional[str] A unique identifier for the session. This is generated server-side and is not expected to be present on creation. created_at : str The timestamp when the session was created. Generated by the server. updated_at : str The timestamp when the session was last updated. Generated by the server. deleted_at : Optional[datetime] The timestamp when the session was deleted. Generated by the server. session_id : str The unique identifier of the session. metadata : Dict[str, Any] The metadata associated with the session. facts : Optional[List[str]] A list of facts derived from the session. """ uuid: Optional[str] = None id: Optional[int] = None created_at: Optional[str] = None updated_at: Optional[str] = None deleted_at: Optional[str] = None session_id: str user_id: Optional[str] = None metadata: Optional[Dict[str, Any]] = None facts: Optional[List[str]] = Field(default=None)
Ancestors
- pydantic.main.BaseModel
Class variables
var created_at : Optional[str]
var deleted_at : Optional[str]
var facts : Optional[List[str]]
var id : Optional[int]
var metadata : Optional[Dict[str, Any]]
var model_computed_fields
var model_config
var model_fields
var session_id : str
var updated_at : Optional[str]
var user_id : Optional[str]
var uuid : Optional[str]
class Summary (**data: Any)
-
Represents a summary of a conversation.
Attributes
uuid
:str
- The unique identifier of the summary.
created_at
:str
- The timestamp of when the summary was created.
content
:str
- The content of the summary.
recent_message_uuid
:str
- The unique identifier of the most recent message in the conversation.
token_count
:int
- The number of tokens in the summary.
Methods
to_dict() -> Dict[str, Any]: Returns a dictionary representation of the summary.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.Expand source code
class Summary(BaseModel): """ Represents a summary of a conversation. Attributes ---------- uuid : str The unique identifier of the summary. created_at : str The timestamp of when the summary was created. content : str The content of the summary. recent_message_uuid : str The unique identifier of the most recent message in the conversation. token_count : int The number of tokens in the summary. Methods ------- to_dict() -> Dict[str, Any]: Returns a dictionary representation of the summary. """ uuid: str = Field("A uuid is required") created_at: str = Field("A created_at is required") content: str = Field("Content is required") recent_message_uuid: str = Field("A recent_message_uuid is required") token_count: int = Field("A token_count is required") def to_dict(self) -> Dict[str, Any]: """ Returns a dictionary representation of the summary. Returns ------- Dict[str, Any] A dictionary containing the attributes of the summary. """ return self.model_dump(exclude_unset=True, exclude_none=True)
Ancestors
- pydantic.main.BaseModel
Class variables
var content : str
var created_at : str
var model_computed_fields
var model_config
var model_fields
var recent_message_uuid : str
var token_count : int
var uuid : str
Methods
def to_dict(self) ‑> Dict[str, Any]
-
Returns a dictionary representation of the summary.
Returns
Dict[str, Any]
- A dictionary containing the attributes of the summary.
Expand source code
def to_dict(self) -> Dict[str, Any]: """ Returns a dictionary representation of the summary. Returns ------- Dict[str, Any] A dictionary containing the attributes of the summary. """ return self.model_dump(exclude_unset=True, exclude_none=True)