构建一个RinGPT AI Agent供电门铃

  发布人:amy2025 时间:2025-08-15

这个想法是在门铃里放一个人工智能代理,能够自由地采取行动。有什么可能出错呢?

去年,由于我的门铃多次打断我,我决定修改它,使ChatGPT可以直接处理访客。这个名为RinGPT的项目可以与访客进行无休止的对话,同时远程通知我。RinGPT还检测关键字并提供预定义的响应。

今年,在与法学硕士合作后,我发现了人工智能代理的概念,并发现将RinGPT升级为智能接待员很有趣。为了测试它的功能,我用一些乐高积木和一个原型装置制作了一个小模型。

什么是AI Agent?

人工智能代理是一个自主实体,通过传感器感知环境,处理信息,并采取行动实现特定目标。它可以是基于软件的(如聊天机器人或推荐系统),也可以集成到硬件中(如机器人或自动驾驶汽车)。

在这个项目中,AI代理可以访问一组工具,并可以根据其目标自主决定使用哪些工具以及以何种顺序使用。

项目概述

这是一个实验原型。虽然它使用人工智能代理,但它并不依赖于专门的代理框架。相反,它是用普通的Python和对OpenAI的多个API调用构建的。尽管它很简单,但该项目涉及大量代码,并且在与软件和物理组件(如传感器读数和门控制)交互方面脱颖而出。

硬件

该项目建立在Unihiker板上。对于那些不熟悉的人来说,Unihiker类似于树莓派,但带有触摸屏,集成传感器,按钮和预装的操作系统。

为了增强功能,我连接了:

•可选IO板

•保留LED按钮

•SG90伺服电机

•蓝牙扬声器(配对用于音频输出)由于Unihiker内置麦克风,因此不需要额外的音频硬件。我还做了一个入口的小纸板模型来测试。

软件设置

配置优步的WiFi接入:

通过USB连接到电脑上。

通过USB连接到电脑上。配置2.4GHz WiFi网络,请访问10.1.2.3。

一旦连接,SSH到指定的IP使用:

必需的库

使用以下命令安装必要的Python库:

API密钥和凭据

你需要取得:

来自OpenAI平台的OpenAI API密钥,电报聊天ID和令牌(这个过程可能很繁琐,但教程广泛可用)蓝牙扬声器设置

将蓝牙扬声器配对一次,使用:

用说话人的MAC地址替换00:00:00:00:00。

RinGPT如何工作

按下按钮→系统播放门铃,并向访客表示欢迎。

记录访客的语音→使用语音识别将语音转换为文本

识别访问者名称→调用OpenAI API与函数调用提取访问者的名称。

选择合适的工具→再次调用OpenAI来决定使用哪个工具。

执行选定的工具→运行检查时间表,灯光水平等功能。

决定最终动作→再次呼叫OpenAI决定是否开门或发送电报通知。

生成响应→使用ChatGPT生成最终响应。

可用的AI代理工具

人工智能代理可以使用以下工具:

其他功能,如开门或发送电报通知,是在程序的流程中处理的,但还没有直接分配给代理(尽管它们可能在未来的版本中)。

议程功能目前是硬编码的,但可以很容易地集成谷歌日历。

getLightConditions函数有些随意,但它是为了利用Unihiker的光传感器而包含的。

LLM呼叫与处理

并不是所有对OpenAI的调用都是相同的。

第一次调用:使用OpenAI函数调用提取访问者的名字,无论他们如何表达它。

后续调用:一些响应是JSON格式,而其他响应是纯文本。

运行脚本

要启动RinGPT,请运行:

要将其设置为自动启动,请按照这里的说明进行操作。

日志记录

由于RinGPT是自主操作的,因此日志记录了用于监视目的的所有操作和交互。

结论

与传统的启发式编程不同,在启发式编程中,操作是可预测的,llm引入了不确定性元素。在测试期间,相同的提示符和代码有时会产生意想不到的结果,例如:

在JSON响应中提供额外的信息,并且由于“不确定性”而拒绝选择工具。在改进提示之后,我能够得到一致和可靠的结果。

除了这个简单的例子,人工智能代理的潜力是巨大的,特别是支持微调和检索增强生成(RAG)的模型。

真正的问题是:我们愿意给我们的人工智能代理多大的自主权?

关键词: AI ChatGPT SG90伺服电机 传感器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关电路