免费

快速将 ChatGPT 接入飞书,基于 OpenAI 官方接口

ChatGPT For ChatBot Feishu,快速将 ChatGPT 接入飞书,基于 OpenAI 官方接口,作为私人工作助理或者企业员工助理

原项目地址:https://github.com/whatwewant/chatgpt-for-chatbot-feishu

预览

功能支持

  •  支持长对话,自动联系上下文
  •  支持私人对话
  •  支持群聊
    •  支持 @ 机器人回复
    •  也支持命令(/chatgpt)触发,格式:/chatgpt 你的问题
  •  支持自定义 OpenAI 模型
  •  支持自定义语言(请查看高级配置)
  •  支持自定义上下文(请查看高级配置)
  •  支持 Docker
  •  支持配置启动反向代理
  •  支持二次开发,快速接入企业现有应用
    • Go 开发框架

高级指令

  • 模型
    • 获取当前会话模型:/model
    • 设置当前会话模型【需管理员】:/model <model>,例如设置 GPT-4 /model gpt-4

项目特点

部署方案

# 基于服务端管理框架 Zmicro,自动安装缺失依赖,使用 Zmicro Service,底层容器使用 Docker
# 执行下面脚本,并按提示操作,填写飞书 APP ID/Secret 和 OpenAI API Key
# 更多用法,注意看提示
$ curl -fsSL https://raw.githubusercontent.com/zmicro-design/service-chatgpt-for-chatbot-feishu/master/install -o /tmp/install.sh && bash /tmp/install
.sh

高级环境配置(可选)

API_PATH: 自定义 WebHook 路径

ENCRYPT_KEY: 飞书事件密钥

VERIFICATION_TOKEN: 飞书 Challenge 校验 Token

SITE_URL: 自定义域名地址

OPENAI_MODEL: 自定义 OpenAI 模型

FEISHU_BASE_URI: 私有部署飞书地址

CHATGPT_CONTEXT_MESSAGE: 自定义上下文消息

CHATGPT_LANGUAGE: 自定义机器人初始语言,默认是英文,如需中文(ZH_CN)

TUNNEL_ENABLE: 启用 Ngrok

TUNNEL_TYPE: 指定隧道类型,可选项:ngrok | cpolar

AUTH_TOKEN: 付费用户 Auth Token

SUBDOMAIN: 指定固定子域名

LOGS_DIR: 自定义日志目录

ADMIN_EMAIL: 管理员企业邮箱

OFFLINE_MESSAGE:离线自动回复内容

飞书应用配置和 OpenAI 相关步骤

新人推荐先看飞书开放平台文档: 飞书如何开发企业自建应用

S1. 获取 OpenAI 的 API Key


S2. 创建 飞书 机器人

  • 前往开发者平台创建应用,并获取到 AppID 和 AppSecret
  • 前往添加应用能力 => 机器人, 创建机器人
  • 从cpolar或者serverless获得公网地址,在飞书机器人后台的 事件订阅 板块填写。例如,
    • http://xxxx.r6.cpolar.top为cpolar暴露的公网地址
    • 事件默认 API 路径是:/, 支持自定义路径,例如设置环境变量 API_PATH 为 /webhook/event
    • 最终的回调地址为 http://xxxx.r6.cpolar.top/
  • 前往 事件订阅 添加下列回调事件
    • 接收群消息:im.message.receive_v1
    • 消息撤回:im.message.recalled_v1
    • 机器人进群:im.chat.member.bot.added_v1
    • 机器人被移出群:
      im.chat.member.bot.deleted_v1
  • 前往 权限管理 添加以下权限
    • 获取与发送单聊、群组消息:im:message
    • 以应用的身份发消息: im:message:send_as_bot
    • 获取用户发给机器人的单聊消息: im:message.p2p_msg
    • 读取用户发给机器人的单聊消息: im:message.p2p_msg:readonly
    • 获取群组中所有消息: im:message.group_msg
    • 获取用户在群组中@机器人的消息: im:message.group_at_msg
    • 接收群聊中@机器人消息事件: im:message.group_at_msg:readonly
    • 获取与更新群组信息: im:chat
    • 获取群组信息: im:chat:readonly
    • [可选] 获取用户信息(如果设置管理员 ADMIN_EMAIL 则必须): contact:contact:readonly_as_app
S3. 发布版本,等待企业管理员审核通过