AI 工具调用
AI 的限制
AI 在嵌入式系统中有许多用途,但输出可能包含不准确、偏见或安全问题。
本指南假设您已经查看了我们的嵌入向量指南和 AI 文本助手指南。
工具调用允许 AI 模型的输出调用外部函数或 API。工具调用的典型用途是从基于云的 LLM 访问云 API;但在嵌入式系统中,我们也可以使用它与系统状态和外设进行交互。这有许多用途,包括嵌入式系统的语音用户界面 (VUI) 控制。
让我们扩展基于问答的 AI 助手,使其在看到特殊标记时调用外部工具。 这使您的 AI 能够:
- 通过网络摄像头查看(
{vision}) - 打开/关闭 LED(
{light_on}和{light_off}) - 运行 shell 命令(
{time})

信息
本快速指南适用于所有 SL16xx 开发板。虽然推理性能可能有所不同,但所有 Astra SL 系列处理器的步骤都相同。
硬件设置
- Synaptics Astra SL1680 开发板
- USB 网络摄像头(可选)
- 由
vision.py访问,它使用 NPU 加速在帧上运行图像分类 - 返回文本描述,例如:"我看到一只猫。"
- 由
- GPIO 引脚上的 LED(可选)
- 连接到 GPIO[36](开发板上的物理引脚 33)高电平(
{light_on})或低电平({light_off}) - 通过类似"开灯"或"关灯"的短语进行语音控制
- 连接到 GPIO[36](开发板上的物理引脚 33)高电平(

运行演示
- 运行助手
python3 -m assistant.toolcall - 询问"你能看到什么?"
- 系统在
qa_pairs.json中识别匹配项("我看到 {vision}) - 它发现
{vision},运行python3 path/to/vision.py,并用脚本输出替换{vision}。
- 系统在
- 询问"打开灯"
- 匹配问答
"打开灯" ->"{light_on}"` - 您的代码执行 GPIO 命令将 LED 引脚设置为高电平。
- 匹配问答
- 询问"现在几点了?"
- 返回
{date}=> 调用date=> 输出系统时间。
- 返回
工作原理
- 嵌入向量和相似度:我们将每个"问题+答案"对嵌入到向量空间中。当用户提问时,我们计算问题的嵌入向量,将其与存储的嵌入向量进行比较,并找到最高的余弦相似度。
- 响应构建:我们从
qa_pairs.json中检索最佳匹配的"答案"。 - 标记替换:在打印最终答案之前,我们查找任何占位符,如
{light_on}。如果存在,我们从tools.json执行相应的命令,并用命令的输出替换标记。