Skip to Content
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 ,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 } }
Last updated on