Repository: modelscope/evalscope
Issue: 使用vllm启动模型以api方式评测toolbench时报错Input should be a valid string
Root cause: Interface Contract Mismatch

## 自查清单

在提交 issue 之前，请确保您已完成以下步骤:
- [ ] 我已仔细阅读了[相关使用说明文档](https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html)
- [x] 我已查看了[常见问题解答](https://evalscope.readthedocs.io/zh-cn/latest/get_started/faq.html)
- [x] 我已搜索并查看了现有的 issues，确认这不是一个重复的问题

## 问题描述

请简要描述您遇到的问题。

## EvalScope 版本（必填）
v0.16

## 使用的工具
- [ ] Toolbench

## 运行环境
- 操作系统：Linux
- Python版本：3.10

## 执行的代码或指令
from evalscope import TaskConfig, run_task
from evalscope import TaskConfig, run_task
from evalscope.constants import EvalType, JudgeStrategy
task_cfg = TaskConfig(
    # model='Qwen/Qwen2.5-0.5B-Instruct',
    model='Qwen3-14B',
    datasets=['tool_bench'],
    dataset_args={
        'tool_bench': {
            "local_path": "/mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/dataset/ToolBench-Static",  # 自定义数据集路径
            "subset_list": [
                "in_domain" ,
                 "out_of_domain"# 评测数据集名称，上述subset_name
            ]
        }
    },
    eval_batch_size=5,
    # api_url='http://0.0.0.0:8000/v1',
    # api_key='EMPTY',
    # eval_type=EvalType.SERVICE,
    generation_config={
        'max_new_tokens': 8192,  # 最大生成token数，建议设置为较大值避免输出截断
        'temperature': 0,  # 采样温度 (qwen 报告推荐值)
        'top_p': 0.8,  # top-p采样 (qwen 报告推荐值)
        'top_k': 20,  # top-k采样 (qwen 报告推荐值)
        'chat_template_kwargs': {'enable_thinking': False}# 关闭思考模式
    }
)

run_task(task_cfg=task_cfg)


## 错误日志
VLLM服务端：
INFO:     127.0.0.1:59450 - "POST /v1/chat/completions HTTP/1.1" 400 Bad Request
INFO:     127.0.0.1:59484 - "POST /v1/chat/completions HTTP/1.1" 400 Bad Request
控制台：
2025-05-21 09:00:52,831 - evalscope - INFO - Args: Task config is provided with TaskConfig type.
2025-05-21 09:01:00,458 - evalscope - INFO - Dump task config to ./outputs/20250521_090052/configs/task_config_5dc713.yaml
2025-05-21 09:01:00,467 - evalscope - INFO - {
    "model": "Qwen3-14B",
    "model_id": "Qwen3-14B",
    "model_args": {},
    "model_task": "text_generation",
    "template_type": null,
    "chat_template": null,
    "datasets": [
        "tool_bench"
    ],
    "dataset_args": {
        "tool_bench": {
            "name": "tool_bench",
            "dataset_id": "/mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/dataset/ToolBench-Static",
            "model_adapter": "generation",
            "output_types": [
                "generation"
            ],
            "subset_list": [
                "in_domain",
                "out_of_domain"
            ],
            "metric_list": [
                "Act.EM",
                "Plan.EM",
                "F1",
                "HalluRate",
                "Rouge-L"
            ],
            "few_shot_num": 0,
            "few_shot_random": false,
            "train_split": null,
            "eval_split": "test",
            "prompt_template": null,
            "system_prompt": null,
            "query_template": null,
            "pretty_name": "ToolBench-Static",
            "filters": null,
            "extra_params": {}
        }
    },
    "dataset_dir": "/root/.cache/modelscope/hub/datasets",
    "dataset_hub": "modelscope",
    "generation_config": {
        "max_new_tokens": 8192,
        "temperature": 0,
        "top_p": 0.8,
        "top_k": 20,
        "chat_template_kwargs": {
            "enable_thinking": false
        }
    },
    "eval_type": "service",
    "eval_backend": "Native",
    "eval_config": null,
    "stage": "all",
    "limit": 1,
    "eval_batch_size": 5,
    "mem_cache": false,
    "use_cache": null,
    "work_dir": "./outputs/20250521_090052",
    "outputs": null,
    "ignore_errors": false,
    "debug": false,
    "dry_run": false,
    "seed": 42,
    "api_url": "http://0.0.0.0:8000/v1",
    "api_key": "EMPTY",
    "timeout": null,
    "stream": false,
    "judge_strategy": "auto",
    "judge_worker_num": 1,
    "judge_model_args": {}
}
2025-05-21 09:01:00,467 - evalscope - INFO - **** Start evaluating on dataset /mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/dataset/ToolBench-Static ****
2025-05-21 09:01:00,467 - evalscope - INFO - Loading dataset from local disk: /mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/dataset/ToolBench-Static
2025-05-21 09:01:00,840 - evalscope - INFO - Loading dataset: dataset_name: /mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/dataset/ToolBench-Static > subsets: ['in_domain', 'out_of_domain']
2025-05-21 09:01:00,861 - evalscope - INFO - Use settings: > few_shot_num: 0, > few_shot_split: None, > target_eval_split: test
Predicting(in_domain):   0%|                                                                                                                    | 0/1 [00:00<?, ?it/s]2025-05-21 09:01:01,400 - evalscope - ERROR - Error when calling remote API: Error code: 400 - {'object': 'error', 'message': '[{\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'developer\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'developer\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'user\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'user\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'assistant\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'assistant\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'tool\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'tool\'"}}, {\'type\': \'missing\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'tool_call_id\'), \'msg\': \'Field required\', \'input\': {\'role\': \'system\', \'content\': \'You are AutoGPT, you can use many tools(functions) to do the following task.\\nFirst I will give you the task description, and your task start.\\nAt each step, you need to give your thought to analyze the status now and what to do next, with a function call to actually excute your step. Your output should follow this format:\\nThought:\\nAction:\\nAction Input:\\n\\nAfter the call, you will get the call result, and you are now in a new state.\\nThen you will analyze your status now, then decide what to do next...\\nAfter many (Thought-call) pairs, you finally perform the task, then you can give your finial answer.\\nRemember: \\n1.the state change is irreversible, you can\\\'t go back to one of the former state, if you want to restart the task, say "I give up and restart".\\n2.All the thought is short, at most in 5 sentence.\\n3.You can do more then one trys, so if your plan is to continusly try some conditions, you can do one of the conditions per try.\\nLet\\\'s Begin!\\nTask description: You should use functions to help handle the real time user querys. Remember:\\n1.ALWAYS call "Finish" function at the end of the task. And the final answer should contain enough information to show to the user,If you can\\\'t handle the task, or you find that function calls always fail(the function is not valid now), use function Finish->give_up_and_restart.\\n2.Do not use origin tool names, use only subfunctions\\\' names.\\nYou have access of the following tools:\\n1spott: Search cities, countries and administrative divisions by name, autocompletion or IP.\\n2webcams_travel: The World\\\'s Largest Landscape Webcam API ***** Get webcams by categories, country, region or just nearby your location ***** Get timelapse slideshows for every webcam ***** Get an uncluttered webcam layer for your map\\n\\nSpecifically, you have access to the following APIs: [{"name": "get_place_by_my_ip_for_spott", "description": "This is the subfunction for tool \\\\"spott\\\\", you can use this tool.The description of this function is: \\\\"Returns the place related to the IP where the request was performed. Returns \\\\"Not Found\\\\" error when no place is related to the IP.\\\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "autocomplete_places_for_spott", "description": "This is the subfunction for tool \\\\"spott\\\\", you can use this tool.The description of this function is: \\\\"Returns a list of places matching a prefix and specified filter properties. Useful to create \\\\"search as you type\\\\" inputs.\\\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "get_place_by_ip_for_spott", "description": "This is the subfunction for tool \\\\"spott\\\\", you can use this tool.The description of this function is: \\\\"Returns the Place where a given IP Address is located. Returns \\\\"Not Found\\\\" error when no place is related to the IP. When sending \\\'127.0.0.1\\\' or \\\'0.0.0.0\\\' IP Addresses it will return the Place from the request was performed.\\\\"", "parameters": {"type": "object", "properties": {"is_id": {"type": "string", "description": "IP Address (v4 and v6 are supported).", "example_value": "200.194.51.97"}, "language": {"type": "string", "description": "Specifies a language (ISO 639-1) to get the localized name of the place. If translation is not available, \\\\"localizedName\\\\" property will be null."}}, "required": ["is_id"], "optional": ["language"]}}, {"name": "webcams_list_orderby_order_sort_for_webcams_travel", "description": "This is the subfunction for tool \\\\"webcams_travel\\\\", you can use this tool.The description of this function is: \\\\"This is a modifier. Returns the list of webcams ordered by {order}. The optional sorting direction is given by {sort}. Required {order}.\\\\"", "parameters": {"type": "object", "properties": {"sort": {"type": "string", "description": "Possible values are: \\\\"asc\\\\" (ascending), or \\\\"desc\\\\" (descending)."}, "order": {"type": "string", "description": "Possible values are: \\\\"popularity\\\\" (default order: \\\\"desc\\\\"), \\\\"hotness\\\\" (default order: \\\\"desc\\\\"), \\\\"new\\\\" (default order: \\\\"desc\\\\"), \\\\"recent\\\\" (default order: \\\\"desc\\\\"), \\\\"random\\\\" (default order: \\\\"asc\\\\"), or \\\\"distance\\\\" (default order: \\\\"asc\\\\", only available if the modif"}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\\\"en\\\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\\\"webcams\\\\", \\\\"categories\\\\", \\\\"continents\\\\", \\\\"countries\\\\", \\\\"regions\\\\", \\\\"properties\\\\". Default is \\\\"webcams\\\\".", "example_value": "webcams:image,location"}}, "required": ["sort", "order"], "optional": ["lang", "show"]}}, {"name": "webcams_list_region_region_region_for_webcams_travel", "description": "This is the subfunction for tool \\\\"webcams_travel\\\\", you can use this tool.The description of this function is: \\\\"This is a modifier. Returns a list of webcams according to the listed region. Multiple regions must be separated by comma. Required: at least one {region}. Possible values are ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot.\\\\"", "parameters": {"type": "object", "properties": {"region": {"type": "string", "description": "Comma separated list of ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\\\"en\\\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\\\"webcams\\\\", \\\\"categories\\\\", \\\\"continents\\\\", \\\\"countries\\\\", \\\\"regions\\\\", \\\\"properties\\\\". Default is \\\\"webcams\\\\".", "example_value": "webcams:image,location"}}, "required": ["region"], "optional": ["lang", "show"]}}, {"name": "webcams_list_bbox_ne_lat_ne_lng_sw_lat_sw_lng_for_webcams_travel", "description": "This is the subfunction for tool \\\\"webcams_travel\\\\", you can use this tool.The description of this function is: \\\\"This is a modifier. Returns a list of the webcams in the bounding box given by north-east ({ne_lat},{ne_lng}) and south-west ({sw_lat},{sw_lng}) coordinates. Required: {ne_lat},{ne_lng},{sw_lat},{sw_lng}.\\\\"", "parameters": {"type": "object", "properties": {"ne_lat": {"type": "integer", "description": "North-east WGS84 latitude of the bounding box."}, "sw_lng": {"type": "integer", "description": "South-west WGS84 longitude of the bounding box."}, "sw_lat": {"type": "integer", "description": "South-west WGS84 latitude of the bounding box."}, "ne_lng": {"type": "integer", "description": "North-east WGS84 longitude of the bounding box."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\\\"en\\\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\\\"webcams\\\\", \\\\"categories\\\\", \\\\"continents\\\\", \\\\"countries\\\\", \\\\"regions\\\\", \\\\"properties\\\\". Default is \\\\"webcams\\\\".", "example_value": "webcams:image,location"}}, "required": ["ne_lat", "sw_lng", "sw_lat", "ne_lng"], "optional": ["lang", "show"]}}, {"name": "Finish", "description": "If you believe that you have obtained a result that can answer the task, please call this function to provide the final answer. Alternatively, if you recognize that you are unable to proceed with the task in the current state, call this function to restart. Remember: you must ALWAYS call this function at the end of your attempt, and the only part that will be shown to the user is the final answer, so it should contain sufficient information.", "parameters": {"type": "object", "properties": {"return_type": {"type": "string", "enum": ["give_answer", "give_up_and_restart"]}, "final_answer": {"type": "string", "description": "The final answer you want to give the user. You should have this field if \\\\"return_type\\\\"==\\\\"give_answer\\\\""}}, "required": ["return_type"]}}]\', \'name\': None}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'function\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'function\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'developer\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'developer\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'system\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'system\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'assistant\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'assistant\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'tool\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'tool\'"}}, {\'type\': \'missing\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'tool_call_id\'), \'msg\': \'Field required\', \'input\': {\'role\': \'user\', \'content\': "\\nI\'m planning a surprise birthday party for my sister and I need to find a suitable venue. Can you suggest event spaces in the city center with a capacity for 50 people? Also, recommend nearby catering services and provide me with a list of available dates for booking.\\nBegin!\\n", \'name\': None}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'function\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'function\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}]', 'type': 'BadRequestError', 'param': None, 'code': 400}
2025-05-21 09:01:01,400 - evalscope - ERROR - Failed to get answer for [{'data': [''], 'index': 0, 'messages': [{'role': 'system', 'content': 'You are AutoGPT, you can use many tools(functions) to do the following task.\nFirst I will give you the task description, and your task start.\nAt each step, you need to give your thought to analyze the status now and what to do next, with a function call to actually excute your step. Your output should follow this format:\nThought:\nAction:\nAction Input:\n\nAfter the call, you will get the call result, and you are now in a new state.\nThen you will analyze your status now, then decide what to do next...\nAfter many (Thought-call) pairs, you finally perform the task, then you can give your finial answer.\nRemember: \n1.the state change is irreversible, you can\'t go back to one of the former state, if you want to restart the task, say "I give up and restart".\n2.All the thought is short, at most in 5 sentence.\n3.You can do more then one trys, so if your plan is to continusly try some conditions, you can do one of the conditions per try.\nLet\'s Begin!\nTask description: You should use functions to help handle the real time user querys. Remember:\n1.ALWAYS call "Finish" function at the end of the task. And the final answer should contain enough information to show to the user,If you can\'t handle the task, or you find that function calls always fail(the function is not valid now), use function Finish->give_up_and_restart.\n2.Do not use origin tool names, use only subfunctions\' names.\nYou have access of the following tools:\n1spott: Search cities, countries and administrative divisions by name, autocompletion or IP.\n2webcams_travel: The World\'s Largest Landscape Webcam API ***** Get webcams by categories, country, region or just nearby your location ***** Get timelapse slideshows for every webcam ***** Get an uncluttered webcam layer for your map\n\nSpecifically, you have access to the following APIs: [{"name": "get_place_by_my_ip_for_spott", "description": "This is the subfunction for tool \\"spott\\", you can use this tool.The description of this function is: \\"Returns the place related to the IP where the request was performed. Returns \\"Not Found\\" error when no place is related to the IP.\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "autocomplete_places_for_spott", "description": "This is the subfunction for tool \\"spott\\", you can use this tool.The description of this function is: \\"Returns a list of places matching a prefix and specified filter properties. Useful to create \\"search as you type\\" inputs.\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "get_place_by_ip_for_spott", "description": "This is the subfunction for tool \\"spott\\", you can use this tool.The description of this function is: \\"Returns the Place where a given IP Address is located. Returns \\"Not Found\\" error when no place is related to the IP. When sending \'127.0.0.1\' or \'0.0.0.0\' IP Addresses it will return the Place from the request was performed.\\"", "parameters": {"type": "object", "properties": {"is_id": {"type": "string", "description": "IP Address (v4 and v6 are supported).", "example_value": "200.194.51.97"}, "language": {"type": "string", "description": "Specifies a language (ISO 639-1) to get the localized name of the place. If translation is not available, \\"localizedName\\" property will be null."}}, "required": ["is_id"], "optional": ["language"]}}, {"name": "webcams_list_orderby_order_sort_for_webcams_travel", "description": "This is the subfunction for tool \\"webcams_travel\\", you can use this tool.The description of this function is: \\"This is a modifier. Returns the list of webcams ordered by {order}. The optional sorting direction is given by {sort}. Required {order}.\\"", "parameters": {"type": "object", "properties": {"sort": {"type": "string", "description": "Possible values are: \\"asc\\" (ascending), or \\"desc\\" (descending)."}, "order": {"type": "string", "description": "Possible values are: \\"popularity\\" (default order: \\"desc\\"), \\"hotness\\" (default order: \\"desc\\"), \\"new\\" (default order: \\"desc\\"), \\"recent\\" (default order: \\"desc\\"), \\"random\\" (default order: \\"asc\\"), or \\"distance\\" (default order: \\"asc\\", only available if the modif"}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\"en\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\"webcams\\", \\"categories\\", \\"continents\\", \\"countries\\", \\"regions\\", \\"properties\\". Default is \\"webcams\\".", "example_value": "webcams:image,location"}}, "required": ["sort", "order"], "optional": ["lang", "show"]}}, {"name": "webcams_list_region_region_region_for_webcams_travel", "description": "This is the subfunction for tool \\"webcams_travel\\", you can use this tool.The description of this function is: \\"This is a modifier. Returns a list of webcams according to the listed region. Multiple regions must be separated by comma. Required: at least one {region}. Possible values are ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot.\\"", "parameters": {"type": "object", "properties": {"region": {"type": "string", "description": "Comma separated list of ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\"en\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\"webcams\\", \\"categories\\", \\"continents\\", \\"countries\\", \\"regions\\", \\"properties\\". Default is \\"webcams\\".", "example_value": "webcams:image,location"}}, "required": ["region"], "optional": ["lang", "show"]}}, {"name": "webcams_list_bbox_ne_lat_ne_lng_sw_lat_sw_lng_for_webcams_travel", "description": "This is the subfunction for tool \\"webcams_travel\\", you can use this tool.The description of this function is: \\"This is a modifier. Returns a list of the webcams in the bounding box given by north-east ({ne_lat},{ne_lng}) and south-west ({sw_lat},{sw_lng}) coordinates. Required: {ne_lat},{ne_lng},{sw_lat},{sw_lng}.\\"", "parameters": {"type": "object", "properties": {"ne_lat": {"type": "integer", "description": "North-east WGS84 latitude of the bounding box."}, "sw_lng": {"type": "integer", "description": "South-west WGS84 longitude of the bounding box."}, "sw_lat": {"type": "integer", "description": "South-west WGS84 latitude of the bounding box."}, "ne_lng": {"type": "integer", "description": "North-east WGS84 longitude of the bounding box."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\"en\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\"webcams\\", \\"categories\\", \\"continents\\", \\"countries\\", \\"regions\\", \\"properties\\". Default is \\"webcams\\".", "example_value": "webcams:image,location"}}, "required": ["ne_lat", "sw_lng", "sw_lat", "ne_lng"], "optional": ["lang", "show"]}}, {"name": "Finish", "description": "If you believe that you have obtained a result that can answer the task, please call this function to provide the final answer. Alternatively, if you recognize that you are unable to proceed with the task in the current state, call this function to restart. Remember: you must ALWAYS call this function at the end of your attempt, and the only part that will be shown to the user is the final answer, so it should contain sufficient information.", "parameters": {"type": "object", "properties": {"return_type": {"type": "string", "enum": ["give_answer", "give_up_and_restart"]}, "final_answer": {"type": "string", "description": "The final answer you want to give the user. You should have this field if \\"return_type\\"==\\"give_answer\\""}}, "required": ["return_type"]}}]', 'name': None}, {'role': 'user', 'content': "\nI'm planning a surprise birthday party for my sister and I need to find a suitable venue. Can you suggest event spaces in the city center with a capacity for 50 people? Also, recommend nearby catering services and provide me with a list of available dates for booking.\nBegin!\n", 'name': None}], 'raw_input': {'tools': [{'name': 'get_place_by_my_ip_for_spott', 'description': 'This is the subfunction for tool "spott", you can use this tool.The description of this function is: "Returns the place related to the IP where the request was performed. Returns "Not Found" error when no place is related to the IP."', 'parameters': "{'type': 'object', 'properties': {}, 'required': [], 'optional': []}"}, {'name': 'autocomplete_places_for_spott', 'description': 'This is the subfunction for tool "spott", you can use this tool.The description of this function is: "Returns a list of places matching a prefix and specified filter properties. Useful to create "search as you type" inputs."', 'parameters': "{'type': 'object', 'properties': {}, 'required': [], 'optional': []}"}, {'name': 'get_place_by_ip_for_spott', 'description': 'This is the subfunction for tool "spott", you can use this tool.The description of this function is: "Returns the Place where a given IP Address is located. Returns "Not Found" error when no place is related to the IP. When sending \'127.0.0.1\' or \'0.0.0.0\' IP Addresses it will return the Place from the request was performed."', 'parameters': '{\'type\': \'object\', \'properties\': {\'is_id\': {\'type\': \'string\', \'description\': \'IP Address (v4 and v6 are supported).\', \'example_value\': \'200.194.51.97\'}, \'language\': {\'type\': \'string\', \'description\': \'Specifies a language (ISO 639-1) to get the localized name of the place. If translation is not available, "localizedName" property will be null.\'}}, \'required\': [\'is_id\'], \'optional\': [\'language\']}'}, {'name': 'webcams_list_orderby_order_sort_for_webcams_travel', 'description': 'This is the subfunction for tool "webcams_travel", you can use this tool.The description of this function is: "This is a modifier. Returns the list of webcams ordered by {order}. The optional sorting direction is given by {sort}. Required {order}."', 'parameters': '{\'type\': \'object\', \'properties\': {\'sort\': {\'type\': \'string\', \'description\': \'Possible values are: "asc" (ascending), or "desc" (descending).\'}, \'order\': {\'type\': \'string\', \'description\': \'Possible values are: "popularity" (default order: "desc"), "hotness" (default order: "desc"), "new" (default order: "desc"), "recent" (default order: "desc"), "random" (default order: "asc"), or "distance" (default order: "asc", only available if the modif\'}, \'lang\': {\'type\': \'string\', \'description\': \'Localize the results to this language, if available. Default: "en".\', \'example_value\': \'en\'}, \'show\': {\'type\': \'string\', \'description\': \'Content to be listed in the response. Possible values are: "webcams", "categories", "continents", "countries", "regions", "properties". Default is "webcams".\', \'example_value\': \'webcams:image,location\'}}, \'required\': [\'sort\', \'order\'], \'optional\': [\'lang\', \'show\']}'}, {'name': 'webcams_list_region_region_region_for_webcams_travel', 'description': 'This is the subfunction for tool "webcams_travel", you can use this tool.The description of this function is: "This is a modifier. Returns a list of webcams according to the listed region. Multiple regions must be separated by comma. Required: at least one {region}. Possible values are ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot."', 'parameters': '{\'type\': \'object\', \'properties\': {\'region\': {\'type\': \'string\', \'description\': \'Comma separated list of ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot.\'}, \'lang\': {\'type\': \'string\', \'description\': \'Localize the results to this language, if available. Default: "en".\', \'example_value\': \'en\'}, \'show\': {\'type\': \'string\', \'description\': \'Content to be listed in the response. Possible values are: "webcams", "categories", "continents", "countries", "regions", "properties". Default is "webcams".\', \'example_value\': \'webcams:image,location\'}}, \'required\': [\'region\'], \'optional\': [\'lang\', \'show\']}'}, {'name': 'webcams_list_bbox_ne_lat_ne_lng_sw_lat_sw_lng_for_webcams_travel', 'description': 'This is the subfunction for tool "webcams_travel", you can use this tool.The description of this function is: "This is a modifier. Returns a list of the webcams in the bounding box given by north-east ({ne_lat},{ne_lng}) and south-west ({sw_lat},{sw_lng}) coordinates. Required: {ne_lat},{ne_lng},{sw_lat},{sw_lng}."', 'parameters': '{\'type\': \'object\', \'properties\': {\'ne_lat\': {\'type\': \'integer\', \'description\': \'North-east WGS84 latitude of the bounding box.\'}, \'sw_lng\': {\'type\': \'integer\', \'description\': \'South-west WGS84 longitude of the bounding box.\'}, \'sw_lat\': {\'type\': \'integer\', \'description\': \'South-west WGS84 latitude of the bounding box.\'}, \'ne_lng\': {\'type\': \'integer\', \'description\': \'North-east WGS84 longitude of the bounding box.\'}, \'lang\': {\'type\': \'string\', \'description\': \'Localize the results to this language, if available. Default: "en".\', \'example_value\': \'en\'}, \'show\': {\'type\': \'string\', \'description\': \'Content to be listed in the response. Possible values are: "webcams", "categories", "continents", "countries", "regions", "properties". Default is "webcams".\', \'example_value\': \'webcams:image,location\'}}, \'required\': [\'ne_lat\', \'sw_lng\', \'sw_lat\', \'ne_lng\'], \'optional\': [\'lang\', \'show\']}'}, {'name': 'Finish', 'description': 'If you believe that you have obtained a result that can answer the task, please call this function to provide the final answer. Alternatively, if you recognize that you are unable to proceed with the task in the current state, call this function to restart. Remember: you must ALWAYS call this function at the end of your attempt, and the only part that will be shown to the user is the final answer, so it should contain sufficient information.', 'parameters': '{\'type\': \'object\', \'properties\': {\'return_type\': {\'type\': \'string\', \'enum\': [\'give_answer\', \'give_up_and_restart\']}, \'final_answer\': {\'type\': \'string\', \'description\': \'The final answer you want to give the user. You should have this field if "return_type"=="give_answer"\'}}, \'required\': [\'return_type\']}'}], 'messages': [{'role': 'system', 'content': 'You are AutoGPT, you can use many tools(functions) to do the following task.\nFirst I will give you the task description, and your task start.\nAt each step, you need to give your thought to analyze the status now and what to do next, with a function call to actually excute your step. Your output should follow this format:\nThought:\nAction:\nAction Input:\n\nAfter the call, you will get the call result, and you are now in a new state.\nThen you will analyze your status now, then decide what to do next...\nAfter many (Thought-call) pairs, you finally perform the task, then you can give your finial answer.\nRemember: \n1.the state change is irreversible, you can\'t go back to one of the former state, if you want to restart the task, say "I give up and restart".\n2.All the thought is short, at most in 5 sentence.\n3.You can do more then one trys, so if your plan is to continusly try some conditions, you can do one of the conditions per try.\nLet\'s Begin!\nTask description: You should use functions to help handle the real time user querys. Remember:\n1.ALWAYS call "Finish" function at the end of the task. And the final answer should contain enough information to show to the user,If you can\'t handle the task, or you find that function calls always fail(the function is not valid now), use function Finish->give_up_and_restart.\n2.Do not use origin tool names, use only subfunctions\' names.\nYou have access of the following tools:\n1spott: Search cities, countries and administrative divisions by name, autocompletion or IP.\n2webcams_travel: The World\'s Largest Landscape Webcam API ***** Get webcams by categories, country, region or just nearby your location ***** Get timelapse slideshows for every webcam ***** Get an uncluttered webcam layer for your map\n\nSpecifically, you have access to the following APIs: [{"name": "get_place_by_my_ip_for_spott", "description": "This is the subfunction for tool \\"spott\\", you can use this tool.The description of this function is: \\"Returns the place related to the IP where the request was performed. Returns \\"Not Found\\" error when no place is related to the IP.\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "autocomplete_places_for_spott", "description": "This is the subfunction for tool \\"spott\\", you can use this tool.The description of this function is: \\"Returns a list of places matching a prefix and specified filter properties. Useful to create \\"search as you type\\" inputs.\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "get_place_by_ip_for_spott", "description": "This is the subfunction for tool \\"spott\\", you can use this tool.The description of this function is: \\"Returns the Place where a given IP Address is located. Returns \\"Not Found\\" error when no place is related to the IP. When sending \'127.0.0.1\' or \'0.0.0.0\' IP Addresses it will return the Place from the request was performed.\\"", "parameters": {"type": "object", "properties": {"is_id": {"type": "string", "description": "IP Address (v4 and v6 are supported).", "example_value": "200.194.51.97"}, "language": {"type": "string", "description": "Specifies a language (ISO 639-1) to get the localized name of the place. If translation is not available, \\"localizedName\\" property will be null."}}, "required": ["is_id"], "optional": ["language"]}}, {"name": "webcams_list_orderby_order_sort_for_webcams_travel", "description": "This is the subfunction for tool \\"webcams_travel\\", you can use this tool.The description of this function is: \\"This is a modifier. Returns the list of webcams ordered by {order}. The optional sorting direction is given by {sort}. Required {order}.\\"", "parameters": {"type": "object", "properties": {"sort": {"type": "string", "description": "Possible values are: \\"asc\\" (ascending), or \\"desc\\" (descending)."}, "order": {"type": "string", "description": "Possible values are: \\"popularity\\" (default order: \\"desc\\"), \\"hotness\\" (default order: \\"desc\\"), \\"new\\" (default order: \\"desc\\"), \\"recent\\" (default order: \\"desc\\"), \\"random\\" (default order: \\"asc\\"), or \\"distance\\" (default order: \\"asc\\", only available if the modif"}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\"en\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\"webcams\\", \\"categories\\", \\"continents\\", \\"countries\\", \\"regions\\", \\"properties\\". Default is \\"webcams\\".", "example_value": "webcams:image,location"}}, "required": ["sort", "order"], "optional": ["lang", "show"]}}, {"name": "webcams_list_region_region_region_for_webcams_travel", "description": "This is the subfunction for tool \\"webcams_travel\\", you can use this tool.The description of this function is: \\"This is a modifier. Returns a list of webcams according to the listed region. Multiple regions must be separated by comma. Required: at least one {region}. Possible values are ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot.\\"", "parameters": {"type": "object", "properties": {"region": {"type": "string", "description": "Comma separated list of ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\"en\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\"webcams\\", \\"categories\\", \\"continents\\", \\"countries\\", \\"regions\\", \\"properties\\". Default is \\"webcams\\".", "example_value": "webcams:image,location"}}, "required": ["region"], "optional": ["lang", "show"]}}, {"name": "webcams_list_bbox_ne_lat_ne_lng_sw_lat_sw_lng_for_webcams_travel", "description": "This is the subfunction for tool \\"webcams_travel\\", you can use this tool.The description of this function is: \\"This is a modifier. Returns a list of the webcams in the bounding box given by north-east ({ne_lat},{ne_lng}) and south-west ({sw_lat},{sw_lng}) coordinates. Required: {ne_lat},{ne_lng},{sw_lat},{sw_lng}.\\"", "parameters": {"type": "object", "properties": {"ne_lat": {"type": "integer", "description": "North-east WGS84 latitude of the bounding box."}, "sw_lng": {"type": "integer", "description": "South-west WGS84 longitude of the bounding box."}, "sw_lat": {"type": "integer", "description": "South-west WGS84 latitude of the bounding box."}, "ne_lng": {"type": "integer", "description": "North-east WGS84 longitude of the bounding box."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\"en\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\"webcams\\", \\"categories\\", \\"continents\\", \\"countries\\", \\"regions\\", \\"properties\\". Default is \\"webcams\\".", "example_value": "webcams:image,location"}}, "required": ["ne_lat", "sw_lng", "sw_lat", "ne_lng"], "optional": ["lang", "show"]}}, {"name": "Finish", "description": "If you believe that you have obtained a result that can answer the task, please call this function to provide the final answer. Alternatively, if you recognize that you are unable to proceed with the task in the current state, call this function to restart. Remember: you must ALWAYS call this function at the end of your attempt, and the only part that will be shown to the user is the final answer, so it should contain sufficient information.", "parameters": {"type": "object", "properties": {"return_type": {"type": "string", "enum": ["give_answer", "give_up_and_restart"]}, "final_answer": {"type": "string", "description": "The final answer you want to give the user. You should have this field if \\"return_type\\"==\\"give_answer\\""}}, "required": ["return_type"]}}]', 'name': None}, {'role': 'user', 'content': "\nI'm planning a surprise birthday party for my sister and I need to find a suitable venue. Can you suggest event spaces in the city center with a capacity for 50 people? Also, recommend nearby catering services and provide me with a list of available dates for booking.\nBegin!\n", 'name': None}], 'target': 'Thought: \nAction: spott\nAction Input: {\n  "is_id": "city center"\n}'}}], due to Error code: 400 - {'object': 'error', 'message': '[{\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'developer\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'developer\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'user\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'user\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'assistant\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'assistant\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'tool\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'tool\'"}}, {\'type\': \'missing\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'tool_call_id\'), \'msg\': \'Field required\', \'input\': {\'role\': \'system\', \'content\': \'You are AutoGPT, you can use many tools(functions) to do the following task.\\nFirst I will give you the task description, and your task start.\\nAt each step, you need to give your thought to analyze the status now and what to do next, with a function call to actually excute your step. Your output should follow this format:\\nThought:\\nAction:\\nAction Input:\\n\\nAfter the call, you will get the call result, and you are now in a new state.\\nThen you will analyze your status now, then decide what to do next...\\nAfter many (Thought-call) pairs, you finally perform the task, then you can give your finial answer.\\nRemember: \\n1.the state change is irreversible, you can\\\'t go back to one of the former state, if you want to restart the task, say "I give up and restart".\\n2.All the thought is short, at most in 5 sentence.\\n3.You can do more then one trys, so if your plan is to continusly try some conditions, you can do one of the conditions per try.\\nLet\\\'s Begin!\\nTask description: You should use functions to help handle the real time user querys. Remember:\\n1.ALWAYS call "Finish" function at the end of the task. And the final answer should contain enough information to show to the user,If you can\\\'t handle the task, or you find that function calls always fail(the function is not valid now), use function Finish->give_up_and_restart.\\n2.Do not use origin tool names, use only subfunctions\\\' names.\\nYou have access of the following tools:\\n1spott: Search cities, countries and administrative divisions by name, autocompletion or IP.\\n2webcams_travel: The World\\\'s Largest Landscape Webcam API ***** Get webcams by categories, country, region or just nearby your location ***** Get timelapse slideshows for every webcam ***** Get an uncluttered webcam layer for your map\\n\\nSpecifically, you have access to the following APIs: [{"name": "get_place_by_my_ip_for_spott", "description": "This is the subfunction for tool \\\\"spott\\\\", you can use this tool.The description of this function is: \\\\"Returns the place related to the IP where the request was performed. Returns \\\\"Not Found\\\\" error when no place is related to the IP.\\\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "autocomplete_places_for_spott", "description": "This is the subfunction for tool \\\\"spott\\\\", you can use this tool.The description of this function is: \\\\"Returns a list of places matching a prefix and specified filter properties. Useful to create \\\\"search as you type\\\\" inputs.\\\\"", "parameters": {"type": "object", "properties": {}, "required": [], "optional": []}}, {"name": "get_place_by_ip_for_spott", "description": "This is the subfunction for tool \\\\"spott\\\\", you can use this tool.The description of this function is: \\\\"Returns the Place where a given IP Address is located. Returns \\\\"Not Found\\\\" error when no place is related to the IP. When sending \\\'127.0.0.1\\\' or \\\'0.0.0.0\\\' IP Addresses it will return the Place from the request was performed.\\\\"", "parameters": {"type": "object", "properties": {"is_id": {"type": "string", "description": "IP Address (v4 and v6 are supported).", "example_value": "200.194.51.97"}, "language": {"type": "string", "description": "Specifies a language (ISO 639-1) to get the localized name of the place. If translation is not available, \\\\"localizedName\\\\" property will be null."}}, "required": ["is_id"], "optional": ["language"]}}, {"name": "webcams_list_orderby_order_sort_for_webcams_travel", "description": "This is the subfunction for tool \\\\"webcams_travel\\\\", you can use this tool.The description of this function is: \\\\"This is a modifier. Returns the list of webcams ordered by {order}. The optional sorting direction is given by {sort}. Required {order}.\\\\"", "parameters": {"type": "object", "properties": {"sort": {"type": "string", "description": "Possible values are: \\\\"asc\\\\" (ascending), or \\\\"desc\\\\" (descending)."}, "order": {"type": "string", "description": "Possible values are: \\\\"popularity\\\\" (default order: \\\\"desc\\\\"), \\\\"hotness\\\\" (default order: \\\\"desc\\\\"), \\\\"new\\\\" (default order: \\\\"desc\\\\"), \\\\"recent\\\\" (default order: \\\\"desc\\\\"), \\\\"random\\\\" (default order: \\\\"asc\\\\"), or \\\\"distance\\\\" (default order: \\\\"asc\\\\", only available if the modif"}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\\\"en\\\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\\\"webcams\\\\", \\\\"categories\\\\", \\\\"continents\\\\", \\\\"countries\\\\", \\\\"regions\\\\", \\\\"properties\\\\". Default is \\\\"webcams\\\\".", "example_value": "webcams:image,location"}}, "required": ["sort", "order"], "optional": ["lang", "show"]}}, {"name": "webcams_list_region_region_region_for_webcams_travel", "description": "This is the subfunction for tool \\\\"webcams_travel\\\\", you can use this tool.The description of this function is: \\\\"This is a modifier. Returns a list of webcams according to the listed region. Multiple regions must be separated by comma. Required: at least one {region}. Possible values are ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot.\\\\"", "parameters": {"type": "object", "properties": {"region": {"type": "string", "description": "Comma separated list of ISO 3166-1-alpha-2 codes for the country and a region code separated by a dot."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\\\"en\\\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\\\"webcams\\\\", \\\\"categories\\\\", \\\\"continents\\\\", \\\\"countries\\\\", \\\\"regions\\\\", \\\\"properties\\\\". Default is \\\\"webcams\\\\".", "example_value": "webcams:image,location"}}, "required": ["region"], "optional": ["lang", "show"]}}, {"name": "webcams_list_bbox_ne_lat_ne_lng_sw_lat_sw_lng_for_webcams_travel", "description": "This is the subfunction for tool \\\\"webcams_travel\\\\", you can use this tool.The description of this function is: \\\\"This is a modifier. Returns a list of the webcams in the bounding box given by north-east ({ne_lat},{ne_lng}) and south-west ({sw_lat},{sw_lng}) coordinates. Required: {ne_lat},{ne_lng},{sw_lat},{sw_lng}.\\\\"", "parameters": {"type": "object", "properties": {"ne_lat": {"type": "integer", "description": "North-east WGS84 latitude of the bounding box."}, "sw_lng": {"type": "integer", "description": "South-west WGS84 longitude of the bounding box."}, "sw_lat": {"type": "integer", "description": "South-west WGS84 latitude of the bounding box."}, "ne_lng": {"type": "integer", "description": "North-east WGS84 longitude of the bounding box."}, "lang": {"type": "string", "description": "Localize the results to this language, if available. Default: \\\\"en\\\\".", "example_value": "en"}, "show": {"type": "string", "description": "Content to be listed in the response. Possible values are: \\\\"webcams\\\\", \\\\"categories\\\\", \\\\"continents\\\\", \\\\"countries\\\\", \\\\"regions\\\\", \\\\"properties\\\\". Default is \\\\"webcams\\\\".", "example_value": "webcams:image,location"}}, "required": ["ne_lat", "sw_lng", "sw_lat", "ne_lng"], "optional": ["lang", "show"]}}, {"name": "Finish", "description": "If you believe that you have obtained a result that can answer the task, please call this function to provide the final answer. Alternatively, if you recognize that you are unable to proceed with the task in the current state, call this function to restart. Remember: you must ALWAYS call this function at the end of your attempt, and the only part that will be shown to the user is the final answer, so it should contain sufficient information.", "parameters": {"type": "object", "properties": {"return_type": {"type": "string", "enum": ["give_answer", "give_up_and_restart"]}, "final_answer": {"type": "string", "description": "The final answer you want to give the user. You should have this field if \\\\"return_type\\\\"==\\\\"give_answer\\\\""}}, "required": ["return_type"]}}]\', \'name\': None}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'function\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'function\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'developer\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'developer\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'system\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'system\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'assistant\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'assistant\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'tool\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'tool\'"}}, {\'type\': \'missing\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'tool_call_id\'), \'msg\': \'Field required\', \'input\': {\'role\': \'user\', \'content\': "\\nI\'m planning a surprise birthday party for my sister and I need to find a suitable venue. Can you suggest event spaces in the city center with a capacity for 50 people? Also, recommend nearby catering services and provide me with a list of available dates for booking.\\nBegin!\\n", \'name\': None}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}, {\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'role\'), \'msg\': "Input should be \'function\'", \'input\': \'user\', \'ctx\': {\'expected\': "\'function\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 1, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}]', 'type': 'BadRequestError', 'param': None, 'code': 400}
Predicting(in_domain):   0%|                                                                                                                    | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/sh/toolbench.py", line 31, in <module>
    run_task(task_cfg=task_cfg)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/run.py", line 31, in run_task
    return run_single_task(task_cfg, run_time)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/run.py", line 44, in run_single_task
    result = evaluate_model(task_cfg, outputs)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/run.py", line 126, in evaluate_model
    res_dict = evaluator.eval()
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/evaluator/evaluator.py", line 443, in eval
    answers_list: list = self.get_answers(
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/evaluator/evaluator.py", line 185, in get_answers
    answer_ds: List[dict] = future.result()
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/concurrent/futures/_base.py", line 451, in result
    return self.__get_result()
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/evaluator/evaluator.py", line 115, in _get_answer
    raise e
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/evaluator/evaluator.py", line 107, in _get_answer
    answer_ds: List[dict] = self.model_adapter.predict(inputs=input_prompts, infer_cfg=infer_cfg)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/models/adapters/server_adapter.py", line 61, in predict
    response = self.process_single_input(input_item, infer_cfg)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/models/adapters/server_adapter.py", line 73, in process_single_input
    response = self.send_request(request_json)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/models/adapters/server_adapter.py", line 136, in send_request
    raise e
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/evalscope/models/adapters/server_adapter.py", line 128, in send_request
    response = self.client.chat.completions.create(**parsed_request)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/openai/_utils/_utils.py", line 287, in wrapper
    return func(*args, **kwargs)
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/openai/resources/chat/completions/completions.py", line 925, in create
    return self._post(
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/openai/_base_client.py", line 1239, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
  File "/mnt/data/miniconda3/envs/evalscope/lib/python3.10/site-packages/openai/_base_client.py", line 1034, in request
    raise self._make_status_error_from_response(err.response) from None
openai.BadRequestError: Error code: 400 - {'object': 'error', 'message': '[{\'type\': \'literal_error\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'role\'), \'msg\': "Input should be \'developer\'", \'input\': \'system\', \'ctx\': {\'expected\': "\'developer\'"}}, {\'type\': \'string_type\', \'loc\': (\'body\', \'messages\', 0, \'typed-dict\', \'name\'), \'msg\': \'Input should be a valid string\', \'input\': None}



使用的vllm是什么版本呢

> 使用的vllm是什么版本呢

您好 vllm==0.8.5

> 使用的vllm是什么版本呢

vllm==0.8.5, 启动脚本如下：
model_path=/mnt/Qwen3-14B
model_name=Qwen3-14B
tensor_size=1
port=8000
gmu=0.9
export CUDA_VISIBLE_DEVICES=0
conda deactivate
conda activate vllm
python -m vllm.entrypoints.openai.api_server --served-model-name $model_name --model $model_path --tensor-parallel-size $tensor_size --gpu_memory_utilization $gmu --port $port

vllm版本应该没问题，使用的openai是什么版本呢，我这边是：
```
pip show openai       
Name: openai
Version: 1.72.0
```

pip show openai    
Name: openai
Version: 1.79.0
-----------------------
能复现BUG吗 相同环境相同模型 联网调用模型+调用toolbench可以正常跑通



local_path = ‘/mnt/workspace/00_NLPTeam_space/hqy_workspace/EvalScope/dataset/ToolBench-Static’
数据集从modelscope下载，删除了dataset_infos.json

已复现这个问题，正在修改

问题已修复，拉取main分支代码来使用

> 问题已修复，拉取main分支代码来使用

拉取后解决 衷心感谢您的快速响应与修复！