Remove support for passing string as input in the client.add() (#2749)
This commit is contained in:
@@ -59,7 +59,10 @@ five_days_ago = current_time - timedelta(days=5)
|
|||||||
unix_timestamp = int(five_days_ago.timestamp())
|
unix_timestamp = int(five_days_ago.timestamp())
|
||||||
|
|
||||||
# Add memory with custom timestamp
|
# Add memory with custom timestamp
|
||||||
client.add("I'm travelling to SF", user_id="user1", timestamp=unix_timestamp)
|
messages = [
|
||||||
|
{"role": "user", "content": "I'm travelling to SF"}
|
||||||
|
]
|
||||||
|
client.add(messages, user_id="user1", timestamp=unix_timestamp)
|
||||||
```
|
```
|
||||||
|
|
||||||
```javascript JavaScript
|
```javascript JavaScript
|
||||||
@@ -77,7 +80,10 @@ fiveDaysAgo.setDate(currentTime.getDate() - 5);
|
|||||||
const unixTimestamp = Math.floor(fiveDaysAgo.getTime() / 1000);
|
const unixTimestamp = Math.floor(fiveDaysAgo.getTime() / 1000);
|
||||||
|
|
||||||
// Add memory with custom timestamp
|
// Add memory with custom timestamp
|
||||||
client.add("I'm travelling to SF", { user_id: "user1", timestamp: unixTimestamp })
|
const messages = [
|
||||||
|
{"role": "user", "content": "I'm travelling to SF"}
|
||||||
|
]
|
||||||
|
client.add(messages, { user_id: "user1", timestamp: unixTimestamp })
|
||||||
.then(response => console.log(response))
|
.then(response => console.log(response))
|
||||||
.catch(error => console.error(error));
|
.catch(error => console.error(error));
|
||||||
```
|
```
|
||||||
@@ -119,14 +125,20 @@ For example, to create a memory with a timestamp of January 1, 2023:
|
|||||||
# January 1, 2023 timestamp
|
# January 1, 2023 timestamp
|
||||||
january_2023_timestamp = 1672531200 # Unix timestamp for 2023-01-01 00:00:00 UTC
|
january_2023_timestamp = 1672531200 # Unix timestamp for 2023-01-01 00:00:00 UTC
|
||||||
|
|
||||||
client.add("Important historical information", user_id="user1", timestamp=january_2023_timestamp)
|
messages = [
|
||||||
|
{"role": "user", "content": "I'm travelling to SF"}
|
||||||
|
]
|
||||||
|
client.add(messages, user_id="user1", timestamp=january_2023_timestamp)
|
||||||
```
|
```
|
||||||
|
|
||||||
```javascript JavaScript
|
```javascript JavaScript
|
||||||
// January 1, 2023 timestamp
|
// January 1, 2023 timestamp
|
||||||
const january2023Timestamp = 1672531200; // Unix timestamp for 2023-01-01 00:00:00 UTC
|
const january2023Timestamp = 1672531200; // Unix timestamp for 2023-01-01 00:00:00 UTC
|
||||||
|
|
||||||
client.add("Important historical information", { user_id: "user1", timestamp: january2023Timestamp })
|
const messages = [
|
||||||
|
{"role": "user", "content": "I'm travelling to SF"}
|
||||||
|
]
|
||||||
|
client.add(messages, { user_id: "user1", timestamp: january2023Timestamp })
|
||||||
.then(response => console.log(response))
|
.then(response => console.log(response))
|
||||||
.catch(error => console.error(error));
|
.catch(error => console.error(error));
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -64,7 +64,10 @@ client = AsyncMemoryClient()
|
|||||||
|
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
response = await client.add("I'm travelling to SF", user_id="john")
|
messages = [
|
||||||
|
{"role": "user", "content": "I'm travelling to SF"}
|
||||||
|
]
|
||||||
|
response = await client.add(messages, user_id="john")
|
||||||
print(response)
|
print(response)
|
||||||
|
|
||||||
await main()
|
await main()
|
||||||
@@ -1547,11 +1550,17 @@ Fun fact: You can also delete the memory using the `add()` method by passing a n
|
|||||||
<CodeGroup>
|
<CodeGroup>
|
||||||
|
|
||||||
```python Python
|
```python Python
|
||||||
client.add("Delete all of my food preferences", user_id="alex")
|
messages = [
|
||||||
|
{"role": "user", "content": "Delete all of my food preferences"}
|
||||||
|
]
|
||||||
|
client.add(messages, user_id="alex")
|
||||||
```
|
```
|
||||||
|
|
||||||
```javascript JavaScript
|
```javascript JavaScript
|
||||||
client.add("Delete all of my food preferences", { user_id: "alex" })
|
const messages = [
|
||||||
|
{"role": "user", "content": "Delete all of my food preferences"}
|
||||||
|
]
|
||||||
|
client.add(messages, { user_id: "alex" })
|
||||||
.then(result => console.log(result))
|
.then(result => console.log(result))
|
||||||
.catch(error => console.error(error));
|
.catch(error => console.error(error));
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import logging
|
|||||||
import os
|
import os
|
||||||
import warnings
|
import warnings
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from typing import Any, Dict, List, Optional, Union
|
from typing import Any, Dict, List, Optional
|
||||||
|
|
||||||
import httpx
|
import httpx
|
||||||
import requests
|
import requests
|
||||||
@@ -129,11 +129,11 @@ class MemoryClient:
|
|||||||
raise ValueError(f"Error: {error_message}")
|
raise ValueError(f"Error: {error_message}")
|
||||||
|
|
||||||
@api_error_handler
|
@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.
|
"""Add a new memory.
|
||||||
|
|
||||||
Args:
|
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.
|
**kwargs: Additional parameters such as user_id, agent_id, app_id, metadata, filters.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
@@ -667,7 +667,7 @@ class MemoryClient:
|
|||||||
return response.json()
|
return response.json()
|
||||||
|
|
||||||
def _prepare_payload(
|
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]:
|
) -> Dict[str, Any]:
|
||||||
"""Prepare the payload for API requests.
|
"""Prepare the payload for API requests.
|
||||||
|
|
||||||
@@ -679,9 +679,6 @@ class MemoryClient:
|
|||||||
A dictionary containing the prepared payload.
|
A dictionary containing the prepared payload.
|
||||||
"""
|
"""
|
||||||
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})
|
payload.update({k: v for k, v in kwargs.items() if v is not None})
|
||||||
@@ -798,7 +795,7 @@ class AsyncMemoryClient:
|
|||||||
raise ValueError(f"Error: {error_message}")
|
raise ValueError(f"Error: {error_message}")
|
||||||
|
|
||||||
def _prepare_payload(
|
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]:
|
) -> Dict[str, Any]:
|
||||||
"""Prepare the payload for API requests.
|
"""Prepare the payload for API requests.
|
||||||
|
|
||||||
@@ -810,9 +807,6 @@ class AsyncMemoryClient:
|
|||||||
A dictionary containing the prepared payload.
|
A dictionary containing the prepared payload.
|
||||||
"""
|
"""
|
||||||
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})
|
payload.update({k: v for k, v in kwargs.items() if v is not None})
|
||||||
@@ -850,7 +844,7 @@ class AsyncMemoryClient:
|
|||||||
await self.async_client.aclose()
|
await self.async_client.aclose()
|
||||||
|
|
||||||
@api_error_handler
|
@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)
|
kwargs = self._prepare_params(kwargs)
|
||||||
if kwargs.get("output_format") != "v1.1":
|
if kwargs.get("output_format") != "v1.1":
|
||||||
kwargs["output_format"] = "v1.1"
|
kwargs["output_format"] = "v1.1"
|
||||||
|
|||||||
Reference in New Issue
Block a user