seratch/ChatGPT-in-Slack

Swift demonstration of how to build a Slack app that enables end-users to interact with a ChatGPT bot

ChatGPT‑in‑Slack

What it is – 一个开源的 Slack 应用,让你可以直接在 Slack 中与 OpenAI 的 ChatGPT(以及 DALL‑E 3)对话。它支持三种方式:在频道线程中、一对一私信中,或通过主页标签模态框。该机器人会将对话上下文保留在线程内,因此你可以像在 ChatGPT 官网一样不断优化提示词。

Key features

  • Threaded conversations – 提及机器人一次即可开启线程;后续消息会自动发送给 ChatGPT,保留上下文。
  • Private DM support – 可以私密地向机器人提问,无需提及。
  • Home‑tab UI – 快速访问的对话框,支持校对、自由格式提示和图像生成(DALL‑E 3),移动端也可使用。
  • Configurable OpenAI settings – 模型、温度、系统提示、语言翻译、Markdown 转换、内容脱敏和图像文件共享等功能可通过环境变量开启或关闭。
  • Docker & Socket Mode – 可部署在你自己的防火墙后;使用 Slack 的 Socket Mode,无需公开 URL。
  • Azure OpenAI compatibility – 可通过可选的环境变量将应用指向 Azure 的 OpenAI 接口。
  • Function‑calling demo – 实验性支持通过测试模块调用 OpenAI 的函数。

How to run it locally

  1. 使用提供的 manifest-dev.yml 创建 Slack 应用,并安装到你的工作区。
  2. 设置所需的环境变量(SLACK_APP_TOKEN、SLACK_BOT_TOKEN、OPENAI_API_KEY)。可选变量可用于选择模型、温度等参数。
  3. 安装依赖项(pip install -r requirements.txt)并启动机器人(python main.py)。
  4. (可选)将 .env.example 复制为 .env 并编辑值,以方便本地开发。

Deploying for a company

  • 构建提供的 Dockerfile。容器以 Socket Mode 运行,因此只需与 Slack 和 OpenAI 建立出站连接。
  • 由于代码采用 MIT 许可证,你可以将其部署在自有基础设施上,确保任何机密数据都在你的控制范围内。

Typical use cases

  • 直接在 Slack 中起草或润色邮件、报告或其他文本。
  • 无需离开聊天界面即可快速使用 DALL‑E 3 生成图像。
  • 在协作过程中即时获取代码片段、解释或头脑风暴想法。
  • 提供一个团队成员可在公开线程中引用的共享“AI 助手”。

Related projects

  • iwamot/collmbo – 一个分支,通过 LiteLLM 增加对其他大语言模型提供商的支持。

License – MIT.

相关

  • 项目
  • 项目
  • Dispatch
  • 项目
  • 项目