From db3bf8cff76cdf1b1ecb02d50d0a2fcbf0733d94 Mon Sep 17 00:00:00 2001 From: wangxinyu Date: Fri, 25 Sep 2026 19:09:54 +0800 Subject: [PATCH] fix: send session_id in LongMemEval add requests --- evaluation/scripts/utils/client.py | 2 +- .../test_longmemeval_add_api_contract.py | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 tests/evaluation/test_longmemeval_add_api_contract.py diff --git a/evaluation/scripts/utils/client.py b/evaluation/scripts/utils/client.py index 157c3f8ea..e99f3b882 100644 --- a/evaluation/scripts/utils/client.py +++ b/evaluation/scripts/utils/client.py @@ -160,7 +160,7 @@ def add(self, messages, user_id, conv_id, batch_size: int = 9999): "messages": batch_messages, "user_id": user_id, "mem_cube_id": user_id, - "conversation_id": conv_id, + "session_id": conv_id, } ) response = requests.request("POST", url, data=payload, headers=self.headers) diff --git a/tests/evaluation/test_longmemeval_add_api_contract.py b/tests/evaluation/test_longmemeval_add_api_contract.py new file mode 100644 index 000000000..bf5f605fd --- /dev/null +++ b/tests/evaluation/test_longmemeval_add_api_contract.py @@ -0,0 +1,31 @@ +"""Regression test for the LongMemEval add request contract.""" + +import importlib.util +import json + +from pathlib import Path +from unittest.mock import Mock, patch + + +_CLIENT_PATH = Path(__file__).parents[2] / "evaluation/scripts/utils/client.py" +_CLIENT_SPEC = importlib.util.spec_from_file_location("lme_client", _CLIENT_PATH) +assert _CLIENT_SPEC is not None and _CLIENT_SPEC.loader is not None +_CLIENT_MODULE = importlib.util.module_from_spec(_CLIENT_SPEC) +_CLIENT_SPEC.loader.exec_module(_CLIENT_MODULE) + + +def test_memos_add_sends_session_id_to_product_api(monkeypatch): + monkeypatch.setenv("MEMOS_URL", "http://memos") + response = Mock(status_code=200) + response.text = json.dumps({"message": "Memory added successfully", "data": []}) + + with patch.object(_CLIENT_MODULE.requests, "request", return_value=response) as request: + _CLIENT_MODULE.MemosApiClient().add( + messages=[{"role": "user", "content": "hello"}], + user_id="user-1", + conv_id="session-1", + ) + + payload = json.loads(request.call_args.kwargs["data"]) + assert payload["session_id"] == "session-1" + assert "conversation_id" not in payload