Skip to content

Commit 8ec3076

Browse files
committed
Added docstrings to message history classes
1 parent 756a495 commit 8ec3076

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

src/neo4j_graphrag/message_history.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555

5656

5757
class MessageHistory(ABC):
58+
"""Abstract base class for message history storage."""
59+
5860
@property
5961
@abstractmethod
6062
def messages(self) -> List[LLMMessage]: ...
@@ -71,6 +73,24 @@ def clear(self) -> None: ...
7173

7274

7375
class InMemoryMessageHistory(MessageHistory):
76+
"""Message history stored in memory
77+
78+
Example:
79+
80+
.. code-block:: python
81+
82+
from neo4j_graphrag.llm.types import LLMMessage
83+
from neo4j_graphrag.message_history import InMemoryMessageHistory
84+
85+
history = InMemoryMessageHistory()
86+
87+
message = LLMMessage(role="user", content="Hello!")
88+
history.add_message(message)
89+
90+
Args:
91+
messages (Optional[List[LLMMessage]]): List of messages to initialize the history with. Defaults to None.
92+
"""
93+
7494
def __init__(self, messages: Optional[List[LLMMessage]] = None) -> None:
7595
self._messages = messages or []
7696

@@ -89,6 +109,33 @@ def clear(self) -> None:
89109

90110

91111
class Neo4jMessageHistory(MessageHistory):
112+
"""Message history stored in a Neo4j database
113+
114+
Example:
115+
116+
.. code-block:: python
117+
118+
import neo4j
119+
from neo4j_graphrag.llm.types import LLMMessage
120+
from neo4j_graphrag.message_history import Neo4jMessageHistory
121+
122+
driver = neo4j.GraphDatabase.driver(URI, auth=AUTH)
123+
124+
history = Neo4jMessageHistory(
125+
session_id="123", driver=driver, node_label="Message", window=10
126+
)
127+
128+
message = LLMMessage(role="user", content="Hello!")
129+
history.add_message(message)
130+
131+
Args:
132+
session_id (Union[str, int]): Unique identifier for the chat session.
133+
driver (neo4j.Driver): Neo4j driver instance.
134+
node_label (str, optional): Label used for session nodes in Neo4j. Defaults to "Session".
135+
window (Optional[PositiveInt], optional): Number of previous messages to return when retrieving messages.
136+
137+
"""
138+
92139
def __init__(
93140
self,
94141
session_id: Union[str, int],
@@ -139,6 +186,11 @@ def messages(self, messages: List[LLMMessage]) -> None:
139186
)
140187

141188
def add_message(self, message: LLMMessage) -> None:
189+
"""Add a message to the message history.
190+
191+
Args:
192+
message (LLMMessage): The message to add.
193+
"""
142194
self._driver.execute_query(
143195
query_=ADD_MESSAGE_QUERY.format(node_label=self._node_label),
144196
parameters_={
@@ -149,6 +201,7 @@ def add_message(self, message: LLMMessage) -> None:
149201
)
150202

151203
def clear(self) -> None:
204+
"""Clear the message history."""
152205
self._driver.execute_query(
153206
query_=CLEAR_SESSION_QUERY.format(node_label=self._node_label),
154207
parameters_={"session_id": self._session_id},

0 commit comments

Comments
 (0)