加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

“行空板+大模型”——基于ChatGLM的多角色交互式聊天机器人

2023/12/12
2874
阅读需 9 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

随着人工智能技术的迅猛发展,大型语言模型成为了热门话题。国际上的GPT-3、BERT等模型备受关注,而国内的本土语言模型ChatGLM也引起了广泛关注。ChatGLM是由清华大学开发的强大语言生成模型,结合了深度学习技术和大量中文语料的训练成果。它在自然语言理解和生成方面展现了出色性能,为国内的自然语言处理研究与应用提供了有力支持。

通过使用行空板和UGB喇叭,你可以制作一个有趣好玩的聊天机器人应用。只需修改角色描述,你就能打造属于自己的个性化聊天机器人,它能以多个角色身份与你进行对话。

1702007267369435.png

硬件准备

行空板,USB线,USB喇叭

行空板是一款专为Python学习和使用设计的新一代国产开源硬件,采用单板计算机架构,集成LCD彩屏、WiFi蓝牙、多种常用传感器和丰富的拓展接口。同时,其自带Linux操作系统和Python环境,还预装了常用的Python库,只需两步就能进行Python学习。

功能分解

具体操作

1、注册智谱api:智谱AI开放平台,https://open.bigmodel.cn/,选择验证码登录,输入手机号和验证码完成册。点击API keys, 点击“去认证”,进行实名认证。

2、注册并获取微软语音服务API密钥

(1)注册微软的账号,输入网址:https://portal.azure.com/,用邮箱创建新账号。

新用户有一年的免费额度但需要信用卡验证。如果没有条件申请微软的语音服务API,也可以使用百度的语音服务API,文章的最后提供了使用ChatGLM和百度API的实现代码。

(2)通过验证: 创建好账号登录后会进入以下页面https://portal.azure.com/#home面对新用户,微软提供了1年的免费服务但需要通过验证,这里有两种验证方法。(1)visa/银联卡验证(2)大学生能无需信用卡,使用学生邮箱验证。

(3)申请资源: 验证通过后,在Azure门户中,点击左上角的“+ 创建资源”按钮。之后会跳转到如下页面,按照提示完成填写信息。

3、加载行空板-安装库-行空板联网

(1)加载行空板 :第一步:使用USB线将行空板连接在电脑上。按照步骤加载行空板,创建好文件后,可以看到一个名为“chatbot.py”的文件,双击打开。

(2)安装所需要的库,依次输入PIP指令,点击“运行”

(3)行空板联网:调用API必须要联网。由于在本项目中,使用了智谱清言的API和微软的语音API,所以要为行空板连接网络。(1)打开浏览器,输入“10.1.2.3”进行行空板页面。(2)选择“网络设置”,选择WIFI ,输入密码,注意行空板仅支持2.4GWIFI热点。点击“连接”,行空板成功联网会显示“连接成功”,如下图。

4、编程

(1)调用chatglm的API: 参考官方的API调用文档,定义一个名为ChatGPT的类,代表聊天机器。为了测试效果,在主循环中获取用户输入,将用户的输入传给聊天机器人,打印聊天机器人的回复。

(2)实现多轮对话: 点击右上角的运行,开始在终端打字,与机器人进行对话。以下是测试对话截图,"You"部分是输入的内容,“chatbot”是调用智谱API,使用模型'chatglm_turbo',获取的回复

当聊天机器人给出谜语后,回复“猜不出来”时,期待的是聊天机器人能告诉谜语的答案。但显然根据它的回复,模型没有理解语意是猜不出上轮对话的谜语。这个现象是因为与模型的对话是单轮的形式,即问一答一;而在处理复杂的对话场景时,理解上下文和实现多轮对话是非常重要的。期待的效果是聊天机器人能结合上下文的语境,实现多轮对话。要解决这个问题,可以将整个对话历史作为输入发送给模型,而不仅仅是最新的用户消息。这样,模型就可以看到整个对话的上下文,并据此生成回复。

为了让聊天机器人能理解上下文的语境,可以在__init__ 方法中添加 self.dialogue 列表,用于存储对话历史。在 send_message 方法中,将用户的消息和模型的回复都添加到对话历史中,然后将整个对话历史转化为一个字符串,作为提示发送给模型。

(3)创建角色字典,实现多角色选择

现在我们已经成功实现了多轮对话,在与聊天机器人对话时,它是以人工智能助手(assistant)的身份。怎么能实现角色扮演呢?为了实现这个功能,可以在 ChatGPT 类中添加一个 self.role 属性来存储角色描述。然后,我们可以修改 send_message 方法,使其在将对话历史转化为字符串时,首先添加角色描述。这样,模型就会知道它应该扮演的角色,从而生成符合角色的回复。

5、UI设计

按照同样的逻辑在行空板上进行UI设计。

6、实现语音交互功能

实现语音交互功能,在角色图片的下方添加一个麦克风图片,当点击麦克风图片开始录音,并使用百度语音识别API实现语音转文字作为对话内容传给聊天机器人,再调用百度语音合成API将聊天机器人的回复播报出来。

借助ChatGLM语言生成模型和多种人工智能技术,我们可以创建一个有趣而富有趣味性的聊天机器人应用。只需准备一块行空板和一个UGB喇叭,就能得到一个可以扮演多个角色与你进行对话的机器人助手。通过自定义角色描述,你可以打造一个完全符合个性化需求的聊天机器人!让我们一起开始这个有趣的项目吧!

关于“行空板+大模型”——基于ChatGLM的多角色交互式聊天机器人 ”详细实现过程,关注“行空板”公众号”,了解更多。

上海智位机器人

上海智位机器人成立于2010年,是全球领先的从事开源硬件、机器人产品和科创教育的高科技企业,打造了DFRobot、蘑菇云科创教育等品牌,是国内最早的创客理念引入者和倡导者,创客教育的开拓者和引领者。旗下拥有中国最大的线上DF创客社区和国家级创客空间——蘑菇云创客空间,提供丰富的线上和线下学习资源,构建了一个自由、开放和富于创造力的交流空间。其Gravity产品已被全球超过100万开发者选用。合作伙伴包括微软、英特尔、Autodesk、霍尼韦尔、NASA、MIT等知名厂商和机构。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
MCF5282CVM66 1 Freescale Semiconductor MCF5282 V2CORE 512KFLASH
$40.57 查看
MKL17Z256VMP4 1 Freescale Semiconductor Kinetis L 32-bit MCU, ARM Cortex-M0+ core, 256KB Flash, 48MHz, MAPBGA 64

ECAD模型

下载ECAD模型
$5.01 查看
STM32F405RGT6 1 STMicroelectronics High-performance foundation line, Arm Cortex-M4 core with DSP and FPU, 1 Mbyte of Flash memory, 168 MHz CPU, ART Accelerator

ECAD模型

下载ECAD模型
$16.63 查看

相关推荐

电子产业图谱