mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 13:23:35 +00:00
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](d5c412b0a9/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>
This commit is contained in:
parent
95cc8e3fc3
commit
32c61b3ece
@ -76,7 +76,7 @@ class Neo4jChatMessageHistory(BaseChatMessageHistory):
|
||||
).summary
|
||||
|
||||
@property
|
||||
def messages(self) -> List[BaseMessage]: # type: ignore
|
||||
def messages(self) -> List[BaseMessage]:
|
||||
"""Retrieve the messages from Neo4j"""
|
||||
query = (
|
||||
f"MATCH (s:`{self._node_label}`)-[:LAST_MESSAGE]->(last_message) "
|
||||
@ -92,6 +92,13 @@ class Neo4jChatMessageHistory(BaseChatMessageHistory):
|
||||
messages = messages_from_dict([el["result"] for el in records])
|
||||
return messages
|
||||
|
||||
@messages.setter
|
||||
def messages(self, messages: List[BaseMessage]) -> None:
|
||||
raise NotImplementedError(
|
||||
"Direct assignment to 'messages' is not allowed."
|
||||
" Use the 'add_messages' instead."
|
||||
)
|
||||
|
||||
def add_message(self, message: BaseMessage) -> None:
|
||||
"""Append the message to the record in Neo4j"""
|
||||
query = (
|
||||
|
@ -47,13 +47,20 @@ class RedisChatMessageHistory(BaseChatMessageHistory):
|
||||
return self.key_prefix + self.session_id
|
||||
|
||||
@property
|
||||
def messages(self) -> List[BaseMessage]: # type: ignore
|
||||
def messages(self) -> List[BaseMessage]:
|
||||
"""Retrieve the messages from Redis"""
|
||||
_items = self.redis_client.lrange(self.key, 0, -1)
|
||||
items = [json.loads(m.decode("utf-8")) for m in _items[::-1]]
|
||||
messages = messages_from_dict(items)
|
||||
return messages
|
||||
|
||||
@messages.setter
|
||||
def messages(self, messages: List[BaseMessage]) -> None:
|
||||
raise NotImplementedError(
|
||||
"Direct assignment to 'messages' is not allowed."
|
||||
" Use the 'add_messages' instead."
|
||||
)
|
||||
|
||||
def add_message(self, message: BaseMessage) -> None:
|
||||
"""Append the message to the record in Redis"""
|
||||
self.redis_client.lpush(self.key, json.dumps(message_to_dict(message)))
|
||||
|
Loading…
Reference in New Issue
Block a user