如何在请求中正确设置`tools`参数以调用外部工具? - DeepSeek使用指南

发布于 1周前 作者 wuwangju 来自 DeepSeek

如何在请求中正确设置tools参数以调用外部工具? - DeepSeek使用指南

5 回复

在在DeepSeek中,tools参数允许你在请求中调用外部工具或插件。以下是如何正确设置tools参数并调用外部工具的详细步骤和示例代码。

1. 理解tools参数

tools参数是一个包含工具定义的列表,每个工具定义通常包括:

  • name: 工具的名称。
  • description: 工具的简短描述。
  • parameters: 工具所需的参数列表,通常为JSON格式。

2. 示例:调用一个简单的计算器工具

假设你有一个简单的计算器工具,它接受两个数字和一个操作符,并返回计算结果。

工具定义

{
  "name": "calculator",
  "description": "A simple calculator that performs basic arithmetic operations.",
  "parameters": {
    "type": "object",
    "properties": {
      "num1": {"type": "number"},
      "num2": {"type": "number"},
      "operation": {
        "type": "string",
        "enum": ["add", "subtract", "multiply", "divide"]
      }    },
    "required": ["num1", "num2", "operation"]
  }
}

请求示例

import requests

url = "https://api.deepseek.com/v1/chat/completions"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "model": "deepseek-chat",
    "messages": [
        {"role": "user", "content": "Calculate 3 plus 5."}
    ],
    "tools": [
        {
            "name": "calculator",
            "description": "A simple calculator that performs basic arithmetic operations.",
            "parameters": {
                "type": "object",
                "properties": {
                    "num1": {"type": "number"},
                    "num2": {"type": "number"},
                    "operation": {
                        "type": "string",
                        "enum": ["add", "subtract", "multiply", "divide"]
                    }
                },
                "required": ["num1", "num2", "operation"]
            }
        }
    ],
    "tool_choice": "calculator"
}

response = requests.post(url, headers=headers, json=data)
print(response.json())

3. 处理工具调用结果

DeepSeek会返回一个包含工具调用结果的响应。你需要解析这个响应并将结果传递给外部工具。

if "tool_calls" in response.json():
    for tool_call in response.json()["tool_calls"]:
        if tool_call["name"] == "calculator":
            num1 = tool_call["arguments"]["num1"]
            num2 = tool_call["arguments"]["num2"]
            operation = tool_call["arguments"]["operation"]
            
            # 调用计算器工具
            if operation == "add":
                result = num1 + num2
            elif operation == "subtract":
                result = num1 - num2
            elif operation == "multiply":
                result = num1 * num2
            elif operation == "divide":
                result = num1 / num2
            
            print(f"Result: {result}")

4. 注意事项

  • 确保tools参数中的工具定义与外部工具的实际功能匹配。
  • 处理工具调用结果时,确保参数和返回值的类型正确。

通过以上步骤,你可以在DeepSeek请求中正确设置tools参数并调用外部工具。


在在DeepSeek中,tools参数就像是你的“瑞士军刀”,用来调用各种外部工具。首先,确保你的请求是JSON格式,然后在tools字段中列出你需要的工具。比如:

{
  "tools": [
    {
      "name": "search_engine",
      "parameters": {
        "query": "如何设置tools参数"
      }
    }
  ]
}

这里,name是工具的名称,parameters是传递给工具的选项。就像点餐时告诉服务员“不要香菜”一样,参数要具体明确。设置好后,DeepSeek就会像魔术师一样,把这些工具变成你的得力助手!

嘿嘿,想调用外部工具?简单!在DeepSeek中,tools参数就像你的魔法棒。首先,确保你有一个tools列表,里面放着你想调用的工具。每个工具都是一个字典,包含typefunction字段。type是工具的类型,比如functionfunction则是具体的工具配置。别忘了在messages里加上tool_calls,告诉DeepSeek你想用哪个工具。举个例子:

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current weather",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA"
                    }
                },
                "required": ["location"]
            }
        }
    }]

然后,调用API时带上tools参数,DeepSeek就会帮你调用get_weather工具了。别忘了检查返回的tool_calls,处理结果。搞定!

在DeepSeek中调用外部工具时,设置tools参数需要遵循其API文档的指导。通常,这个参数是一个列表或字符串,列出了你需要使用的外部工具名称。例如,如果要使用名为"tool1"和"tool2"的两个工具,你可能需要这样设置:

params = {
    "tools": "tool1,tool2",  # 根据API文档确认格式
}

确保你提供的工具名与系统中注册的名字完全一致,并检查是否满足这些工具的依赖条件。具体的设置方法还需参考DeepSeek的官方文档来获取最准确的信息。

在调用外部工具时,通常需要在请求中正确设置tools参数。这个参数的具体形式和内容取决于你所使用的API或框架的规定。一般情况下,你可能需要按照以下步骤操作:

  1. 确认API文档:首先查阅相关API的官方文档,了解tools参数的确切格式和所需信息。

  2. 准备工具信息:根据文档中的指示准备相应的工具信息。这可能包括工具名称、版本、路径等。

  3. 设置参数:将准备好的工具信息按照文档指定的方式放入请求的tools参数中。

  4. 发送请求:最后发送包含正确设置的tools参数的请求到API服务器。

例如,如果API要求以JSON格式提供工具信息,那么你可能需要构建如下结构的JSON对象:

{
  "tools": [
    {
      "name": "tool1",
      "version": "1.0"
    },
    {
      "name": "tool2",
      "path": "/usr/local/bin/tool2"
    }
  ]
}

请根据具体需求调整上述示例。

回到顶部