Update ZepMessageReader and ZepMessageWriter to avoid 404 error (#1844)

* Update ZepMessageReader and ZepMessageWriter to avoid 404 error

* Update ZepMessageReader and ZepMessageWriter to use API Base Path option

* Update ZepMessageReader and ZepMessageWriter to fix API Base Path and avoid 404 error

* Update ZepMessageReader and ZepMessageWriter to use API Base Path option
This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-05-08 11:46:48 -03:00 • committed by GitHub
commit 1a54582b95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 28 additions and 2 deletions

View file

@ -54,6 +54,10 @@ class ZepMessageReaderComponent(BaseMemoryComponent):
"info": "Limit of search results.", "info": "Limit of search results.",
"advanced": True, "advanced": True,
}, },
"api_base_path": {
"display_name": "API Base Path",
"options": ["api/v1", "api/v2"],
},
} }
def get_messages(self, **kwargs) -> list[Record]: def get_messages(self, **kwargs) -> list[Record]:
@ -108,6 +112,7 @@ class ZepMessageReaderComponent(BaseMemoryComponent):
def build( def build(
self, self,
session_id: Text, session_id: Text,
api_base_path: str = "api/v1",
url: Optional[Text] = None, url: Optional[Text] = None,
api_key: Optional[Text] = None, api_key: Optional[Text] = None,
query: Optional[Text] = None, query: Optional[Text] = None,
@ -118,12 +123,21 @@ class ZepMessageReaderComponent(BaseMemoryComponent):
try: try:
from zep_python import ZepClient from zep_python import ZepClient
from zep_python.langchain import ZepChatMessageHistory from zep_python.langchain import ZepChatMessageHistory
# Monkeypatch API_BASE_PATH to
# avoid 404
# This is a workaround for the local Zep instance
# cloud Zep works with v2
import zep_python.zep_client
zep_python.zep_client.API_BASE_PATH = api_base_path
except ImportError: except ImportError:
raise ImportError( raise ImportError(
"Could not import zep-python package. " "Please install it with `pip install zep-python`." "Could not import zep-python package. " "Please install it with `pip install zep-python`."
) )
if url == "": if url == "":
url = None url = None
zep_client = ZepClient(api_url=url, api_key=api_key) zep_client = ZepClient(api_url=url, api_key=api_key)
memory = ZepChatMessageHistory(session_id=session_id, zep_client=zep_client) memory = ZepChatMessageHistory(session_id=session_id, zep_client=zep_client)
records = self.get_messages( records = self.get_messages(

View file

@ -1,5 +1,4 @@
from typing import Optional, TYPE_CHECKING from typing import TYPE_CHECKING, Optional
from langflow.base.memory.memory import BaseMemoryComponent from langflow.base.memory.memory import BaseMemoryComponent
from langflow.field_typing import Text from langflow.field_typing import Text
@ -39,6 +38,10 @@ class ZepMessageWriterComponent(BaseMemoryComponent):
"display_name": "Input Record", "display_name": "Input Record",
"info": "Record to write to Zep.", "info": "Record to write to Zep.",
}, },
"api_base_path": {
"display_name": "API Base Path",
"options": ["api/v1", "api/v2"],
},
} }
def add_message( def add_message(
@ -77,18 +80,27 @@ class ZepMessageWriterComponent(BaseMemoryComponent):
self, self,
input_value: Record, input_value: Record,
session_id: Text, session_id: Text,
api_base_path: str = "api/v1",
url: Optional[Text] = None, url: Optional[Text] = None,
api_key: Optional[Text] = None, api_key: Optional[Text] = None,
) -> Record: ) -> Record:
try: try:
# Monkeypatch API_BASE_PATH to
# avoid 404
# This is a workaround for the local Zep instance
# cloud Zep works with v2
import zep_python.zep_client
from zep_python import ZepClient from zep_python import ZepClient
from zep_python.langchain import ZepChatMessageHistory from zep_python.langchain import ZepChatMessageHistory
zep_python.zep_client.API_BASE_PATH = api_base_path
except ImportError: except ImportError:
raise ImportError( raise ImportError(
"Could not import zep-python package. " "Please install it with `pip install zep-python`." "Could not import zep-python package. " "Please install it with `pip install zep-python`."
) )
if url == "": if url == "":
url = None url = None
zep_client = ZepClient(api_url=url, api_key=api_key) zep_client = ZepClient(api_url=url, api_key=api_key)
memory = ZepChatMessageHistory(session_id=session_id, zep_client=zep_client) memory = ZepChatMessageHistory(session_id=session_id, zep_client=zep_client)
self.add_message(**input_value.data, memory=memory) self.add_message(**input_value.data, memory=memory)