arcade-mcp/toolkits/microsoft/evals/outlook_calendar/eval_get_event.py
2025-05-09 13:34:40 -08:00

53 lines
1.5 KiB
Python

from arcade.sdk import ToolCatalog
from arcade.sdk.eval import (
BinaryCritic,
EvalRubric,
EvalSuite,
ExpectedToolCall,
tool_eval,
)
from arcade_microsoft.outlook_calendar import get_event
from evals.outlook_calendar.additional_messages import get_event_additional_messages
# Evaluation rubric
rubric = EvalRubric(
fail_threshold=0.9,
warn_threshold=0.95,
)
catalog = ToolCatalog()
catalog.add_tool(get_event, "Microsoft")
@tool_eval()
def outlook_calendar_get_event_eval_suite() -> EvalSuite:
"""Create an evaluation suite for Outlook Calendar get event tool."""
suite = EvalSuite(
name="Outlook Calendar Get Event Evaluation",
system_message=(
"You are an AI that has access to tools to view and manage calendar events. "
"The current time date and time is April 25, 2025, 5:18 PM PST."
),
catalog=catalog,
rubric=rubric,
)
suite.add_case(
name="Get event by id after listing events",
user_message="tell me more about the first event",
expected_tool_calls=[
ExpectedToolCall(
func=get_event,
args={
"event_id": "AAMkADAwATM0MDAAMi04Y2Y1LTQ3MTEALTAwAi0wMAoARgAAAyXxSd3UxTpCkDpGouEg0JMBAFuxokOLZRtDncM4", # noqa: E501
},
)
],
critics=[
BinaryCritic(critic_field="event_id", weight=1.0),
],
additional_messages=get_event_additional_messages,
)
return suite