chatgpt-for-chatbot-feishu 是一个开源项目,旨在快速将 ChatGPT 接入飞书,基于 OpenAI 官方接口,可作为私人工作助理或企业员工助理。项目使用 Go 语言开发,提供了多种部署方案和丰富的配置选项。
用途
该项目的主要用途是将 ChatGPT 集成到飞书平台,使飞书用户能够通过群聊或私聊与 ChatGPT 交互,获取智能回复。它适用于个人用户作为工作助理,也适用于企业作为员工助理,提升沟通和协作效率。
主要能力
- 支持群聊和 @ 机器人回复,也支持命令触发,格式为
/chatgpt 你的问题。 - 支持自定义 OpenAI 模型,可通过命令
/model获取当前会话模型,管理员可通过/model <model>设置模型,例如/model gpt-4。 - 支持自定义语言和上下文,通过环境变量配置。
- 支持配置启动反向代理,如 cpolar、ngrok、natapp。
- 支持二次开发,可快速接入企业现有应用,使用 Go 开发框架如 Go-Zoox、Gin、Echo、Go-Zero。
- 内置上线(/online)、下线(/offline)命令,支持设置管理员(ADMIN_ENV)和自定义离线自动回复内容(OFFLINE_MESSAGE)。
- 支持私有部署的飞书(FEISHU_BASE_URI)。
- 支持事件加密(ENCRYPT_KEY)和 Challenge 校验(VERIFICATION_TOKEN)。
- 修复了飞书因网络原因重发消息的问题,可从 chatbot 端忽略重复消息。
使用方式
- 获取 OpenAI 的 API Key。
- 创建飞书机器人:前往飞书开发者平台创建应用,获取 AppID 和 AppSecret;添加应用能力 => 机器人,创建机器人;从 cpolar 或 serverless 获得公网地址,在飞书机器人后台的事件订阅板块填写回调地址(默认 API 路径为
/,可通过环境变量 API_PATH 自定义,例如/webhook/event)。 - 添加回调事件:接收群消息(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)、[可选] 获取用户信息(contact:contact:readonly_as_app,如果设置管理员 ADMIN_EMAIL 则必须)。
- 发布版本,等待企业管理员审核通过。
- 部署项目:可选择一键部署(推荐)、二进制、Docker Compose 或二次开发。
- 配置环境变量:包括 API_PATH、ENCRYPT_KEY、VERIFICATION_TOKEN、SITE_URL、OPENAI_MODEL、FEISHU_BASE_URI、CHATGPT_CONTEXT_MESSAGE、CHATGPT_LANGUAGE、TUNNEL_ENABLE、TUNNEL_TYPE、AUTH_TOKEN、SUBDOMAIN、LOGS_DIR、ADMIN_EMAIL、OFFLINE_MESSAGE 等。
适用场景
- 个人用户:作为私人工作助理,在飞书中快速获取 ChatGPT 的智能回复。
- 企业用户:作为员工助理,集成到企业飞书应用中,提升内部沟通效率。
- 开发者:基于项目进行二次开发,快速接入企业现有应用。
限制
- 项目基于 OpenAI 官方接口,需要有效的 OpenAI API Key。
- 需要配置飞书应用并获取相应权限,流程可能涉及企业管理员审核。
- 部分功能(如自定义模型、管理员设置)可能需要特定权限或配置。
- 项目文档中未提及收费、价格、平台兼容性等详细信息,暂未提供。