Remove support for passing string as input in the client.add() (#2749)

This commit is contained in:
Dev Khant
2025-05-22 10:16:32 +05:30
committed by GitHub
parent bad6e12972
commit 097959d5cc
3 changed files with 36 additions and 21 deletions

View File

@@ -3,7 +3,7 @@ import logging
import os
import warnings
from functools import wraps
from typing import Any, Dict, List, Optional, Union
from typing import Any, Dict, List, Optional
import httpx
import requests
@@ -129,11 +129,11 @@ class MemoryClient:
raise ValueError(f"Error: {error_message}")
@api_error_handler
def add(self, messages: Union[str, List[Dict[str, str]]], **kwargs) -> Dict[str, Any]:
def add(self, messages: List[Dict[str, str]], **kwargs) -> Dict[str, Any]:
"""Add a new memory.
Args:
messages: Either a string message or a list of message dictionaries.
messages: A list of message dictionaries.
**kwargs: Additional parameters such as user_id, agent_id, app_id, metadata, filters.
Returns:
@@ -667,7 +667,7 @@ class MemoryClient:
return response.json()
def _prepare_payload(
self, messages: Union[str, List[Dict[str, str]], None], kwargs: Dict[str, Any]
self, messages: List[Dict[str, str]], kwargs: Dict[str, Any]
) -> Dict[str, Any]:
"""Prepare the payload for API requests.
@@ -679,10 +679,7 @@ class MemoryClient:
A dictionary containing the prepared payload.
"""
payload = {}
if isinstance(messages, str):
payload["messages"] = [{"role": "user", "content": messages}]
elif isinstance(messages, list):
payload["messages"] = messages
payload["messages"] = messages
payload.update({k: v for k, v in kwargs.items() if v is not None})
return payload
@@ -798,7 +795,7 @@ class AsyncMemoryClient:
raise ValueError(f"Error: {error_message}")
def _prepare_payload(
self, messages: Union[str, List[Dict[str, str]], None], kwargs: Dict[str, Any]
self, messages: List[Dict[str, str]], kwargs: Dict[str, Any]
) -> Dict[str, Any]:
"""Prepare the payload for API requests.
@@ -810,10 +807,7 @@ class AsyncMemoryClient:
A dictionary containing the prepared payload.
"""
payload = {}
if isinstance(messages, str):
payload["messages"] = [{"role": "user", "content": messages}]
elif isinstance(messages, list):
payload["messages"] = messages
payload["messages"] = messages
payload.update({k: v for k, v in kwargs.items() if v is not None})
return payload
@@ -850,7 +844,7 @@ class AsyncMemoryClient:
await self.async_client.aclose()
@api_error_handler
async def add(self, messages: Union[str, List[Dict[str, str]]], **kwargs) -> Dict[str, Any]:
async def add(self, messages: List[Dict[str, str]], **kwargs) -> Dict[str, Any]:
kwargs = self._prepare_params(kwargs)
if kwargs.get("output_format") != "v1.1":
kwargs["output_format"] = "v1.1"