Git Product home page Git Product logo

xieweixie / feishu-openai Goto Github PK

View Code? Open in Web Editor NEW

This project forked from connectai-e/feishu-openai

0.0 0.0 0.0 15.59 MB

🎒飞书 ×(GPT-3.5 + DALL·E + Whisper)= 飞一般的工作体验 🚀 语音对话、角色扮演、多话题讨论、图片创作、表格分析、文档导出 🚀

Home Page: https://connect-ai.forkway.cn/

License: GNU General Public License v3.0

Go 99.54% Dockerfile 0.46%

feishu-openai's Introduction

📷 点击展开完整功能截图

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


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

🚀 Feishu OpenAI 🚀

商业支持

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

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

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

🥁 号外号外!

大家好呀!我是feishu-OpenAI的作者River。非常兴奋地欢迎大家加入我们的Connect-AI开源马拉松活动!

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

我们队员有

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

image

👻 机器人功能

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

🌟 项目特点

项目部署

有关飞书的配置文件说明,➡︎ 点击查看
本地部署
git clone [email protected]:Leizhenpeng/feishu-chatgpt.git
cd feishu-chatgpt/code

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

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

# 配置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 机器人来啦


serverless云函数(阿里云等)部署
git clone [email protected]:Leizhenpeng/feishu-chatgpt.git
cd feishu-chatgpt/code

安装severless工具

# 配置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" # 修改云函数想要部署地区

  1. 一键部署
cd ..
s deploy
  • 本地windows
  1. 首先打开本地cmd命令提示符工具,运行go env检查你电脑上 go 环境变量设置, 确认以下变量和值
set GO111MODULE=on
set GOARCH=amd64
set GOOS=linux
set CGO_ENABLED=0

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

go env -w GOOS=linux
  1. 修改s.yaml中的部署地区和部署秘钥
edition: 1.0.0
name: feishuBot-chatGpt
access: "aliyun" #  修改自定义的秘钥别称

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

  1. 修改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

  1. 一键部署
cd ..
s deploy

更多详细介绍,参考仅需 1min,用 Serverless 部署基于 gin 的飞书机器人

使用 Railway 平台一键部署

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

1. 生成 Railway 项目

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

Deploy on Railway

2. 配置环境变量

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

Railway 环境变量

3. 部署项目

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

Railway 域名

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

docker部署
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 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版本

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 挂载相应配置文件),然后运行下面的命令即可

# 构建镜像
docker compose build

# 启动服务
docker compose up -d

# 停止服务
docker compose down

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

二进制安装包部署
  1. 进入release 页面 下载对应的安装包
  2. 解压安装包,修改 config.example.yml 中配置信息,另存为 config.yaml
  3. 目录下添加文件 role_list.yaml,自定义角色,可以从这里获取:链接
  4. 运行程序入口文件 feishu-chatgpt

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

详细配置步骤

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

  • 获取 OpenAI 的 KEY( 🙉 下面有免费的 KEY 供大家测试部署 )
  • 创建 飞书 机器人
    1. 前往开发者平台创建应用,并获取到 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(获取与更新群组信息)
  1. 发布版本,等待企业管理员审核通过

更多介绍,参考飞书上的小计算器: Go 机器人来啦

免费 Openai_Key

这里有些免费的OpenAI Key, 大家可测试使用。

一起交流

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

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

😚 谢谢你啦 😚

feishu-openai's People

Contributors

aaakoako avatar bestony avatar cfxks1989 avatar chen622 avatar csuzhangxc avatar davymai avatar dishangyijiao avatar dishone avatar eltociear avatar hiberyan avatar hyoban avatar leizhenpeng avatar lufeicheng avatar maple1401 avatar pengfeiu avatar riba2534 avatar samzong avatar trevorwang avatar wengchaoxi avatar wm7799 avatar xieweixie avatar xpzouying avatar yangmingyuan380 avatar yokaimeow avatar zhaoyifei9 avatar zhongweili avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.