文档
API 文档
Toolcall

使用介绍

Toolcall(或叫Function Calling)是阶跃星辰开放平台提供的一项高级功能,它使模型能够根据用户的需求,智能地选择并调用合适的外部工具或函数来完成特定的任务。通过Toolcall API,开发者可以扩展模型的能力,使其能够处理更广泛的应用场景,并提供更丰富的功能和服务。下面是一个简单的工具调用的请求JSON例子, 在这个对象中,必须包含三个关键参数:

{
    "model": "step-1-8k",
    "messages": [
        {
            "role": "user",
            "content": "小跃跃,你能为我计算(80 + 20) / 5 吗?"
        }
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "Calculator",
                "description": "这个阶跃星辰开放平台API提供基本的算术运算:加法、减法、乘法和除法。",
                "parameters": {
                    "properties": {
                        "formula": {
                            "type": "string",
                            "description": "需要计算的公式。仅支持整数。有效的运算符包括+、-、*、/和括号。例如,(1 + 2) * 3。"
                        }
                    },
                    "type": "object"
                }
            }
        }
    ]
}

model,模型名称

下面的几个模型支持处理Toolcall请求数据

  • step-1-8k
  • step-1-32k
  • step-1v-8k
  • step-1v-32k
  • step-1-128k
  • step-1-256k

官方工具列表

以下是由阶跃星辰支持的官方工具,仅需配置即可实现相关能力:

  • 互联网搜索:调用搜索引擎,获取互联网上的最新信息。

tools,工具函数列表

通过tools参数告知模型本地支持的函数列表,函数列表不能超过128个,成员对象包含类型type和function对象,其中类型type仅支持function, 函数对象包含名称name、功能介绍description和参数parameters。

  • 函数名称name需要是纯英文、数字和_-符号,建议不要超过64个字符长度,这样容易被大模型所理解,遵守这样的正则表达式作为规范: ^[a-zA-Z_][a-zA-Z0-9-_]63$),这个名字如果是一个容易理解的英文,可能会更加被模型所识别和理解。
  • 函数参数parameters 字段,根结点类型type必须是一个 object,内容是一个 json schema 的子集,每个子集的key遵循函数名称的规则,类型type支持参见json schema (opens in a new tab),description 跟函数功能介绍类似。
  • 功能介绍 description,支持中英文,它用于告诉模型函数实现何种功能和目的,方便模型来判断和选择。

messages,上下文消息体

参考Chat Completion请求对象

示例

from openai import OpenAI
 
client = OpenAI(api_key="STEP_API_KEY", base_url="https://api.stepfun.com/v1")
 
completion = client.chat.completions.create(
model = "step-1-8k",
messages = [
    {
        "role": "user",
        "content": "你能为我计算(80 + 20) / 5 吗?"
    }
],
tools = [{
    "type": "function",
    "function":  {
        "name": "Calculator",
        "description": "这个阶跃星辰开放平台API提供基本的算术运算:加法、减法、乘法和除法。",
        "parameters": {
            "type": "object",
            "properties": {
                "formula": {
                    "type": "string",
                    "description": "需要计算的公式。仅支持整数。有效的运算符包括+、-、*、/和括号。例如,'(1 + 2) * 3'。"
                }
            }
        }
    }
}]
)
 
print(completion)
 
返回
{
    "id": "b7b56af0-52a6-483f-a589-948182676a1b",
    "object": "chat.completion",
    "created": 1717744611,
    "model": "step-1-8k",
    "choices":
    [
        {
            "index": 0,
            "message":
            {
                "role": "assistant",
                "content": "",
                "tool_calls":
                [
                    {
                        "id": "call_ybVBO_JASgipgJH8xWbhKg",
                        "type": "function",
                        "function":
                        {
                            "name": "Calculator",
                            "arguments": "{\"formula\": \"(80 + 20) / 5\"}"
                        }
                    }
                ]
            },
            "finish_reason": "stop"
        }
    ],
    "usage":
    {
        "prompt_tokens": 151,
        "completion_tokens": 25,
        "total_tokens": 176
    }
}