Skip to content

anyidea/chatgpt-dingtalk-bot

Repository files navigation

ChatGPT DingTalk Bot

License Build Status Python Version Docker Image Size (latest by date) Docker Pulls Poetry Code style: black

🚀 官方API版本ChatGPT集成到钉钉机器人, 支持单聊和群聊, 特别感谢 ChatGPT项目

Note

ChatGPT目前尚未向中国大陆香港等地区提供服务,因此运行该项目 需要Proxy服务或者直接运行在海外云服务器上(日本韩国美国等机房)

Features

  • API版本ChatGPT,没有那些花里胡哨的功能,主打一个简单!
  • 支持打字机特效
  • 支持机器人群聊和单聊模式,支持上下文聊天
  • 使用钉钉机器人Stream模式推送消息,配置简单,不依赖也不需要暴露公网IP,无需向公网开放端口
  • 支持Docker一键部署

Note 开启打字机特效会额外消耗钉钉开放平台api调用次数!请自行考虑是否开启

Installation

拉取Git仓库代码运行

运行该项目需要Python3.9以上的环境,请先确保环境已经满足要求

  1. 请先安装Python包管理工具Poetry
curl -sSL https://install.python-poetry.org | python3 -
  1. 拉取github仓库代码
git clone https://github.com/anyidea/chatgpt-dingtalk-bot.git
  1. 进入项目根目录, 安装项目依赖环境
poetry install --only main --no-root
  1. 启动应用
poetry run python -m chatbot

Docker 运行(推荐)

  • 通过.env文件来批量设置环境变量
docker run -d --name=chatgpt-dingtalk-bot --restart=unless-stopped \
--env-file .env \
aidenlu/chatgpt-dingtalk-bot:latest

复制.env.dist文件,并改名为.env,填写账号密码GPT_API_KEY API KEY需要登陆OpenAI管理后台获取: https://platform.openai.com/account/api-keys

  • 或者通过-e/--env参数来设置环境变量
docker run -d --name=chatgpt-dingtalk-bot --restart unless-stopped \
-e GPT_API_KEY=<key> \
-e DINGTALK_APP_KEY=<app_key> \
-e DINGTALK_APP_SECRET=<app_secret> \
-e GPT_MODEL=gpt-3.5-turbo \
aidenlu/chatgpt-dingtalk-bot:latest

Note

gpt-4模型需要用户已开通访问权限,

支持第三方API URL

设置环境变量GPT_API_URL=https://example.com/v1/chat/completions 即可

配置钉钉机器人

  1. 在钉钉管理后台添加企业内部应用(需要有管理后台权限)

⚠️ 机器人不要命名为chatgpt之类的,会被钉钉风控


  1. 应用内机器人添加单聊和群聊权限

  1. 点击应用内机器人配置页

  1. 配置机器人并开启stream模式

Warning

钉钉虽然支持Markdown格式消息,但仅支持部分语法且移动端和PC端展示会有差异,建议使用text文本消息

Credits

This package was created with Cookiecutter and the wccdev/cookiecutter-pypackage project template.