跳转到主要内容
大模型虽然掌握了丰富的知识,但在特定领域,例如时效性较高的资讯类和天气预报,或者需要严密科学计算,以及特定行业的知识,当它们匮乏这部分知识时,它们可能会编造看似真实但实则虚假的信息。 为解决这一问题。阶跃大模型提供了 Tool call 工具,Tool call 可以扩展语言模型的功能,使其能够执行额外的操作,如搜索信息、科学计算、访问数据库等。这样模型可以为用户提供更精准的信息,帮助开发者更好地处理业务需求。 除了获取信息以外, Tool Call 还可以帮助开发者生成函数调用签名,开发者通过对调用签名的处理,实现扩展应用能力,让你的应用除了对话,还可以完成各项不同的能力。

实现原理 & 参考

在使用 Tool Call 时,我们可以选择两个方向来思考 Tool Call 帮助我们扩展应用能力:
  • 使用 Tool Call 获取大模型自身训练不包含的信息,丰富上下文,精确回答内容;
  • 使用 Tool Call 操作本地应用程序,执行特定业务操作。
前者主要通过 Tool Call 调用预定义好的函数,以获得更加精确的信息,帮助大模型补全上下文,从而生成更加精确的回答。 后者则是通过 Tool Call 调用本地应用程序,执行特定的业务操作,以实现更加丰富的功能。

使用 Tool Call 获取信息

这里我们以助手类应用的常见技能 —— 查询天气为例,我们需要构建一个可以通过自然语言,查询天气的能力。 你需要做以下四步:
  • 第一步,需要准备好查询天气接口的地址和密钥,构造查询天气的 Function;
  • 第二步,构建 get_weather 工具定义查询天气 Function 的功能;
  • 第三步,阶跃大模型识别用户查询天气的意图时,根据提示语给出查询参数;
  • 第四步,使用大模型返回的参数调用查天气接口,获取准确的天气信息。
参考代码:以 Python 为例
返回结果:

使用 Tool Call 执行任务

当应用需要扩展其能力,不仅仅是获取数据时,则可以通过 Tool Call 能力,为你的应用增加一些神奇的能力,从而帮助用户更进一步展示不同的能力。 这里我们同样以助手类应用为例,我们可以实现一个通过自然语言发送电子邮件的能力。你需要做以下几步:
  • 第一步,在本地构建出一个发送邮件的 Function ,并实现发送邮件相关功能;
  • 第二步,构建 send_email 工具定义发送邮件的功能;
  • 第三步,阶跃大模型识别用户发送邮件的意图时,根据提示语给出查询参数;
  • 第四步,使用大模型返回的参数调用发送电子邮件。
参考代码:以 Python & Swift 为例
本地的发送邮件的 Function
服务端调用阶跃星辰大模型的参考代码

注意事项

  • 构造 Tool 的时候请注意将 Function 的 description 描述清楚,以便于大模型清晰的知道 Function 的功能,这样能提高命中率;
  • Function 入参的 description 也需要备注清楚(建议说明入参是中文还是英文),以便于大模型生成有效的参数供使用。