diff --git a/poetry.lock b/poetry.lock index 829384794..550d102eb 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6416,4 +6416,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "e3a7355edeae80f8330e6e71fd5acbc446fd287397cf7d8d027ab6b450569f28" +content-hash = "4ed469589797b717f4b878f219dfe7c83d21d45d6947617693b6d2feb55cee3a" diff --git a/pyproject.toml b/pyproject.toml index a59859d0b..9ae98e91d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,6 +61,7 @@ faiss-cpu = "^1.7.4" anthropic = "^0.2.9" orjson = "^3.9.0" multiprocess = "^0.70.14" +cachetools = "^5.3.1" [tool.poetry.group.dev.dependencies] diff --git a/src/backend/langflow/api/v1/chat.py b/src/backend/langflow/api/v1/chat.py index 5943f6f78..0eae10c64 100644 --- a/src/backend/langflow/api/v1/chat.py +++ b/src/backend/langflow/api/v1/chat.py @@ -12,10 +12,11 @@ from langflow.api.v1.schemas import BuiltResponse, InitResponse from langflow.chat.manager import ChatManager from langflow.graph.graph.base import Graph from langflow.utils.logger import logger +from cachetools import LRUCache router = APIRouter(tags=["Chat"]) chat_manager = ChatManager() -flow_data_store = {} +flow_data_store = LRUCache(maxsize=10) @router.websocket("/chat/{client_id}") @@ -38,7 +39,8 @@ async def init_build(graph_data: dict): try: flow_id = graph_data.get("id") - + if flow_id is None: + raise ValueError("No ID provided") flow_data_store[flow_id] = graph_data return InitResponse(flowId=flow_id)