feat: rename function to tool in sdk (#2288)

Co-authored-by: Caren Thomas <caren@caren-mac.local>
This commit is contained in:
cthomas
2024-12-19 12:12:58 -08:00
committed by GitHub
parent 5f2ba44e93
commit 7d5be32a59
16 changed files with 202 additions and 164 deletions

View File

@@ -10,8 +10,8 @@ from letta.constants import BASE_MEMORY_TOOLS, BASE_TOOLS
from letta.schemas.block import CreateBlock
from letta.schemas.enums import MessageRole
from letta.schemas.letta_message import (
FunctionCallMessage,
FunctionReturn,
ToolCallMessage,
ToolReturnMessage,
InternalMonologue,
LettaMessage,
SystemMessage,
@@ -677,14 +677,14 @@ def _test_get_messages_letta_format(
print(f"Assistant Message at {i}: {type(letta_message)}")
if reverse:
# Reverse handling: FunctionCallMessages come first
# Reverse handling: ToolCallMessage come first
if message.tool_calls:
for tool_call in message.tool_calls:
try:
json.loads(tool_call.function.arguments)
except json.JSONDecodeError:
warnings.warn(f"Invalid JSON in function arguments: {tool_call.function.arguments}")
assert isinstance(letta_message, FunctionCallMessage)
assert isinstance(letta_message, ToolCallMessage)
letta_message_index += 1
if letta_message_index >= len(letta_messages):
break
@@ -710,9 +710,9 @@ def _test_get_messages_letta_format(
json.loads(tool_call.function.arguments)
except json.JSONDecodeError:
warnings.warn(f"Invalid JSON in function arguments: {tool_call.function.arguments}")
assert isinstance(letta_message, FunctionCallMessage)
assert tool_call.function.name == letta_message.function_call.name
assert tool_call.function.arguments == letta_message.function_call.arguments
assert isinstance(letta_message, ToolCallMessage)
assert tool_call.function.name == letta_message.tool_call.name
assert tool_call.function.arguments == letta_message.tool_call.arguments
letta_message_index += 1
if letta_message_index >= len(letta_messages):
break
@@ -729,8 +729,8 @@ def _test_get_messages_letta_format(
letta_message_index += 1
elif message.role == MessageRole.tool:
assert isinstance(letta_message, FunctionReturn)
assert message.text == letta_message.function_return
assert isinstance(letta_message, ToolReturnMessage)
assert message.text == letta_message.tool_return
letta_message_index += 1
else:
@@ -802,7 +802,7 @@ def test_tool_run(server, mock_e2b_api_key_none, user, agent_id):
)
print(result)
assert result.status == "success"
assert result.function_return == "Ingested message Hello, world!", result.function_return
assert result.tool_return == "Ingested message Hello, world!", result.tool_return
assert not result.stdout
assert not result.stderr
@@ -815,7 +815,7 @@ def test_tool_run(server, mock_e2b_api_key_none, user, agent_id):
)
print(result)
assert result.status == "success"
assert result.function_return == "Ingested message Well well well", result.function_return
assert result.tool_return == "Ingested message Well well well", result.tool_return
assert not result.stdout
assert not result.stderr
@@ -828,8 +828,8 @@ def test_tool_run(server, mock_e2b_api_key_none, user, agent_id):
)
print(result)
assert result.status == "error"
assert "Error" in result.function_return, result.function_return
assert "missing 1 required positional argument" in result.function_return, result.function_return
assert "Error" in result.tool_return, result.tool_return
assert "missing 1 required positional argument" in result.tool_return, result.tool_return
assert not result.stdout
assert result.stderr
assert "missing 1 required positional argument" in result.stderr[0]
@@ -844,7 +844,7 @@ def test_tool_run(server, mock_e2b_api_key_none, user, agent_id):
)
print(result)
assert result.status == "success"
assert result.function_return == "Ingested message Well well well", result.function_return
assert result.tool_return == "Ingested message Well well well", result.tool_return
assert result.stdout
assert "I'm a distractor" in result.stdout[0]
assert not result.stderr
@@ -859,7 +859,7 @@ def test_tool_run(server, mock_e2b_api_key_none, user, agent_id):
)
print(result)
assert result.status == "success"
assert result.function_return == "Ingested message Well well well", result.function_return
assert result.tool_return == "Ingested message Well well well", result.tool_return
assert result.stdout
assert "I'm a distractor" in result.stdout[0]
assert not result.stderr
@@ -874,7 +874,7 @@ def test_tool_run(server, mock_e2b_api_key_none, user, agent_id):
)
print(result)
assert result.status == "success"
assert result.function_return == str(None), result.function_return
assert result.tool_return == str(None), result.tool_return
assert result.stdout
assert "I'm a distractor" in result.stdout[0]
assert not result.stderr