下载
EN
注册

Function Call特性介绍

大模型的函数调用(function call)能力,也称工具调用能力(tool use),是指大模型能够调用外部工具以扩展其应用范围的能力。函数调用功能允许模型直接调用外部函数或API,从而获得执行特定任务、获取实时数据或增强决策的能力。这一特性不仅扩展了模型的应用范围,使其能处理更复杂、更具体的问题,还提升了模型的实用性和交互性,实现了大模型与外部世界的高效连接,为用户提供更丰富、更个性化的服务。以下统一使用“工具调用”(tool use)来介绍function call特性。

图1 大模型工具调用的流程图

流程步骤

  1. 上层应用将系统prompt和用户输入内容给到大模型,同时由上层应用负责给出大模型本次执行可用的工具集合;
  2. 大模型根据系统promp和用户输入内容,决定是直接返回答案还是从应用给出的工具集合中选取一个或多个函数。如果选择使用工具,则将本次选择的工具名称和工具参数取值信息返回给上层应用;
  3. 上层应用解析来自推理引擎的响应,提取模型选择的工具信息,执行模型选择出的函数,得到本次工具调用的结果;
  4. 上层应用使用工具调用的结果,构造生成答案的prompt,再次发送给大模型,请求生成最终答案;
  5. 大模型根据工具调用的结果,总结信息,生成答案并返回。

使用样例

样例请参考《MindIE Service开发指南》的“关键特性 > Function Call > 使用样例”章节

样例解析:

  1. 样例中的步骤2上层应用向服务发送请求,tools字段给出了大模型本次可以选择的工具的集合,模型将从tools这个列表中考虑使用哪个工具。
  2. 模型根据用户问题和工具集合,会选择工具集合中的某个工具,返回的内容中会带有如下的工具选择信息:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
     "tool_calls": [
                {
                    "function": {
                        "arguments": "{\"order_id\": \"999888\"}",
                        "name": "get_delivery_date"
                    },
                    "id":"11111",
                    "type": "function"
                 }
         ]
    

3. 上层应用根据收到的函数名称和函数参数执行这个函数,得到工具调用的结果。在样例中的步骤3,将工具调用的结果作为输入,向大模型发送请求。

4. 大模型根据工具调用的结果,总结信息,生成答案并返回。

限制与约束

  • Atlas 800I A2 推理产品Atlas 300I Duo 推理卡硬件支持此特性。
  • 当前ChatGLM3-6B模型支持此特性。
  • 使用Function Call特性无需配置额外参数。
  • 当前仅支持openai接口,且不与其他特性叠加使用。

执行推理

  1. 配置服务化参数。服务化的config.json文件路径的详细说明请参考:《MindIE安装指南》中“配置MindIE > 配置MindIE Server > 单机推理”章节中的软件包文件清单。
  2. 启动服务。具体请参考《MindIE Service开发指南》的“快速开始 > 启动服务”章节
  3. 发送请求。参数说明见《MindIE Service开发指南》的“MindIE Service组件 > MindIE MS > 调度器(Coordinator) > RESTful接口API > 用户侧接口 > OpenAI推理接口”章节