mirror of
https://github.com/katanemo/plano.git
synced 2026-06-17 15:25:17 +02:00
722 lines
64 KiB
ReStructuredText
722 lines
64 KiB
ReStructuredText
@model_server_endpoint = http://localhost:51000
|
|
@archfc_endpoint = http://localhost:5670
|
|
|
|
|
|
### Scenario: Single-Turn. Check for single required parameter
|
|
### Tools Used: apply_loan and check_account_balance
|
|
### Expected output(s): "content": "{\"required_functions\": [\"check_account_balance\"], \"clarification\": \"Could you please provide me with your account identifier?\"}",
|
|
### Notes: Tested 10 times. 9/10 times language is consistent and precise. The assistant asks for the missing parameter in a single-turn in the right format
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to check for my account balance"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Single-Turn. Check for all 3 required parameters.
|
|
### Tools Used: apply_loan and check_account_balance
|
|
### Expected output(s): "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please provide me with the loan amount, the term duration in months, and your credit score?\"}",
|
|
### Notes: Tested 10 times. 10/10 all required parameters were asked. 8/10 times the language was consistent and precise. 2/10 the language was to abrupt and not clear and in those turns not all the required parameters were asked for.
|
|
### Status: Needs Work
|
|
### Tested By: Salman Paracha
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "want to apply for a loan"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
### Scenario: Multi-Turn(2) Chat History Context.
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance
|
|
### Expected output(s): "content": "{\"response\": \"You're welcome! If you need any more information, feel free to ask.\"}",
|
|
### Notes: Tested 10 times. Worked every time. The assistant was able to keep track of the chat history and provide the right function call based on the user query.
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"get_stock_price\", \"description\": \"Get the current stock price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"symbol\": {\"type\": \"str\", \"description\": \"The stock symbol\"}}, \"required\": [\"symbol\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "can you check the stock price for Amazon?"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"AMZN\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'get_stock_price', 'result': '$247.66'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"The current stock price for AMZN is $247.66.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "what about Apple"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"AAPL\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'get_stock_price', 'result': '$196.66'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"The current stock price for AAPL is $196.66.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Thanks"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Multi-Turn (5) Chat History Context.
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance
|
|
### Expected output(s): "content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"ORCL\"}}]}",
|
|
### Notes: Tested 10 times. The assistant was able to keep track of the chat history and provide the right function call based on the user query.
|
|
### Tested By: Salman Paracha
|
|
### Status: Approved
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"get_stock_price\", \"description\": \"Get the current stock price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"symbol\": {\"type\": \"str\", \"description\": \"The stock symbol\"}}, \"required\": [\"symbol\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "can you check the stock price for Amazon?"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"AMZN\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'get_stock_price', 'result': '$247.66'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"The current stock price for AMZN is $247.66.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "what about Apple"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"AAPL\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'get_stock_price', 'result': '$196.66'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"The current stock price for AAPL is $196.66.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "How about Toyota"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"TM\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'get_stock_price', 'result': '$24.66'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"The current stock price for TM is $196.66.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "How about Nike"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"get_stock_price\", \"arguments\": {\"symbol\": \"NKE\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'get_stock_price', 'result': '$102.66'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"The current stock price for NKE is $102.66.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "and what about Oracle"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Multi-Turn(2) Progressive Information Disclosure.
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance
|
|
### Expected output(s): "content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please confirm the term duration and your credit score?\"}",
|
|
### Notes: Tested 10 times. Worked every time. The assistant was able to keep track of the chat history and provide the right function call based on the user query.
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"get_stock_price\", \"description\": \"Get the current stock price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"symbol\": {\"type\": \"str\", \"description\": \"The stock symbol\"}}, \"required\": [\"symbol\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account number or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to apply for a loan"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please provide me with the amount you want to loan, the term duration in months, and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "$5000"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please confirm the term duration and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "actually make the loan for $6000"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Multi-Turn(5) Progressive Information Disclosure.
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance
|
|
### Expected output(s): "content": "{\"response\": \"Have a great day\"}",
|
|
### Notes: Tested 10 times. Worked every time. The assistant was able to keep track of the chat history and provide the right function call based on the user query.
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to apply for a loan"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please provide me with the amount you want to loan, the term duration in months, and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "$5000"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please provide me with the term duration in months and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "18 months"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please provide me with your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "700"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"apply_loan\", \"arguments\": {\"amount\": 5000, \"term_months\": 18, \"credit_score\": 700}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'apply_loan', 'approved': 'Done'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "your loan has been approved"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Thanks"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Multi-Turn Progressive Information Disclosure with multiple intent in query.
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance
|
|
### Tested By: Salman Paracha
|
|
### Expected output(s): "content": "{\"tool_calls\": [{\"name\": \"apply_loan\", \"arguments\": {\"amount\": 6000, \"term_months\": 18, \"credit_score\": 700}}]}",
|
|
### Notes: The assistant doesn't engage in gathering information for the second function call. The assistant should ask for the missing parameter for the second function call.
|
|
### Status: Rejected
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to apply for a loan and check my account balance"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\", \"check_account_balance\"], \"clarification\": \"Could you please provide me with the amount you want to borrow, the term of the loan in months, and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "amount $5000, 18 months term and credit score of 780"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"apply_loan\", \"arguments\": {\"amount\": 5000, \"term_months\": 18, \"credit_score\": 700}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'apply_loan', 'result': 'Status: Ok'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"Status: Ok. You have sucessfully applied for the loan\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Ok thanks"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
### Scenario: Multi-Turn(3) Progressive Information Disclosure; Changing parameter values for single function call.
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance
|
|
### Expected output(s): "content": "{\"tool_calls\": [{\"name\": \"apply_loan\", \"arguments\": {\"amount\": 6000, \"term_months\": 18, \"credit_score\": 700}}]}",
|
|
### Notes: Tested 10 times. Worked every time. The assistant was able to keep track of the chat history and provide the right function call based on the user query.
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"get_stock_price\", \"description\": \"Get the current stock price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"symbol\": {\"type\": \"str\", \"description\": \"The stock symbol\"}}, \"required\": [\"symbol\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to apply for a loan"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please provide me with the amount you want to loan, the term duration in months, and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "$5000"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Could you please confirm the term duration and your credit score?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "actually make the loan for $6000"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Please confirm the term duration and your credit score.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "for 18 months"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"apply_loan\"], \"clarification\": \"Please confirm your credit score.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "700"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Single Turn Ten Required Parameters;
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance, submit_mortgage_application
|
|
### Expected output(s): "{\"required_functions\": [\"submit_mortgage_application\"], \"clarification\": \"Could you please provide me with your full name, the address of the property, the total price of the property, the down payment amount, the loan term in years, the preferred interest rate, your annual income, your credit score, your employment status, and your existing debt obligations?\"}",
|
|
### Notes: The assistant asked for all the missing required parameters
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"get_stock_price\", \"description\": \"Get the current stock price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"symbol\": {\"type\": \"str\", \"description\": \"The stock symbol\"}}, \"required\": [\"symbol\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n{\"name\": \"submit_mortgage_application\", \"description\": \"Submit an application for a mortgage loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"applicant_name\": {\"type\": \"str\", \"description\": \"Full name of the applicant\"}, \"property_address\": {\"type\": \"str\", \"description\": \"Address of the property\"}, \"property_price\": {\"type\": \"int\", \"description\": \"Total price of the property\"}, \"down_payment\": {\"type\": \"int\", \"description\": \"Down payment amount\"}, \"loan_term_years\": {\"type\": \"int\", \"description\": \"Loan term in years\"}, \"interest_rate\": {\"type\": \"int\", \"description\": \"Preferred interest rate\"}, \"applicant_income\": {\"type\": \"int\", \"description\": \"Annual income of applicant\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}, \"employment_status\": {\"type\": \"str\", \"description\": \"Employment status (employed/self-employed/unemployed)\"}, \"existing_debt\": {\"type\": \"int\", \"description\": \"Total existing debt obligations\"}}, \"required\": [\"applicant_name\", \"property_address\", \"property_price\", \"down_payment\", \"loan_term_years\", \"interest_rate\", \"applicant_income\", \"credit_score\", \"employment_status\", \"existing_debt\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to submit a mortgage application"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
### Scenario: Progressive Information Disclosure Ten required parameters;
|
|
### Tools Used: apply_loan, get_stock_price and check_account_balance, submit_mortgage_application
|
|
### Expected output(s): "{\"required_functions\": [\"submit_mortgage_application\"], \"clarification\": \"Could you please provide me with your full name, the address of the property, the total price of the property, the down payment amount, the loan term in years, the preferred interest rate, your annual income, your credit score, your employment status, and your existing debt obligations?\"}",
|
|
### Notes: 8/10 times the remaining required parameters are hallucinated
|
|
### Status: Needs Work
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"get_stock_price\", \"description\": \"Get the current stock price\", \"parameters\": {\"type\": \"object\", \"properties\": {\"symbol\": {\"type\": \"str\", \"description\": \"The stock symbol\"}}, \"required\": [\"symbol\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\", \"description\": \"Loan amount in USD\"}, \"term_months\": {\"type\": \"int\", \"description\": \"Term duration in months\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check balance of a financial account\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\", \"description\": \"User's account int or identifier\"}}, \"required\": [\"account_id\"]}}\n{\"name\": \"submit_mortgage_application\", \"description\": \"Submit an application for a mortgage loan\", \"parameters\": {\"type\": \"object\", \"properties\": {\"applicant_name\": {\"type\": \"str\", \"description\": \"Full name of the applicant\"}, \"property_address\": {\"type\": \"str\", \"description\": \"Address of the property\"}, \"property_price\": {\"type\": \"int\", \"description\": \"Total price of the property\"}, \"down_payment\": {\"type\": \"int\", \"description\": \"Down payment amount\"}, \"loan_term_years\": {\"type\": \"int\", \"description\": \"Loan term in years\"}, \"interest_rate\": {\"type\": \"int\", \"description\": \"Preferred interest rate\"}, \"applicant_income\": {\"type\": \"int\", \"description\": \"Annual income of applicant\"}, \"credit_score\": {\"type\": \"int\", \"description\": \"Applicant's credit score\"}, \"employment_status\": {\"type\": \"str\", \"description\": \"Employment status (employed/self-employed/unemployed)\"}, \"existing_debt\": {\"type\": \"int\", \"description\": \"Total existing debt obligations\"}}, \"required\": [\"applicant_name\", \"property_address\", \"property_price\", \"down_payment\", \"loan_term_years\", \"interest_rate\", \"applicant_income\", \"credit_score\", \"employment_status\", \"existing_debt\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to submit a mortgage application"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"submit_mortgage_application\"], \"clarification\": \"Could you please provide me with your name, the address of the property you want to purchase, the total price of the property, the down payment amount, the loan term in years, the preferred interest rate, your annual income, your credit score, your employment status, and your existing debt obligations?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "John Doe, 123 Main St, price of the house is $500000, down payment $100000, and term 30 years"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
### Scenario: Context Swtich Between Functions. Start with one function, move to another and complete request
|
|
### Tools Used: 15 (order_food, book_flight, schedule_meeting, reserve_hotel, rent_car, set_reminder, send_email, buy_movie_tickets, create_calendar_event, apply_loan, get_stock_price, check_account_balance, submit_mortgage_application, apply_credit_card, order_groceries)
|
|
### Expected output(s): "content": "{\"tool_calls\": [{\"name\": \"order_food\", \"arguments\": {\"delivery_address\": \"13576 NE 203rd CT, Woodinville, WA 98072\", \"order_items\": [\"Cheeze pizza\"], \"payment_method\": \"Credit card\"}}]}",
|
|
### Notes: The assistant asked for all the missing required parameters and kept track of the chat history
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"book_flight\", \"description\": \"Book a flight between two cities on a given date.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"departure_city\": {\"type\": \"str\", \"description\": \"City of departure\"}, \"arrival_city\": {\"type\": \"str\", \"description\": \"Destination city\"}, \"departure_date\": {\"type\": \"str\", \"description\": \"Date of departure\"}, \"passenger_count\": {\"type\": \"int\", \"description\": \"Number of passengers\"}}, \"required\": [\"departure_city\", \"arrival_city\", \"departure_date\", \"passenger_count\"]}}\n{\"name\": \"order_food\", \"description\": \"Order food delivery from a restaurant.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"restaurant_name\": {\"type\": \"str\", \"description\": \"Name of restaurant\"}, \"order_items\": {\"type\": \"array\", \"items\": {\"type\": \"str\"}, \"description\": \"Items to order\"}, \"delivery_address\": {\"type\": \"str\", \"description\": \"Delivery address\"}, \"payment_method\": {\"type\": \"str\", \"description\": \"Payment method\"}}, \"required\": [\"restaurant_name\", \"order_items\", \"delivery_address\", \"payment_method\"]}}\n{\"name\": \"schedule_meeting\", \"description\": \"Set up a meeting with participants at a specified date and time.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"participants\": {\"type\": \"array\", \"items\": {\"type\": \"str\"}}, \"date\": {\"type\": \"str\"}, \"time\": {\"type\": \"str\"}}, \"required\": [\"participants\", \"date\", \"time\"]}}\n{\"name\": \"reserve_hotel\", \"description\": \"Reserve a hotel stay.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"hotel_name\": {\"type\": \"str\"}, \"check_in_date\": {\"type\": \"str\"}, \"check_out_date\": {\"type\": \"str\"}}, \"required\": [\"hotel_name\", \"check_in_date\", \"check_out_date\"]}}\n{\"name\": \"rent_car\", \"description\": \"Reserve a rental car.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"pickup_location\": {\"type\": \"str\"}, \"pickup_date\": {\"type\": \"str\"}, \"return_date\": {\"type\": \"str\"}}, \"required\": [\"pickup_location\", \"pickup_date\", \"return_date\"]}}\n{\"name\": \"set_reminder\", \"description\": \"Set a personal reminder.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"reminder_text\": {\"type\": \"str\"}, \"date\": {\"type\": \"str\"}, \"time\": {\"type\": \"str\"}}, \"required\": [\"reminder_text\", \"date\", \"time\"]}}\n{\"name\": \"send_email\", \"description\": \"Send an email.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_email\": {\"type\": \"str\"}, \"subject\": {\"type\": \"str\"}, \"body_text\": {\"type\": \"str\"}}, \"required\": [\"recipient_email\", \"subject\", \"body_text\"]}}\n{\"name\": \"buy_movie_tickets\", \"description\": \"Purchase movie tickets.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"movie_name\": {\"type\": \"str\"}, \"theater_name\": {\"type\": \"str\"}, \"show_date\": {\"type\": \"str\"}, \"ticket_quantity\": {\"type\": \"int\"}}, \"required\": [\"movie_name\", \"theater_name\", \"show_date\", \"ticket_quantity\"]}}\n{\"name\": \"create_calendar_event\", \"description\": \"Create an event in the calendar.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"event_title\": {\"type\": \"str\"}, \"event_date\": {\"type\": \"str\"}, \"event_time\": {\"type\": \"str\"}}, \"required\": [\"event_title\", \"event_date\", \"event_time\"]}}\n{\"name\": \"subscribe_newsletter\", \"description\": \"Subscribe to a newsletter.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"newsletter_name\": {\"type\": \"str\"}, \"recipient_email\": {\"type\": \"str\"}}, \"required\": [\"newsletter_name\", \"recipient_email\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check account balance.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\"}}, \"required\": [\"account_id\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\"}, \"term_months\": {\"type\": \"int\"}, \"credit_score\": {\"type\": \"int\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"report_issue\", \"description\": \"Report an issue to support.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"issue_description\": {\"type\": \"str\"}, \"user_email\": {\"type\": \"str\"}}, \"required\": [\"issue_description\", \"user_email\"]}}\n{\"name\": \"schedule_doctor_appointment\", \"description\": \"Schedule a doctor's appointment.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"doctor_name\": {\"type\": \"str\"}, \"appointment_date\": {\"type\": \"str\"}, \"appointment_time\": {\"type\": \"str\"}}, \"required\": [\"doctor_name\", \"appointment_date\", \"appointment_time\"]}}\n{\"name\": \"send_gift\", \"description\": \"Send a gift to someone.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_name\": {\"type\": \"str\"}, \"gift_item\": {\"type\": \"str\"}, \"delivery_address\": {\"type\": \"str\"}}, \"required\": [\"recipient_name\", \"gift_item\", \"delivery_address\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to buy movie tickets for the Matrix movie"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"buy_movie_tickets\"], \"clarification\": \"How many tickets are you interested in?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Actually I want to order some food"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please tell me the restaurant name, the food items you want to order, and the payment method?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Cheeze pizza from Pizza hut and I will pay with my credit card"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please tell me the delivery address?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Sure 13576 NE 203rd CT, Woodinville, WA 98072"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Please confirm the following details: You want to order 13576 NE 203rd CT, Woodinville, WA 98072, a delivery address for a Pizza Hut pizza, a credit card payment method, and 1 pizza.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Yes"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
### Scenario: Context Swtich Between Functions. Start with one function, move to another, and go back to the first one
|
|
### Tools Used: 15 (order_food, book_flight, schedule_meeting, reserve_hotel, rent_car, set_reminder, send_email, buy_movie_tickets, create_calendar_event, apply_loan, get_stock_price, check_account_balance, submit_mortgage_application, apply_credit_card, order_groceries)
|
|
### Expected output(s): "content": "{\"tool_calls\": [{\"name\": \"order_food\", \"arguments\": {\"delivery_address\": \"13576 NE 203rd CT, Woodinville, WA 98072\", \"order_items\": [\"Cheeze pizza\"], \"payment_method\": \"Credit card\"}}]}",
|
|
### Notes: The assistant asked for all the missing required parameters and kept track of the chat history
|
|
### Status: Approved
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n{\"name\": \"book_flight\", \"description\": \"Book a flight between two cities on a given date.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"departure_city\": {\"type\": \"str\", \"description\": \"City of departure\"}, \"arrival_city\": {\"type\": \"str\", \"description\": \"Destination city\"}, \"departure_date\": {\"type\": \"str\", \"description\": \"Date of departure\"}, \"passenger_count\": {\"type\": \"int\", \"description\": \"Number of passengers\"}}, \"required\": [\"departure_city\", \"arrival_city\", \"departure_date\", \"passenger_count\"]}}\n{\"name\": \"order_food\", \"description\": \"Order food delivery from a restaurant.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"restaurant_name\": {\"type\": \"str\", \"description\": \"Name of restaurant\"}, \"order_items\": {\"type\": \"array\", \"items\": {\"type\": \"str\"}, \"description\": \"Items to order\"}, \"delivery_address\": {\"type\": \"str\", \"description\": \"Delivery address\"}, \"payment_method\": {\"type\": \"str\", \"description\": \"Payment method\"}}, \"required\": [\"restaurant_name\", \"order_items\", \"delivery_address\", \"payment_method\"]}}\n{\"name\": \"schedule_meeting\", \"description\": \"Set up a meeting with participants at a specified date and time.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"participants\": {\"type\": \"array\", \"items\": {\"type\": \"str\"}}, \"date\": {\"type\": \"str\"}, \"time\": {\"type\": \"str\"}}, \"required\": [\"participants\", \"date\", \"time\"]}}\n{\"name\": \"reserve_hotel\", \"description\": \"Reserve a hotel stay.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"hotel_name\": {\"type\": \"str\"}, \"check_in_date\": {\"type\": \"str\"}, \"check_out_date\": {\"type\": \"str\"}}, \"required\": [\"hotel_name\", \"check_in_date\", \"check_out_date\"]}}\n{\"name\": \"rent_car\", \"description\": \"Reserve a rental car.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"pickup_location\": {\"type\": \"str\"}, \"pickup_date\": {\"type\": \"str\"}, \"return_date\": {\"type\": \"str\"}}, \"required\": [\"pickup_location\", \"pickup_date\", \"return_date\"]}}\n{\"name\": \"set_reminder\", \"description\": \"Set a personal reminder.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"reminder_text\": {\"type\": \"str\"}, \"date\": {\"type\": \"str\"}, \"time\": {\"type\": \"str\"}}, \"required\": [\"reminder_text\", \"date\", \"time\"]}}\n{\"name\": \"send_email\", \"description\": \"Send an email.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_email\": {\"type\": \"str\"}, \"subject\": {\"type\": \"str\"}, \"body_text\": {\"type\": \"str\"}}, \"required\": [\"recipient_email\", \"subject\", \"body_text\"]}}\n{\"name\": \"buy_movie_tickets\", \"description\": \"Purchase movie tickets.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"movie_name\": {\"type\": \"str\"}, \"theater_name\": {\"type\": \"str\"}, \"show_date\": {\"type\": \"str\"}, \"ticket_quantity\": {\"type\": \"int\"}}, \"required\": [\"movie_name\", \"theater_name\", \"show_date\", \"ticket_quantity\"]}}\n{\"name\": \"create_calendar_event\", \"description\": \"Create an event in the calendar.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"event_title\": {\"type\": \"str\"}, \"event_date\": {\"type\": \"str\"}, \"event_time\": {\"type\": \"str\"}}, \"required\": [\"event_title\", \"event_date\", \"event_time\"]}}\n{\"name\": \"subscribe_newsletter\", \"description\": \"Subscribe to a newsletter.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"newsletter_name\": {\"type\": \"str\"}, \"recipient_email\": {\"type\": \"str\"}}, \"required\": [\"newsletter_name\", \"recipient_email\"]}}\n{\"name\": \"check_account_balance\", \"description\": \"Check account balance.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"account_id\": {\"type\": \"str\"}}, \"required\": [\"account_id\"]}}\n{\"name\": \"apply_loan\", \"description\": \"Apply for a personal loan.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"amount\": {\"type\": \"int\"}, \"term_months\": {\"type\": \"int\"}, \"credit_score\": {\"type\": \"int\"}}, \"required\": [\"amount\", \"term_months\", \"credit_score\"]}}\n{\"name\": \"report_issue\", \"description\": \"Report an issue to support.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"issue_description\": {\"type\": \"str\"}, \"user_email\": {\"type\": \"str\"}}, \"required\": [\"issue_description\", \"user_email\"]}}\n{\"name\": \"schedule_doctor_appointment\", \"description\": \"Schedule a doctor's appointment.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"doctor_name\": {\"type\": \"str\"}, \"appointment_date\": {\"type\": \"str\"}, \"appointment_time\": {\"type\": \"str\"}}, \"required\": [\"doctor_name\", \"appointment_date\", \"appointment_time\"]}}\n{\"name\": \"send_gift\", \"description\": \"Send a gift to someone.\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_name\": {\"type\": \"str\"}, \"gift_item\": {\"type\": \"str\"}, \"delivery_address\": {\"type\": \"str\"}}, \"required\": [\"recipient_name\", \"gift_item\", \"delivery_address\"]}}\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to buy movie tickets for the Matrix movie"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"buy_movie_tickets\"], \"clarification\": \"How many tickets are you interested in?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Actually I want to order some food"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please tell me the restaurant name, the food items you want to order, and the payment method?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Cheeze pizza from Pizza hut and I will pay with my credit card"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please tell me the delivery address?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Sure 13576 NE 203rd CT, Woodinville, WA 98072"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Please confirm the following details: You want to order 13576 NE 203rd CT, Woodinville, WA 98072, a delivery address for a Pizza Hut pizza, a credit card payment method, and 1 pizza.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Actually finish buying my movie tickets. I want two tickets at the AMC theater near me"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"buy_movie_tickets\"], \"clarification\": \"Could you please confirm the following details: You want 2 tickets for the AMC theater, and the movie is Matrix.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Yes"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"tool_calls\": [{\"name\": \"buy_movie_tickets\", \"arguments\": {\"appointment_date\": \"2019-03-01\", \"appointment_time\": \"10:00\", \"movie_name\": \"Matrix\", \"ticket_quantity\": \"2\"}}]}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "<tool_response>\n{'name': 'buy_movie_tickets', 'result': 'Ticket ID: 1234'}\n</tool_response>"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"response\": \"Your tickets have been booked, here is your ticket id: 1234.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Thanks, can we now complete the food order?"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please confirm the following details: You want to order 13576 NE 203rd CT, Woodinville, WA 98072, and you are ordering some pizza from Pizza Hut.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Yes"
|
|
}
|
|
],
|
|
"temperature": 0.6,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|
|
|
|
|
|
|
|
### Scenario: Context Swtich Between Functions. Start with one function, move to another, to another.
|
|
### Tools Used: 15 (order_food, book_flight, schedule_meeting, reserve_hotel, rent_car, set_reminder, send_email, buy_movie_tickets, create_calendar_event, apply_loan, get_stock_price, check_account_balance, submit_mortgage_application, apply_credit_card, order_groceries)
|
|
### Expected output(s): "content": "{\"tool_calls\": [{\"name\": \"schedule_meeting\", \"arguments\": {\"date\": \"tomorrow\", \"participants\": [\"user\"], \"time\": \"10 am\", \"duration_minutes\": \"60\"}}]}",
|
|
### Notes: The last chat history was a bit ambiguous and the model made multiple function calls.
|
|
### Status: Needs Work
|
|
### Tested By: Salman Paracha
|
|
|
|
POST {{archfc_endpoint}}/v1/chat/completions HTTP/1.1
|
|
Content-Type: application/json
|
|
|
|
{
|
|
"model": "Arch-Function",
|
|
"messages": [
|
|
{
|
|
"role": "system",
|
|
"content": "You are a helpful assistant designed to assist with the user query by making one or more function calls if needed.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>\n[{\"name\": \"book_flight\", \"description\": \"Book a flight for the user\", \"parameters\": {\"type\": \"object\", \"properties\": {\"departure_city\": {\"type\": \"str\", \"description\": \"Departure city\"}, \"arrival_city\": {\"type\": \"str\", \"description\": \"Destination city\"}, \"departure_date\": {\"type\": \"str\", \"description\": \"Date of departure\"}, \"passenger_count\": {\"type\": \"int\", \"description\": \"Number of passengers\"}}, \"required\": [\"departure_city\", \"arrival_city\", \"departure_date\", \"passenger_count\"]}}, {\"name\": \"order_food\", \"description\": \"Order food delivery\", \"parameters\": {\"type\": \"object\", \"properties\": {\"restaurant_name\": {\"type\": \"str\"}, \"description\": \"Payment method\", \"food_items\": {\"type\": \"list\", \"items\": {\"type\": \"str\"}}, \"delivery_address\": {\"type\": \"str\"}, \"payment_method\": {\"type\": \"str\"}}, \"required\": [\"restaurant_name\", \"order_items\", \"delivery_address\", \"payment_method\"]}}, {\"name\": \"schedule_meeting\", \"description\": \"Schedule a business or personal meeting\", \"parameters\": {\"type\": \"object\", \"properties\": {\"participants\": {\"type\": \"array\", \"description\": \"Email addresses\"}, \"date\": {\"type\": \"str\"}, \"description\": \"Duration of the meeting in minutes\", \"time\": {\"type\": \"str\"}, \"duration_minutes\": {\"type\": \"int\"}}, \"required\": [\"participants\", \"date\", \"time\"]}}, {\"name\": \"reserve_hotel\", \"description\": \"Book a hotel room\", \"parameters\": {\"type\": \"object\", \"properties\": {\"hotel_name\": {\"type\": \"str\"}, \"description\": \"Type of room\", \"check_in_date\": {\"type\": \"str\"}, \"check_out_date\": {\"type\": \"str\"}, \"room_type\": {\"type\": \"str\"}}, \"required\": [\"hotel_name\", \"check_in_date\", \"check_out_date\"]}}, {\"name\": \"rent_car\", \"description\": \"Reserve a rental car\", \"parameters\": {\"type\": \"object\", \"properties\": {\"pickup_location\": {\"type\": \"str\"}, \"description\": \"Type of car\", \"pickup_date\": {\"type\": \"str\"}, \"return_date\": {\"type\": \"str\"}, \"car_type\": {\"type\": \"str\"}}, \"required\": [\"pickup_location\", \"pickup_date\", \"return_date\"]}}, {\"name\": \"set_reminder\", \"description\": \"Create a reminder for the user\", \"parameters\": {\"type\": \"object\", \"properties\": {\"reminder_text\": {\"type\": \"str\"}, \"description\": \"Time of the reminder\", \"date\": {\"type\": \"str\"}, \"time\": {\"type\": \"str\"}}, \"required\": [\"reminder_text\", \"date\", \"time\"]}}, {\"name\": \"send_email\", \"description\": \"Send an email on behalf of the user\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_email\": {\"type\": \"str\"}, \"description\": \"Email body\", \"subject\": {\"type\": \"str\"}, \"body\": {\"type\": \"str\"}}, \"required\": [\"recipient_email\", \"subject\", \"body_text\"]}}, {\"name\": \"buy_movie_tickets\", \"description\": \"Purchase movie tickets\", \"parameters\": {\"type\": \"object\", \"properties\": {\"movie_name\": {\"type\": \"str\"}, \"description\": \"Number of tickets\", \"theater_location\": {\"type\": \"str\"}, \"show_time\": {\"type\": \"str\"}, \"number_of_tickets\": {\"type\": \"int\"}}, \"required\": [\"movie_name\", \"theater_location\", \"showtime\", \"ticket_quantity\"]}}, {\"name\": \"create_calendar_event\", \"description\": \"Add an event to user's calendar\", \"parameters\": {\"type\": \"object\", \"properties\": {\"event_title\": {\"type\": \"str\"}, \"description\": \"Date of the event\", \"event_date\": {\"type\": \"str\"}, \"start_time\": {\"type\": \"str\"}, \"duration_minutes\": {\"type\": \"int\"}}, \"required\": [\"event_title\", \"event_date\", \"event_time\"]}}, {\"name\": \"order_groceries\", \"description\": \"Order groceries online\", \"parameters\": {\"type\": \"object\", \"properties\": {\"store_name\": {\"type\": \"str\"}, \"delivery_address\": {\"type\": \"str\"}, \"grocery_items\": {\"type\": \"array\", \"items\": {\"type\": \"str\"}}}, \"required\": [\"store_name\", \"delivery_address\", \"grocery_items\"]}}, {\"name\": \"send_email\", \"description\": \"Send an email on behalf of the user\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_email\": {\"type\": \"str\"}, \"subject\": {\"type\": \"str\"}, \"message_body\": {\"type\": \"str\"}}, \"required\": [\"recipient_email\", \"subject\", \"message_body\"]}}, {\"name\": \"subscribe_newsletter\", \"description\": \"Subscribe user to a newsletter\", \"parameters\": {\"type\": \"object\", \"properties\": {\"newsletter_name\": {\"type\": \"str\"}, \"email\": {\"type\": \"str\"}}, \"required\": [\"newsletter_name\", \"recipient_email\"]}}, {\"name\": \"report_issue\", \"description\": \"Report a customer support issue\", \"parameters\": {\"type\": \"object\", \"properties\": {\"issue_description\": {\"type\": \"str\"}, \"user_email\": {\"type\": \"str\"}, \"priority_level\": {\"type\": \"str\"}}, \"required\": [\"issue_description\", \"user_email\", \"priority_level\"]}}, {\"name\": \"schedule_doctor_appointment\", \"description\": \"Schedule a medical appointment\", \"parameters\": {\"type\": \"object\", \"properties\": {\"doctor_name\": {\"type\": \"str\"}, \"appointment_date\": {\"type\": \"str\"}, \"appointment_time\": {\"type\": \"str\"}}, \"required\": [\"doctor_name\", \"appointment_date\", \"appointment_time\"]}}, {\"name\": \"send_gift\", \"description\": \"Send a gift to someone\", \"parameters\": {\"type\": \"object\", \"properties\": {\"recipient_name\": {\"type\": \"str\"}, \"gift_item\": {\"type\": \"str\"}, \"delivery_address\": {\"type\": \"str\"}}, \"required\": [\"recipient_name\", \"gift_item\", \"delivery_address\"]}}]\n</tools>\n\nYour task is to decide which functions are needed and collect missing parameters if necessary.\n\nBased on your analysis, provide your response in one of the following JSON formats:\n1. If no functions are needed:\n```\n{\"response\": \"Your response text here\"}\n```\n2. If functions are needed but some required parameters are missing:\n```\n{\"required_functions\": [\"func_name1\", \"func_name2\", ...], \"clarification\": \"Text asking for missing parameters\"}\n```\n3. If functions are needed and all required parameters are available:\n```\n{\"tool_calls\": [{\"name\": \"func_name1\", \"arguments\": {\"argument1\": \"value1\", \"argument2\": \"value2\"}},... (more tool calls as required)]}\n```"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "I want to buy movie tickets for the Matrix movie"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"buy_movie_tickets\"], \"clarification\": \"How many tickets are you interested in?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Actually I want to order some food"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please tell me the restaurant name, the food items you want to order, and the payment method?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Cheeze pizza from Pizza hut and I will pay with my credit card"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Could you please tell me the delivery address?\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Sure 13576 NE 203rd CT, Woodinville, WA 98072"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"order_food\"], \"clarification\": \"Please confirm the following details: You want to order 13576 NE 203rd CT, Woodinville, WA 98072, a delivery address for a Pizza Hut pizza, a credit card payment method, and 1 pizza.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Actually let's finish buying my movie tickets. I want two tickets at the AMC theater near me"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"buy_movie_tickets\"], \"clarification\": \"Could you please confirm the following details: You want 2 tickets for the AMC theater, and the movie is Matrix.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Actually first lets book me a meeting with my manager for tomorrow at 10 am"
|
|
},
|
|
{
|
|
"role": "assistant",
|
|
"content": "{\"required_functions\": [\"schedule_meeting\"], \"clarification\": \"Could you please confirm the following details: You want to book a meeting with your manager, the date is tomorrow at 10 am, and the meeting is 60 minutes long.\"}"
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": "Yes"
|
|
}
|
|
|
|
],
|
|
"temperature": 0.01,
|
|
"top_p": 1.0,
|
|
"top_k": 10
|
|
}
|