Moved gmail toolkit to google (#44)
This commit is contained in:
parent
739cc957f1
commit
6911a5982b
1 changed files with 0 additions and 133 deletions
|
|
@ -1,133 +0,0 @@
|
|||
from arcade_gmail.tools.gmail import (
|
||||
DateRange,
|
||||
get_emails,
|
||||
search_emails_by_header,
|
||||
write_draft,
|
||||
)
|
||||
|
||||
from arcade.sdk.eval import (
|
||||
BinaryCritic,
|
||||
EvalRubric,
|
||||
EvalSuite,
|
||||
ExpectedToolCall,
|
||||
NumericCritic,
|
||||
SimilarityCritic,
|
||||
tool_eval,
|
||||
)
|
||||
|
||||
# Evaluation rubric
|
||||
rubric = EvalRubric(
|
||||
fail_threshold=0.7,
|
||||
warn_threshold=0.9,
|
||||
)
|
||||
|
||||
|
||||
@tool_eval("gpt-3.5-turbo")
|
||||
def gmail_eval_suite():
|
||||
suite = EvalSuite(
|
||||
name="Gmail Tools Evaluation",
|
||||
system="You are an AI assistant with access to Gmail tools. Use them to help the user with their email-related tasks.",
|
||||
)
|
||||
|
||||
# Register the Gmail tools
|
||||
suite.register_tool(write_draft)
|
||||
suite.register_tool(search_emails_by_header)
|
||||
suite.register_tool(get_emails)
|
||||
|
||||
# Write Draft Scenarios
|
||||
suite.add_case(
|
||||
name="Write Draft with specified recipient, subject, and body",
|
||||
user_message="Draft and email to john@example.com asking if we can meet tomorrow at 2 PM",
|
||||
expected_tool_calls=[
|
||||
ExpectedToolCall(
|
||||
name="WriteDraft",
|
||||
args={
|
||||
"recipient": "john@example.com",
|
||||
"subject": "Meeting Tomorrow",
|
||||
"body": "Hi John, Can we meet tomorrow at 2 PM? Thanks, Alice",
|
||||
},
|
||||
)
|
||||
],
|
||||
rubric=rubric,
|
||||
critics=[
|
||||
BinaryCritic(critic_field="recipient", weight=0.5),
|
||||
SimilarityCritic(critic_field="subject", weight=0.2),
|
||||
SimilarityCritic(critic_field="body", weight=0.3),
|
||||
],
|
||||
)
|
||||
|
||||
# Search Emails by Header Scenarios
|
||||
suite.add_case(
|
||||
name="Search for emails from a specific sender and time period",
|
||||
user_message="Find emails from alice@example.com sent last week",
|
||||
expected_tool_calls=[
|
||||
ExpectedToolCall(
|
||||
name="SearchEmailsByHeader",
|
||||
args={
|
||||
"sender": "alice@example.com",
|
||||
"date_range": DateRange.LAST_7_DAYS.value,
|
||||
"limit": 25,
|
||||
},
|
||||
)
|
||||
],
|
||||
rubric=rubric,
|
||||
critics=[
|
||||
BinaryCritic(critic_field="sender", weight=0.5),
|
||||
BinaryCritic(critic_field="date_range", weight=0.4),
|
||||
NumericCritic(critic_field="limit", weight=0.1, value_range=(1, 100)),
|
||||
],
|
||||
)
|
||||
|
||||
suite.add_case(
|
||||
name="Search by subject and date range",
|
||||
user_message="Search for emails with 'Urgent' in the subject from the last 30 days",
|
||||
expected_tool_calls=[
|
||||
ExpectedToolCall(
|
||||
name="SearchEmailsByHeader",
|
||||
args={
|
||||
"subject": "Urgent",
|
||||
"date_range": DateRange.LAST_30_DAYS.value,
|
||||
"limit": 25,
|
||||
},
|
||||
)
|
||||
],
|
||||
rubric=rubric,
|
||||
critics=[
|
||||
SimilarityCritic(critic_field="subject", weight=0.4),
|
||||
BinaryCritic(critic_field="date_range", weight=0.4),
|
||||
NumericCritic(critic_field="limit", weight=0.2, value_range=(1, 100)),
|
||||
],
|
||||
)
|
||||
|
||||
suite.extend_case(
|
||||
name="Followup search by subject and date range",
|
||||
user_message="show me more of those",
|
||||
expected_tool_calls=[
|
||||
ExpectedToolCall(
|
||||
name="SearchEmailsByHeader",
|
||||
args={
|
||||
"subject": "Urgent",
|
||||
"date_range": DateRange.LAST_30_DAYS.value,
|
||||
"limit": 50,
|
||||
},
|
||||
)
|
||||
],
|
||||
)
|
||||
|
||||
suite.add_case(
|
||||
name="Retrieve specific number of emails",
|
||||
user_message="Retrieve the last 10 emails in my inbox",
|
||||
expected_tool_calls=[
|
||||
ExpectedToolCall(
|
||||
name="GetEmails",
|
||||
args={"n_emails": 10},
|
||||
)
|
||||
],
|
||||
rubric=rubric,
|
||||
critics=[
|
||||
BinaryCritic(critic_field="n_emails", weight=0.8),
|
||||
NumericCritic(critic_field="n_emails", weight=0.2, value_range=(1, 20)),
|
||||
],
|
||||
)
|
||||
|
||||
return suite
|
||||
Loading…
Reference in a new issue