跳转到主要内容
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,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
    }
}