Skip to content

Commit e52b50b

Browse files
author
Dylan Huang
committed
done
1 parent 924b57d commit e52b50b

File tree

2 files changed

+31
-12
lines changed

2 files changed

+31
-12
lines changed

eval_protocol/pytest/default_pydantic_ai_rollout_processor.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from collections.abc import Callable
55
import logging
66
import time
7+
from pydantic_ai.toolsets import FunctionToolset
78
from pydantic_ai.usage import UsageLimits
89
from typing_extensions import override
910
from eval_protocol.models import EvaluationRow, Message
@@ -53,18 +54,19 @@ async def process_row(row: EvaluationRow) -> EvaluationRow:
5354
start_time = time.perf_counter()
5455

5556
tools = []
56-
# for _, tool in agent._function_tools.items():
57-
# tool_dict = {
58-
# "type": "function",
59-
# "function": {
60-
# "name": tool.name,
61-
# "parameters": tool.function_schema.json_schema,
62-
# },
63-
# }
64-
# if tool.description:
65-
# tool_dict["function"]["description"] = tool.description
66-
67-
# tools.append(tool_dict)
57+
for toolset in agent.toolsets:
58+
if isinstance(toolset, FunctionToolset):
59+
for _, tool in toolset.tools.items():
60+
tool_dict = {
61+
"type": "function",
62+
"function": {
63+
"name": tool.name,
64+
"parameters": tool.function_schema.json_schema,
65+
},
66+
}
67+
if tool.description:
68+
tool_dict["function"]["description"] = tool.description
69+
tools.append(tool_dict)
6870
row.tools = tools
6971

7072
model_messages = [self.convert_ep_message_to_pyd_message(m, row) for m in row.messages]

tests/chinook/pydantic/test_pydantic_chinook.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,23 @@ async def test_simple_query(row: EvaluationRow) -> EvaluationRow:
4444
"""
4545
Super simple query for the Chinook database
4646
"""
47+
expected_tools = [
48+
{
49+
"type": "function",
50+
"function": {
51+
"name": "execute_sql",
52+
"parameters": {
53+
"additionalProperties": False,
54+
"properties": {"query": {"type": "string"}},
55+
"required": ["query"],
56+
"type": "object",
57+
},
58+
},
59+
}
60+
]
61+
assert hasattr(row, "tools"), "Row missing 'tools' attribute"
62+
assert row.tools == expected_tools, f"Tools validation failed. Expected: {expected_tools}, Got: {row.tools}"
63+
4764
last_assistant_message = row.last_assistant_message()
4865
if last_assistant_message is None:
4966
row.evaluation_result = EvaluateResult(

0 commit comments

Comments
 (0)