mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-20 22:03:52 +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
|
).summary
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def messages(self) -> List[BaseMessage]: # type: ignore
|
def messages(self) -> List[BaseMessage]:
|
||||||
"""Retrieve the messages from Neo4j"""
|
"""Retrieve the messages from Neo4j"""
|
||||||
query = (
|
query = (
|
||||||
f"MATCH (s:`{self._node_label}`)-[:LAST_MESSAGE]->(last_message) "
|
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])
|
messages = messages_from_dict([el["result"] for el in records])
|
||||||
return messages
|
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:
|
def add_message(self, message: BaseMessage) -> None:
|
||||||
"""Append the message to the record in Neo4j"""
|
"""Append the message to the record in Neo4j"""
|
||||||
query = (
|
query = (
|
||||||
|
@ -47,13 +47,20 @@ class RedisChatMessageHistory(BaseChatMessageHistory):
|
|||||||
return self.key_prefix + self.session_id
|
return self.key_prefix + self.session_id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def messages(self) -> List[BaseMessage]: # type: ignore
|
def messages(self) -> List[BaseMessage]:
|
||||||
"""Retrieve the messages from Redis"""
|
"""Retrieve the messages from Redis"""
|
||||||
_items = self.redis_client.lrange(self.key, 0, -1)
|
_items = self.redis_client.lrange(self.key, 0, -1)
|
||||||
items = [json.loads(m.decode("utf-8")) for m in _items[::-1]]
|
items = [json.loads(m.decode("utf-8")) for m in _items[::-1]]
|
||||||
messages = messages_from_dict(items)
|
messages = messages_from_dict(items)
|
||||||
return messages
|
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:
|
def add_message(self, message: BaseMessage) -> None:
|
||||||
"""Append the message to the record in Redis"""
|
"""Append the message to the record in Redis"""
|
||||||
self.redis_client.lpush(self.key, json.dumps(message_to_dict(message)))
|
self.redis_client.lpush(self.key, json.dumps(message_to_dict(message)))
|
||||||
|
Loading…
Reference in New Issue
Block a user