接入飞书完整功能需要公网 IP。假设使用阿里云 ECS(学生免费版即可)、假设公网 IP 是 101.133.161.20
。且已配置安全组,外部可访问 6666
端口号,尤其是部署飞书的云服务器公网地址能够访问。
常见地,有公网 IP 的机器往往没有 GPU,我们将分开部署 LLM 和飞书消息存储,请注意命令执行时所在机器。
测试企业是开发期间使用的测试环境,不需要正式权限审核。正式上线前都应该用测试企业的配置运行代码。
STEP1. 打开飞书开发者平台-开发者后台-创建企业自建应用
STEP2. 点击应用头像,创建测试企业
STEP3. 切换到测试企业,开始配置
STEP1. 在阿里云 ECS(101.133.161.20 机器)上,安装 redis-server 和依赖
# Ubuntu 启动 redis-server
sudo apt install redis-server
redis-server
..
# 在 CentOS 和 Red Hat 系统中,首先添加 EPEL 仓库,然后更新 yum 源
sudo yum install epel-release
sudo yum update
# 然后安装 redis 数据库
sudo yum -y install redis
# 安装好后启动 redis 服务即可:
sudo systemctl start redis
..
启动群聊消息监听
# ECS 上,开个新终端,启动消息监听 6666 端口号
cd huixiangdou
python3 -m pip install -r requirements-lark-group.txt
python3 -m huixiangdou.frontend.lark_group
..
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:6666
* Running on http://101.133.161.20:6666
Press CTRL+C to quit
STEP2. 飞书开发者平台-添加应用能力-机器人
STEP3. 配置机器人的回调地址
我们以http://101.133.161.20:6666/event
为例,点击右侧“验证”按钮,ECS 应能收到一条消息,此时还未配置 key 和 token 会报错。
STEP4. 权限管理-添加权限
在测试企业中,添加权限不需要审批。以下是所需权限列表,搜索添加
* 读取群消息
* 获取群组信息
* 获取与发送单聊、群组消息
* 接收群聊@机器人消息事件
* 获取群组中所有消息
* 获取用户发给机器人的单聊消息
* 获取单聊、群组消息
* 以应用的身份发消息
STEP5. 事件与回调-事件订阅
配置请求地址,假设 key 是 abc
,token 是 def
;添加事件 “接收消息 v2.0”
此时可在飞书 APP 上,打开测试企业,把应用“茴香豆” 加进群组。
-
在群里发消息,ECS 应保存到 redis 中
-
可以用
curl -X POST -H "Content-Type: application/json" http://101.133.161.20:6666/fetch
读取 redis 中的消息 测通的样例: -
为了能及时撤回。 用户依次发送 4 条消息:“1、2、3、豆哥撤回”,接收顺序应该是 “豆哥撤回、1、2、3”
打开应用-凭证与基础信息,获取 App ID 和 App Secret,连同之前的 key、token 和回调地址,一起填入 config.ini
。
消息类型改成 lark_group
[frontend]
type = "lark_group"
..
# ECS 回调地址
webhook_url = "http://101.133.161.20:6666/fetch"
[frontend.lark_group]
# "lark_group" configuration examples, use your own app_id and secret !!!
app_id = "cli_a53a34dcb7785xxx"
app_secret = "2ajhg1ixSvlNm1bJkH4tJhPfTCsGGXXX"
encrypt_key = "abc"
verification_token = "def"
如同 README 运行测试,执行 main
python3 -m huixiangdou.main --standalone
..
======== Running on http://0.0.0.0:8888 ========
(Press CTRL+C to quit)
输入技术问题,茴香豆会作答;在群组里输入“豆哥撤回”,助手将撤回发送过的所有消息。
切换回正式版本。添加权限、设置回调地址。
点击“版本管理与发布-创建版本”,等待管理员审核上线。
-
如果
curl -X POST -H "Content-Type: application/json" http://101.133.161.20:6666/fetch
执行超时如下图。 解答:如果你的GPU机器有公网IP,修改webhook url地址为127.0.0.1 -
报错huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form repo_name' or 'namespace/repo_name': '/data/bcee-embedding-base v1'. Use
repo_type
argument if needed 解答:sentence_transformers包的bug,包版本降到2.2.2可以修复。