小智AI对接Dify工作流

本文主要讲解通过源码部署xiaozhi-esp32-serverpy-xiaozhi方式来对接Dify工作流。简单理解,xiaozhi-esp32-server是小智后端服务,py-xiaozhi是小智的PC客户端(即不需要ESP32硬件测试小智AI)。

一.xiaozhi-esp32-server(服务端)

小智AI有个官方的网站https://xiaozhi.me/,如下所示:

xiaozhi-esp32-server实现类似的功能,它是一个专为基于ESP32的智能硬件提供支持的综合性后端系统。项目结构,如下所示:

xiaozhi-esp32-server
  ├─ xiaozhi-server 8000 端口 Python语言开发 负责与esp32通信
  ├─ manager-web 8001 端口 Node.js+Vue开发 负责提供控制台的web界面
  ├─ manager-api 8002 端口 Java语言开发 负责提供控制台的api

1.manager-web

安装依赖包和启动服务,如下所示:

npm install
npm run serve

打开http://172.16.21.54:8001/#/home,如下所示:

2.manager-api

项目介绍manager-api 该项目基于SpringBoot框架开发。开发使用代码编辑器,导入项目时,选择manager-api文件夹作为项目目录

开发环境:JDK 21 Maven 3.8+ MySQL 8.0+ Redis 5.0+ Vue 3.x

接口文档:启动后打开http://localhost:8002/xiaozhi/doc.html

打开链接http://localhost:8002/xiaozhi/doc.html#/home,如下所示:

3.xiaozhi-server

因为要从manager-api获取配置,主要涉及.config.yaml配置文件,而config.yaml配置文件并不生效。

(1).config.yaml

文件位置:xiaozhi-esp32-server\main\xiaozhi-server\data\.config.yaml

(2)config.yaml(不生效)

文件位置:xiaozhi-esp32-server\main\xiaozhi-server\config.yaml

(3)启动项目

二.智控台配置相关参数

首次登录智控台需要注册一个管理员账号。

1.基础参数

(1)角色配置

特别说明,如果使用DifyLLM,配置文件里prompt(提示词)是无效的,需要在dify中设置提示词。

(2)参数管理

其中,server.secret用来配置xiaozhi-esp32-server\main\xiaozhi-server\data\.config.yaml中的manager-api.secret

2.VAD

语音活动检测模块,默认使用SileroVAD模型。

3.ASR

语音识别模块,默认使用FunASR本地模型。特别说明,需要下载模型文件到xiaozhi-server/models/SenseVoiceSmall目录。模型链接:https://www.modelscope.cn/models/iic/SenseVoiceSmall/files

4.TTS

默认使用EdgeTTS

5.LLM

LLM使用Dify,需要配置实际的基础URL和API秘钥。

使用Dify官网搭建了一个极简的Chatflow应用示例。如下所示:

三.py-xiaozhi(客户端)

1.修改相关配置

文件位置:py-xiaozhi\src\utils\config_manager.py

因为py-xiaozhi(客户端)默认打开的是小智AI官方的页面,需要修改为xiaozhi-esp32-server页面。

2.启动项目

3.绑定设备

根据启动项目时设备播报的6位数验证码,新增和绑定设备。如下所示:

4.小智AI客户端

参考文献

[0] 小智AI对接Dify工作流:https://z0yrmerhgi8.feishu.cn/wiki/MwkRwBgvGiutZnkHdoHcSDJPnSd

[1] 智控台:https://github.com/xinnan-tech/xiaozhi-esp32-server

[2] 小智AI客户端:https://github.com/huangjunsen0406/py-xiaozhi




知识星球服务内容:Dify源码剖析及答疑,Dify对话系统源码,NLP电子书籍报告下载,公众号所有付费资料。加微信buxingtianxia21进NLP工程化资料群

(文:NLP工程化)

发表评论