image-landscapeTool调用

NavTalk 支持通过 Function Calling 实现数字人与外部系统的集成,如天气查询、知识库检索、业务系统触发等。

🔹 Step 1:定义函数工具(tools)

在建立 WebSocket 会话时,发送 session.update 请求体中配置 tools:

tools: [
  {
    type: "function",
    name: "function_call_judge",
    description: "当用户请求超出当前对话能力范围时,自动触发功能扩展调用",
    parameters: {
      type: "object",
      properties: {
        userInput: {
          type: "string",
          description: "需要处理的用户原始请求内容"
        }
      },
      required: ["userInput"]
    }
  }
]

说明:无需用户明确调用,AI 在会话中识别到指令意图后将自动触发。

🔹 Step 2:接收回调事件

当函数被触发后,WebSocket 会接收到如下类型的消息:

字段
含义

type

固定为 response.function_call_arguments.done

arguments

函数调用的参数(字符串格式 JSON)

call_id

当前函数调用的唯一标识

🔹 Step 3:处理函数调用

🔹 Step 4:调用后端接口处理业务逻辑

你可以将 userInput 传给业务系统或中台接口处理,如调用天气接口、CRM系统等:

🔹 Step 5:返回结果至 AI 会话

结果处理完成后,需要将结果推送回 WebSocket,并触发 AI 继续响应:

🎯 常见应用场景示例

场景
用户输入
系统行为

查询天气

“明天北京天气如何?”

调用天气API并返回天气预报

查询知识库

“NavTalk 如何接入 Function Calling?”

接入内部知识系统返回答案

控制设备

“打开会议室灯光”

调用 IoT 接口控制硬件设备

Last updated