Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/frankfang/feishu-chatgpt-3


https://github.com/frankfang/feishu-chatgpt-3

Last synced: 17 days ago
JSON representation

Awesome Lists containing this project

README

        



📷 点击展开完整功能截图



语音对话
角色扮演
角色列表
文字成图
图片变体
余额查询
帮助菜单



飞书 ×(GPT-3.5 + DALL·E + Whisper)




🚀 Feishu OpenAI 🚀

## 商业支持

如果开源版无法满足您公司的需求,推荐您尝试正在内测的商业交付版本

- 内置开箱即用的Azure Openai: 无需部署到海外,即可获得数十倍的性能提升
- 掌控全局的Admin Panel: AI资源管理、对话日志查询、风险词规避和对话权限管理
- 专人技术支持: 配备专业部署交付人员与后期一对一维护服务
- 同时提供在线Saas版/企业级私有部署

查看更多内容: https://connect-ai.forkway.cn

## 🥁 号外号外!

大家好呀!我是[feishu-OpenAI](https://github.com/ConnectAI-E/Feishu-OpenAI)的作者River。非常兴奋地欢迎大家加入我们的[Connect-AI开源马拉松](https://fork-way.feishu.cn/base/LzPObR5YQaHSAssauDAcZdS3nuo?table=tblvKqjRYNfmoLMo&view=vewsekmPW4)活动!

AIGC的热潮正在各行各业掀起巨大的变革,我们看到各大社群以”知识xx“为代表的”割韭菜“行为,不禁感到无奈。身为互联网行业的从业者,与其指点江山激扬文字,不如参与其中,感受发展。为此我们成立了下面10个课题组,并从技术可行性的基础上进行了调研,现并欢迎大家自由选择组队并加入相关的项目推进群。


image

无论您是设计师、前端工程师、后端工程师、算法工程师还是测试小伙伴,只要您对GPT技术充满热情,就可以参与到我们的开源项目中来。设计师们可以参与多个repo,优化项目的交互体验和设计风格;前端工程师可以参与每个项目的UI搭建;后端和算法工程师们则可以积极学习AI能力的使用。我们还诚邀测试小伙伴参与每次发版前的功能内测。

每个项目都需要招募一个项目负责人,我们会将其指定为repo的owner。如果您愿意深度参与,可以找我报名成为负责人。当然,如果项目表上有队长名称,则代表已经招募完成。其他同学可以在业余时间参与一个或多个项目。

我们的目标是为AI开源社区提供一个可持续性的生态系统,并且鼓励更多的人参与其中,共同推进AI技术的发展。后续遇到企业的定制AI开发需求,我们会优先邀请相关课题的同学参与,这样既可以帮助他们获取不错的收入,也符合开源的精神和原则。我们希望通过这样的方式,让我们的开源项目更有可持续性,让更多人愿意加入我们,共同推进AI技术的发展!

预期奖励内容包括:
- A奖励:小队完成度奖励,鼓励小队长参与项目,能够在指定时间内完成课题规定的基本内容,队长应获得一定的奖励。
- B奖励:项目优秀度奖励,根据项目复杂度、组内配合度、产品创意度,以及期中和期末用户体验打分,评选出优秀项目的队长和核心队员,并给予相应奖励。
- C奖励:成员活跃度奖励,考虑到设计和测试身份的特殊性,无法单独带领项目。因此,我们将评选出优秀设计师和优秀测试反馈员,以表彰他们在项目中的积极参与和贡献。

做出下面奖励安排
- A奖励项目完成度:京东E卡300 * 10
- B奖励项目优秀度:
- 杰出奖: iPhone14 * 1 + 京东E卡300 * 3
- 优秀奖: PS5 * 1 + 京东E卡300 * 3
- C奖励成员活跃度:京东E卡300 * 4

我们队员有
- [EX-chatGPT](https://github.com/circlestarzero/EX-chatGPT)和[ChatPaper的维护者](https://github.com/kaixindelele/ChatPaper)-->[cc](https://github.com/circlestarzero)
- [钉钉GPT的维护者](https://github.com/eryajf/chatgpt-dingtalk)-->[eryajf](https://github.com/eryajf)
- [飞书GPT的维护者](https://github.com/Leizhenpeng/feishu-chatgpt)-->[river](https://space.bilibili.com/66891783)
- [上百款在线设计插件的开发者](https://mastergo.com/community/profile/72319417503384?tab=plugin)-->山山
- 正在心动的你!

如果您对Connect-AI开源马拉松感兴趣,请随时加入项目推进群,一起为AI技术的未来贡献力量!

image

## 👻 机器人功能

🗣 语音交流:私人直接与机器人畅所欲言

💬 多话题对话:支持私人和群聊多话题讨论,高效连贯

🖼 文本成图:支持文本成图和以图搜图

🛖 场景预设:内置丰富场景列表,一键切换AI角色

🎭 角色扮演:支持场景模式,增添讨论乐趣和创意

🤖 AI模式:内置4种AI模式,感受AI的智慧与创意

🔄 上下文保留:回复对话框即可继续同一话题讨论

⏰ 自动结束:超时自动结束对话,支持清除讨论历史

📝 富文本卡片:支持富文本卡片回复,信息更丰富多彩

👍 交互式反馈:即时获取机器人处理结果

🎰 余额查询:即时获取token消耗情况

🔙 历史回档:轻松回档历史对话,继续话题讨论 🚧

🔒 管理员模式:内置管理员模式,使用更安全可靠 🚧

🌐 多token负载均衡:优化生产级别的高频调用场景

↩️ 支持反向代理:为不同地区的用户提供更快、更稳定的访问体验

📚 与飞书文档互动:成为企业员工的超级助手 🚧

🎥 话题内容秒转PPT:让你的汇报从此变得更加简单 🚧

📊 表格分析:轻松导入飞书表格,提升数据分析效率 🚧

🍊 私有数据训练:利用公司产品信息对GPT二次训练,更好地满足客户个性化需求 🚧

## 🌟 项目特点

- 🍏 对话基于 OpenAI-[gpt-3.5-turbo](https://platform.openai.com/account/api-keys) 接口
- 🍎 通过 lark,将 ChatGPT 接入[飞书](https://open.feishu.cn/app)和[飞书国际版](https://www.larksuite.com/)
- 🥒
支持[Serverless 云函数](https://github.com/serverless-devs/serverless-devs)、[本地环境](https://dashboard.cpolar.com/login)、[Docker](https://www.docker.com/)、[二进制安装包](https://github.com/Leizhenpeng/feishu-chatgpt/releases/)
等多种渠道部署
- 🍋 基于[goCache](https://github.com/patrickmn/go-cache)内存键值对缓存

## 项目部署

###### 有关飞书的配置文件说明,**[➡︎ 点击查看](#详细配置步骤)**

本地部署

```bash
git clone [email protected]:Leizhenpeng/feishu-chatgpt.git
cd feishu-chatgpt/code
```

如果你的服务器没有公网 IP,可以使用反向代理的方式

飞书的服务器在国内对 ngrok 的访问速度很慢,所以推荐使用一些国内的反向代理服务商

- [cpolar](https://dashboard.cpolar.com/)
- [natapp](https://natapp.cn/)

```bash
# 配置config.yaml
mv config.example.yaml config.yaml

//测试部署
go run main.go
cpolar http 9000

//正式部署
nohup cpolar http 9000 -log=stdout &

//查看服务器状态
https://dashboard.cpolar.com/status

// 下线服务
ps -ef | grep cpolar
kill -9 PID
```

更多详细介绍,参考[飞书上的小计算器: Go 机器人来啦](https://www.bilibili.com/video/BV1nW4y1378T/)


serverless云函数(阿里云等)部署

```bash
git clone [email protected]:Leizhenpeng/feishu-chatgpt.git
cd feishu-chatgpt/code
```

安装[severless](https://docs.serverless-devs.com/serverless-devs/quick_start)工具

```bash
# 配置config.yaml
mv config.example.yaml config.yaml
# 安装severless cli
npm install @serverless-devs/s -g
```

安装完成后,请根据您本地环境,根据下面教程部署`severless`

- 本地 `linux`/`mac os` 环境

1. 修改`s.yaml`中的部署地区和部署秘钥

```
edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" # 修改自定义的秘钥别称

vars: # 全局变量
region: "cn-hongkong" # 修改云函数想要部署地区

```

2. 一键部署

```bash
cd ..
s deploy
```

- 本地`windows`

1. 首先打开本地`cmd`命令提示符工具,运行`go env`检查你电脑上 go 环境变量设置, 确认以下变量和值

```cmd
set GO111MODULE=on
set GOARCH=amd64
set GOOS=linux
set CGO_ENABLED=0
```

如果值不正确,比如您电脑上为`set GOOS=windows`, 请运行以下命令设置`GOOS`变量值

```cmd
go env -w GOOS=linux
```

2. 修改`s.yaml`中的部署地区和部署秘钥

```
edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" # 修改自定义的秘钥别称

vars: # 全局变量
region: "cn-hongkong" # 修改云函数想要部署地区

```

3. 修改`s.yaml`中的`pre-deploy`, 去除第二步`run`前面的环变量改置部分

```
pre-deploy:
- run: go mod tidy
path: ./code
- run: go build -o
target/main main.go # 删除GO111MODULE=on GOOS=linux GOARCH=amd64 CGO_ENABLED=0
path: ./code

```

4. 一键部署

```bash
cd ..
s deploy
```

更多详细介绍,参考[仅需 1min,用 Serverless 部署基于 gin 的飞书机器人](https://www.bilibili.com/video/BV1nW4y1378T/)

使用 Railway 平台一键部署

Railway 是一家国外的 Serverless 平台,支持多种语言,可以一键将 GitHub 上的代码仓库部署到 Railway 平台,然后在 Railway
平台上配置环境变量即可。部署本项目的流程如下:

#### 1. 生成 Railway 项目

点击下方按钮即可创建一个对应的 Railway 项目,其会自动 Fork 本项目到你的 GitHub 账号下。

[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/10D-TF?referralCode=oMcVS2)

#### 2. 配置环境变量

在打开的页面中,配置环境变量,每个变量的说明如下图所示:

Railway 环境变量

#### 3. 部署项目

填写完环境变量后,点击 Deploy 就完成了项目的部署。部署完成后还需获取对应的域名用于飞书机器人访问,如下图所示:

Railway 域名

如果不确定自己部署是否成功,可以通过访问上述获取到的域名 (https://xxxxxxxx.railway.app/ping) 来查看是否返回了`pong`
,如果返回了`pong`,说明部署成功。

docker部署

```bash
docker build -t feishu-chatgpt:latest .
docker run -d --name feishu-chatgpt -p 9000:9000 \
--env APP_ID=xxx \
--env APP_SECRET=xxx \
--env APP_ENCRYPT_KEY=xxx \
--env APP_VERIFICATION_TOKEN=xxx \
--env BOT_NAME=chatGpt \
--env OPENAI_KEY="sk-xxx1,sk-xxx2,sk-xxx3" \
--env API_URL="https://api.openai.com" \
--env HTTP_PROXY="" \
feishu-chatgpt:latest
```

注意:

- `BOT_NAME` 为飞书机器人名称,例如 `chatGpt`
- `OPENAI_KEY` 为openai key,多个key用逗号分隔,例如 `sk-xxx1,sk-xxx2,sk-xxx3`
- `HTTP_PROXY` 为宿主机的proxy地址,例如 `http://host.docker.internal:7890`,没有代理的话,可以不用设置
- `API_URL` 为openai api 接口地址,例如 `https://api.openai.com`, 没有反向代理的话,可以不用设置

---

小白简易化 docker 部署

- docker 地址: https://hub.docker.com/r/leizhenpeng/feishu-chatgpt

```bash
docker run -d --restart=always --name feishu-chatgpt2 -p 9000:9000 -v /etc/localtime:/etc/localtim:ro \
--env APP_ID=xxx \
--env APP_SECRET=xxx \
--env APP_ENCRYPT_KEY=xxx \
--env APP_VERIFICATION_TOKEN=xxx \
--env BOT_NAME=chatGpt \
--env OPENAI_KEY="sk-xxx1,sk-xxx2,sk-xxx3" \
--env API_URL=https://api.openai.com \
--env HTTP_PROXY="" \
dockerproxy.com/leizhenpeng/feishu-chatgpt:latest
```

事件回调地址: http://IP:9000/webhook/event
卡片回调地址: http://IP:9000/webhook/card

把它填入飞书后台

---

部署azure版本

```bash
docker build -t feishu-chatgpt:latest .
docker run -d --name feishu-chatgpt -p 9000:9000 \
--env APP_ID=xxx \
--env APP_SECRET=xxx \
--env APP_ENCRYPT_KEY=xxx \
--env APP_VERIFICATION_TOKEN=xxx \
--env BOT_NAME=chatGpt \
--env AZURE_ON=true \
--env AZURE_API_VERSION=xxx \
--env AZURE_RESOURCE_NAME=xxx \
--env AZURE_DEPLOYMENT_NAME=xxx \
--env AZURE_OPENAI_TOKEN=xxx \
feishu-chatgpt:latest
```

注意:

- `BOT_NAME` 为飞书机器人名称,例如 `chatGpt`
- `AZURE_ON` 为是否使用azure ,请填写 `true`
- `AZURE_API_VERSION` 为azure api版本 例如 `2023-03-15-preview`
- `AZURE_RESOURCE_NAME` 为azure 资源名称 类似 `https://{AZURE_RESOURCE_NAME}.openai.azure.com`
- `AZURE_DEPLOYMENT_NAME` 为azure 部署名称 类似 `https://{AZURE_RESOURCE_NAME}.openai.azure.com/deployments/{AZURE_DEPLOYMENT_NAME}/chat/completions`
- `AZURE_OPENAI_TOKEN` 为azure openai token

docker-compose 部署

编辑 docker-compose.yaml,通过 environment 配置相应环境变量(或者通过 volumes 挂载相应配置文件),然后运行下面的命令即可

```bash
# 构建镜像
docker compose build

# 启动服务
docker compose up -d

# 停止服务
docker compose down
```

事件回调地址: http://IP:9000/webhook/event
卡片回调地址: http://IP:9000/webhook/card

二进制安装包部署

1. 进入[release 页面](https://github.com/Leizhenpeng/feishu-chatgpt/releases/) 下载对应的安装包
2. 解压安装包,修改 config.example.yml 中配置信息,另存为 config.yaml
3. 目录下添加文件 `role_list.yaml`,自定义角色,可以从这里获取:[链接](https://github.com/Leizhenpeng/feishu-chatgpt/blob/master/code/role_list.yaml)
3. 运行程序入口文件 `feishu-chatgpt`

事件回调地址: http://IP:9000/webhook/event
卡片回调地址: http://IP:9000/webhook/card

## 详细配置步骤

📸 点击展开飞书机器人配置的分步截图指导

















- 获取 [OpenAI](https://platform.openai.com/account/api-keys) 的 KEY( 🙉 下面有免费的 KEY 供大家测试部署 )
- 创建 [飞书](https://open.feishu.cn/) 机器人
1. 前往[开发者平台](https://open.feishu.cn/app?lang=zh-CN)创建应用,并获取到 APPID 和 Secret
2. 前往`应用功能-机器人`, 创建机器人
3. 从 cpolar、serverless 或 Railway 获得公网地址,在飞书机器人后台的 `事件订阅` 板块填写。例如,
- `http://xxxx.r6.cpolar.top`为 cpolar 暴露的公网地址
- `/webhook/event`为统一的应用路由
- 最终的回调地址为 `http://xxxx.r6.cpolar.top/webhook/event`
4. 在飞书机器人后台的 `机器人` 板块,填写消息卡片请求网址。例如,
- `http://xxxx.r6.cpolar.top`为 cpolar 暴露的公网地址
- `/webhook/card`为统一的应用路由
- 最终的消息卡片请求网址为 `http://xxxx.r6.cpolar.top/webhook/card`
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(获取与更新群组信息)

5. 发布版本,等待企业管理员审核通过

更多介绍,参考[飞书上的小计算器: Go 机器人来啦](https://www.bilibili.com/video/BV12M41187rV/)

## 免费 Openai_Key



这里有些[免费的OpenAI Key](https://freeopenai.xyz/), 大家可测试使用。

## 一起交流

遇到问题,可以加入飞书群沟通~

如果你觉得这个项目对你有帮助,可以请作者买本书~

😚 谢谢你啦 😚