[fix] Fix the external write memory API

This commit is contained in:
lanceyq
2026-03-04 17:26:30 +08:00
parent 37325e9802
commit 53dbe2f436
2 changed files with 10 additions and 3 deletions

View File

@@ -39,7 +39,7 @@ async def write_memory_api_service(
Stores memory content for the specified end user using the Memory API Service. Stores memory content for the specified end user using the Memory API Service.
""" """
logger.info(f"Memory write request - end_user_id: {payload.end_user_id}, tenant_id: {api_key_auth.tenant_id}") logger.info(f"Memory write request - end_user_id: {payload.end_user_id}, workspace_id: {api_key_auth.workspace_id}")
memory_api_service = MemoryAPIService(db) memory_api_service = MemoryAPIService(db)

View File

@@ -140,9 +140,11 @@ class MemoryAPIService:
try: try:
# Delegate to MemoryAgentService # Delegate to MemoryAgentService
# Convert string message to list[dict] format expected by MemoryAgentService
messages = message if isinstance(message, list) else [{"role": "user", "content": message}]
result = await MemoryAgentService().write_memory( result = await MemoryAgentService().write_memory(
end_user_id=end_user_id, end_user_id=end_user_id,
messages=message, messages=messages,
config_id=config_id, config_id=config_id,
db=self.db, db=self.db,
storage_type=storage_type, storage_type=storage_type,
@@ -151,8 +153,13 @@ class MemoryAPIService:
logger.info(f"Memory write successful for end_user: {end_user_id}") logger.info(f"Memory write successful for end_user: {end_user_id}")
# result may be a string "success" or a dict with a "status" key
if isinstance(result, dict):
status = result.get("status", "success")
else:
status = result if isinstance(result, str) else "success"
return { return {
"status": "success" if result == "success" else result, "status": status,
"end_user_id": end_user_id "end_user_id": end_user_id
} }