docstrings `memory` (#8018)

docstrings `memory`:
- added module summary
- added missed docstrings
- updated docstrings into consistent format
- 
@baskaryan
pull/8256/head
Leonid Ganeline 1 year ago committed by GitHub
parent 026269bfa9
commit 120cdf813d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,3 +1,4 @@
"""Memory maintains Chain state, incorporating context from past runs."""
from langchain.memory.buffer import (
ConversationBufferMemory,
ConversationStringBufferMemory,

@ -5,12 +5,13 @@ from langchain.schema.messages import BaseMessage, get_buffer_string
class ConversationBufferWindowMemory(BaseChatMemory):
"""Buffer for storing conversation memory."""
"""Buffer for storing conversation memory inside a limited size window."""
human_prefix: str = "Human"
ai_prefix: str = "AI"
memory_key: str = "history" #: :meta private:
k: int = 5
"""Number of messages to store in buffer."""
@property
def buffer(self) -> List[BaseMessage]:

@ -9,6 +9,8 @@ from langchain.schema import BaseChatMessageHistory, BaseMemory
class BaseChatMemory(BaseMemory, ABC):
"""Abstract base class for chat memory."""
chat_memory: BaseChatMessageHistory = Field(default_factory=ChatMessageHistory)
output_key: Optional[str] = None
input_key: Optional[str] = None

@ -17,7 +17,7 @@ if TYPE_CHECKING:
class CosmosDBChatMessageHistory(BaseChatMessageHistory):
"""Chat history backed by Azure CosmosDB."""
"""Chat message history backed by Azure CosmosDB."""
def __init__(
self,

@ -16,6 +16,7 @@ logger = logging.getLogger(__name__)
class DynamoDBChatMessageHistory(BaseChatMessageHistory):
"""Chat message history that stores history in AWS DynamoDB.
This class expects that a DynamoDB table with name `table_name`
and a partition Key of `SessionId` is present.

@ -16,7 +16,7 @@ if TYPE_CHECKING:
class FirestoreChatMessageHistory(BaseChatMessageHistory):
"""Chat history backed by Google Firestore."""
"""Chat message history backed by Google Firestore."""
def __init__(
self,

@ -36,6 +36,7 @@ def _ensure_cache_exists(cache_client: momento.CacheClient, cache_name: str) ->
class MomentoChatMessageHistory(BaseChatMessageHistory):
"""Chat message history cache that uses Momento as a backend.
See https://gomomento.com/"""
def __init__(

@ -21,6 +21,7 @@ logger = logging.getLogger(__name__)
def create_message_model(table_name, DynamicBase): # type: ignore
"""
Create a message model for a given table name.
Args:
table_name: The name of the table to use.
DynamicBase: The base class to use for the model.

@ -20,7 +20,7 @@ logger = logging.getLogger(__name__)
class ZepChatMessageHistory(BaseChatMessageHistory):
"""A ChatMessageHistory implementation that uses Zep as a backend.
"""Chat message history that uses Zep as a backend.
Recommended usage::

@ -8,7 +8,7 @@ from langchain.schema import BaseMemory
class CombinedMemory(BaseMemory):
"""Class for combining multiple memories' data together."""
"""Combining multiple memories' data together."""
memories: List[BaseMemory]
"""For tracking all the memories that should be accessed."""

@ -21,6 +21,8 @@ logger = logging.getLogger(__name__)
class BaseEntityStore(BaseModel, ABC):
"""Abstract base class for Entity store."""
@abstractmethod
def get(self, key: str, default: Optional[str] = None) -> Optional[str]:
"""Get entity value from store."""
@ -48,7 +50,7 @@ class BaseEntityStore(BaseModel, ABC):
class InMemoryEntityStore(BaseEntityStore):
"""Basic in-memory entity store."""
"""In-memory Entity store."""
store: Dict[str, Optional[str]] = {}
@ -69,7 +71,9 @@ class InMemoryEntityStore(BaseEntityStore):
class RedisEntityStore(BaseEntityStore):
"""Redis-backed Entity store. Entities get a TTL of 1 day by default, and
"""Redis-backed Entity store.
Entities get a TTL of 1 day by default, and
that TTL is extended by 3 days every time the entity is read back.
"""
@ -245,7 +249,7 @@ class ConversationEntityMemory(BaseChatMemory):
"""Entity extractor & summarizer memory.
Extracts named entities from the recent chat history and generates summaries.
With a swapable entity store, persisting entities across conversations.
With a swappable entity store, persisting entities across conversations.
Defaults to an in-memory entity store, and can be swapped out for a Redis,
SQLite, or other entity store.
"""

@ -17,7 +17,7 @@ from langchain.schema.messages import BaseMessage, SystemMessage, get_buffer_str
class ConversationKGMemory(BaseChatMemory):
"""Knowledge graph memory for storing conversation memory.
"""Knowledge graph conversation memory.
Integrates with external knowledge graph to store and retrieve
information about knowledge triples in the conversation.

@ -10,6 +10,8 @@ MANAGED_URL = "https://api.getmetal.io/v1/motorhead"
class MotorheadMemory(BaseChatMemory):
"""Chat message memory backed by Motorhead service."""
url: str = MANAGED_URL
timeout = 3000
memory_key = "history"

@ -4,7 +4,7 @@ from langchain.schema import BaseMemory
class SimpleMemory(BaseMemory):
"""Simple memory for storing context or other bits of information that shouldn't
"""Simple memory for storing context or other information that shouldn't
ever change between prompts.
"""

@ -16,6 +16,8 @@ from langchain.schema.messages import BaseMessage, SystemMessage, get_buffer_str
class SummarizerMixin(BaseModel):
"""Mixin for summarizer."""
human_prefix: str = "Human"
ai_prefix: str = "AI"
llm: BaseLanguageModel
@ -36,7 +38,7 @@ class SummarizerMixin(BaseModel):
class ConversationSummaryMemory(BaseChatMemory, SummarizerMixin):
"""Conversation summarizer to memory."""
"""Conversation summarizer to chat memory."""
buffer: str = ""
memory_key: str = "history" #: :meta private:

@ -6,7 +6,7 @@ from langchain.schema.messages import BaseMessage, get_buffer_string
class ConversationTokenBufferMemory(BaseChatMemory):
"""Buffer for storing conversation memory."""
"""Conversation chat memory with token limit."""
human_prefix: str = "Human"
ai_prefix: str = "AI"

@ -11,7 +11,7 @@ from langchain.vectorstores.base import VectorStoreRetriever
class VectorStoreRetrieverMemory(BaseMemory):
"""Class for a VectorStore-backed memory object."""
"""VectorStoreRetriever-backed memory."""
retriever: VectorStoreRetriever = Field(exclude=True)
"""VectorStoreRetriever object to connect to."""

@ -7,7 +7,7 @@ from langchain.memory.chat_message_histories import ZepChatMessageHistory
class ZepMemory(ConversationBufferMemory):
"""Persist your chain history to the Zep Long-term Memory Server
"""Persist your chain history to the Zep Memory Server.
The number of messages returned by Zep and when the Zep server summarizes chat
histories is configurable. See the Zep documentation for more details.

@ -8,7 +8,7 @@ from langchain.schema.messages import AIMessage, BaseMessage, HumanMessage
class BaseMemory(Serializable, ABC):
"""Base abstract class for memory in Chains.
"""Abstract base class for memory in Chains.
Memory refers to state in Chains. Memory can be used to store information about
past executions of a Chain and inject that information into the inputs of

Loading…
Cancel
Save