飞书搭建chatgpt机器人

1,287 阅读3分钟

需要搭建自己的国外服务器

   具体教程就不多说了,亚马逊和oracle都有免费的服务器,够用就行。这就分享一个亚马逊免费服务器教程。同时以下内容也是基于亚马逊linux服务器做的开发。

搭建go环境

  1. 下载并解压go的sdk
wget https://dl.google.com/go/go1.17.2.linux-amd64.tar.gz
 tar -zxf go1.17.2.linux-amd64.tar.gz -C /usr/local

2. 将go添加到环境变量

vim /etc/profile

// 进入profile 文件
#go 环境变量
export GO111MODULE=on
export GOROOT=/usr/local/go
export GOPATH=/home/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

// 环境生效
source /etc/profile

3. 检查go是否成功

go version

飞书如何配置

  1. 飞书开发者后台创建应用,创建成功 创建应用.jpeg

  2. 添加机器人能力 添加机器人.jpeg

  3. 配置机器人请求网址, xxx/webhook/card 机器人配置.jpeg

  4. 事件订阅添配置网址,和机器人一样: xxx/webhook/event,并加权限:搜索三个词机器人进群、 接收消息、 消息已读, 把他们后面所有的权限全部勾选 事件订阅配置.jpeg

  5. 权限管理,加上以下几个权限: im:resource(获取与上传图片或文件资源) im:message im:message.group_at_msg(获取群组中所有消息) im:message.group_at_msg:readonly(接收群聊中@机器人消息事件) im:message.p2p_msg(获取用户发给机器人的单聊消息) im:message.p2p_msg:readonly(读取用户发给机器人的单聊消息) im:message:send_as_bot(获取用户在群组中@机器人的消息) im:chat:readonly(获取群组信息) im:chat(获取与更新群组信息)

  6. 第一次创建应用需要发布,发布的时候会提交审核给管理员,之后对应的『凭证与基础信息』的appId和secret、以及『事件订阅』的encryptKey和Verification Token 都需要配置在服务器。

linux部署Feishu-OpenAI工程

介绍

   该工程主要是用来部署飞书的机器人(使用chatgpt)访问openai,github地址为 github.com/ConnectAI-E…

步骤

  1. git 下载工程,放到自己的目录下
git clone https://github.com/ConnectAI-E/Feishu-OpenAI

2. 进入Feishu-OpenAI/code,将config.example.yaml重命名为config.yaml,然后进入编辑配置飞书机器人的key、open-ai的key,默认端口9000,也可以修改。因为是国外服务,所以也不需要在配置文件配置代理地址(如果非国外,就需要自己配置代理地址)。

cd Feishu-OpenAI/code
rm config.example.yaml config.yaml
vim config.yaml
# =============== config.yaml 文件内容====================
#  飞书
# 飞书开放后台-自己创建机器人-凭证与基础信息下
APP_ID: cli_xxx
APP_SECRET: xxx
# 飞书开放后台-自己创建机器人-事件订阅下
APP_ENCRYPT_KEY: xxx
APP_VERIFICATION_TOKEN: xxx
# 请确保和飞书应用管理平台中的设置一致
BOT_NAME: chatgpt_Q之家
# openAI key 支持负载均衡 可以填写多个key 用逗号分隔
OPENAI_KEY: xxx,xxx
# 服务器配置
HTTP_PORT: 9000
HTTPS_PORT: 9001
USE_HTTPS: false
CERT_FILE: cert.pem
KEY_FILE: key.pem
# openai 地址, 一般不需要修改, 除非你有自己的反向代理
API_URL: https://api.openai.com
# 代理设置, 例如 "http://127.0.0.1:7890", ""代表不使用代理
HTTP_PROXY: ""

# AZURE OPENAI
AZURE_ON: false # set true to use Azure rather than OpenAI
AZURE_API_VERSION: 2023-03-15-preview # 2023-03-15-preview or 2022-12-01 refer https://learn.microsoft.com/en-us/azure/cognitive-services/openai/reference#completions
AZURE_RESOURCE_NAME: xxxx   # you can find in endpoint url. Usually looks like https://{RESOURCE_NAME}.openai.azure.com
AZURE_DEPLOYMENT_NAME: xxxx # usually looks like ...openai.azure.com/openai/deployments/{DEPLOYMENT_NAME}/chat/completions.
AZURE_OPENAI_TOKEN: xxxx  # Authentication key. We can use Azure Active Directory Authentication(TBD).

  1. 获取go 配置信息,并build生成对应运行文件start-feishubot
go get 
go build

# linux 命令运动到后台
nohup ./start-feishubot &

或者直接运行go工程

go run main.go

4. 杀死运行在后台的服务

# 查找start-feishubot的进程id
ps -ef | grep feishu

## 找到对应进程id
kill -9 id