Skip to content

Commit 32c61b3

Browse files
dontnet-wuenzebaskaryanccurme
authored
community[patch]: chat message history mypy fixes #17048 (#20114)
Relates [#17048] Description : Applied fix to redis and neo4j file. Error was : `Cannot override writeable attribute with read-only property` fix with the same solution of [[langchain/libs/community/langchain_community/chat_message_histories/elasticsearch.py](https://github.com/langchain-ai/langchain/blob/d5c412b0a9a8af02754de60f93d93c3efa33ccdb/libs/community/langchain_community/chat_message_histories/elasticsearch.py#L170-L175)] --------- Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com> Co-authored-by: Chester Curme <chester.curme@gmail.com>
1 parent 95cc8e3 commit 32c61b3

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

libs/community/langchain_community/chat_message_histories/neo4j.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def __init__(
7676
).summary
7777

7878
@property
79-
def messages(self) -> List[BaseMessage]: # type: ignore
79+
def messages(self) -> List[BaseMessage]:
8080
"""Retrieve the messages from Neo4j"""
8181
query = (
8282
f"MATCH (s:`{self._node_label}`)-[:LAST_MESSAGE]->(last_message) "
@@ -92,6 +92,13 @@ def messages(self) -> List[BaseMessage]: # type: ignore
9292
messages = messages_from_dict([el["result"] for el in records])
9393
return messages
9494

95+
@messages.setter
96+
def messages(self, messages: List[BaseMessage]) -> None:
97+
raise NotImplementedError(
98+
"Direct assignment to 'messages' is not allowed."
99+
" Use the 'add_messages' instead."
100+
)
101+
95102
def add_message(self, message: BaseMessage) -> None:
96103
"""Append the message to the record in Neo4j"""
97104
query = (

libs/community/langchain_community/chat_message_histories/redis.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,20 @@ def key(self) -> str:
4747
return self.key_prefix + self.session_id
4848

4949
@property
50-
def messages(self) -> List[BaseMessage]: # type: ignore
50+
def messages(self) -> List[BaseMessage]:
5151
"""Retrieve the messages from Redis"""
5252
_items = self.redis_client.lrange(self.key, 0, -1)
5353
items = [json.loads(m.decode("utf-8")) for m in _items[::-1]]
5454
messages = messages_from_dict(items)
5555
return messages
5656

57+
@messages.setter
58+
def messages(self, messages: List[BaseMessage]) -> None:
59+
raise NotImplementedError(
60+
"Direct assignment to 'messages' is not allowed."
61+
" Use the 'add_messages' instead."
62+
)
63+
5764
def add_message(self, message: BaseMessage) -> None:
5865
"""Append the message to the record in Redis"""
5966
self.redis_client.lpush(self.key, json.dumps(message_to_dict(message)))

0 commit comments

Comments
 (0)