From 70a6fa6ab944d4e53e0d865f6e083d73faf98a35 Mon Sep 17 00:00:00 2001
From: eryajf
Date: Sun, 15 Oct 2023 21:40:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=9B=BE=E7=89=87=E5=8A=A0?=
=?UTF-8?q?=E9=80=9F=E5=9C=B0=E5=9D=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 175 +++++++++++++++++++++------------------------
config.example.yml | 5 +-
docker-compose.yml | 14 ++--
docs/userGuide.md | 47 ++++++------
4 files changed, 113 insertions(+), 128 deletions(-)
diff --git a/README.md b/README.md
index 92a8d3bb..8b6987eb 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,6 @@
-
📷 点击展开企联AI完整功能
@@ -60,11 +59,10 @@
-
-- 内置开箱即用的Azure Openai: 无需部署到海外,即可获得数十倍的性能提升
-- 掌控全局的Admin Panel: AI资源管理、对话日志查询、风险词规避和对话权限管理
+- 内置开箱即用的 Azure Openai: 无需部署到海外,即可获得数十倍的性能提升
+- 掌控全局的 Admin Panel: AI 资源管理、对话日志查询、风险词规避和对话权限管理
- 专人技术支持: 配备专业部署交付人员与后期一对一维护服务
-- 同时提供在线Saas版/企业级私有部署
+- 同时提供在线 Saas 版/企业级私有部署
企业客户咨询: 15623677720
@@ -75,6 +73,7 @@
+
**目录**
- [前言](#%E5%89%8D%E8%A8%80)
@@ -82,7 +81,7 @@
- [使用前提](#%E4%BD%BF%E7%94%A8%E5%89%8D%E6%8F%90)
- [使用教程](#%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B)
- [第一步,部署应用](#%E7%AC%AC%E4%B8%80%E6%AD%A5%E9%83%A8%E7%BD%B2%E5%BA%94%E7%94%A8)
- - [docker部署](#docker%E9%83%A8%E7%BD%B2)
+ - [docker 部署](#docker%E9%83%A8%E7%BD%B2)
- [二进制部署](#%E4%BA%8C%E8%BF%9B%E5%88%B6%E9%83%A8%E7%BD%B2)
- [第二步,添加应用](#%E7%AC%AC%E4%BA%8C%E6%AD%A5%E6%B7%BB%E5%8A%A0%E5%BA%94%E7%94%A8)
- [亮点特色](#%E4%BA%AE%E7%82%B9%E7%89%B9%E8%89%B2)
@@ -91,7 +90,7 @@
- [切换模式](#%E5%88%87%E6%8D%A2%E6%A8%A1%E5%BC%8F)
- [查询余额](#%E6%9F%A5%E8%AF%A2%E4%BD%99%E9%A2%9D)
- [日常问题](#%E6%97%A5%E5%B8%B8%E9%97%AE%E9%A2%98)
- - [通过内置prompt聊天](#%E9%80%9A%E8%BF%87%E5%86%85%E7%BD%AEprompt%E8%81%8A%E5%A4%A9)
+ - [通过内置 prompt 聊天](#%E9%80%9A%E8%BF%87%E5%86%85%E7%BD%AEprompt%E8%81%8A%E5%A4%A9)
- [生成图片](#%E7%94%9F%E6%88%90%E5%9B%BE%E7%89%87)
- [支持 gpt-4](#%E6%94%AF%E6%8C%81-gpt-4)
- [本地开发](#%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91)
@@ -101,51 +100,45 @@
- [感谢](#%E6%84%9F%E8%B0%A2)
- [赞赏](#%E8%B5%9E%E8%B5%8F)
- [高光时刻](#%E9%AB%98%E5%85%89%E6%97%B6%E5%88%BB)
-- [Star历史](#star%E5%8E%86%E5%8F%B2)
+- [Star 历史](#star%E5%8E%86%E5%8F%B2)
- [贡献者列表](#%E8%B4%A1%E7%8C%AE%E8%80%85%E5%88%97%E8%A1%A8)
## 前言
-本项目可以助你将GPT机器人集成到钉钉群聊当中。当前默认模型为`gpt-3.5`,支持`gpt-4`。同时支持Azure-OpenAI。
+本项目可以助你将 GPT 机器人集成到钉钉群聊当中。当前默认模型为`gpt-3.5`,支持`gpt-4`。同时支持 Azure-OpenAI。
->- `📢 注意`:当下部署以及配置流程都已非常成熟,文档和issue中基本都覆盖到了,因此不再回答任何项目安装部署与配置使用上的问题,如果完全不懂,可考虑通过 **[邮箱](mailto:eryajf@163.com)** 联系我进行付费的技术支持。
+> - `📢 注意`:当下部署以及配置流程都已非常成熟,文档和 issue 中基本都覆盖到了,因此不再回答任何项目安装部署与配置使用上的问题,如果完全不懂,可考虑通过 **[邮箱](mailto:eryajf@163.com)** 联系我进行付费的技术支持。
>
->- `📢 注意`:这个项目所有的功能,都汇聚在[使用指南](./docs/userGuide.md)中,请务必仔细阅读,以体验其完整精髓。
+> - `📢 注意`:这个项目所有的功能,都汇聚在[使用指南](./docs/userGuide.md)中,请务必仔细阅读,以体验其完整精髓。
🥳 **欢迎关注我的其他开源项目:**
->
-> - [Go-Ldap-Admin](https://github.com/eryajf/go-ldap-admin):🌉 基于Go+Vue实现的openLDAP后台管理项目。
-> - [learning-weekly](https://github.com/eryajf/learning-weekly):📝 周刊内容以运维技术和Go语言周边为主,辅以GitHub上优秀项目或他人优秀经验。
-> - [HowToStartOpenSource](https://github.com/eryajf/HowToStartOpenSource):🌈 GitHub开源项目维护协同指南。
+
+> - [Go-Ldap-Admin](https://github.com/eryajf/go-ldap-admin):🌉 基于 Go+Vue 实现的 openLDAP 后台管理项目。
+> - [learning-weekly](https://github.com/eryajf/learning-weekly):📝 周刊内容以运维技术和 Go 语言周边为主,辅以 GitHub 上优秀项目或他人优秀经验。
+> - [HowToStartOpenSource](https://github.com/eryajf/HowToStartOpenSource):🌈 GitHub 开源项目维护协同指南。
> - [read-list](https://github.com/eryajf/read-list):📖 优质内容订阅,阅读方为根本
> - [awesome-github-profile-readme-chinese](https://github.com/eryajf/awesome-github-profile-readme-chinese):🦩 优秀的中文区个人主页搜集
-🚜 我还创建了一个项目 **[awesome-chatgpt-answer](https://github.com/eryajf/awesome-chatgpt-answer)** :记录那些问得好,答得妙的时刻,欢迎提交你与ChatGPT交互过程中遇到的那些精妙对话。
-
-⚗️ openai官方提供了一个 **[状态页](https://status.openai.com/)** 来呈现当前openAI服务的状态,同时如果有问题发布公告也会在这个页面,如果你感觉它有问题了,可以在这个页面看看。
-
-| AI
| SDK | Application |
-| :-------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |
-| 🎒OpenAI | [Go-OpenAI](https://github.com/ConnectAI-E/Go-OpenAI) | [🏅Feishu-OpenAI](https://github.com/ConnectAI-E/Feishu-OpenAI), [🎖Lark-OpenAI](https://github.com/ConnectAI-E/Lark-OpenAI), [Feishu-EX-ChatGPT](https://github.com/ConnectAI-E/Feishu-EX-ChatGPT), [🎖Feishu-OpenAI-Stream-Chatbot](https://github.com/ConnectAI-E/Feishu-OpenAI-Stream-Chatbot), [Feishu-TLDR](https://github.com/ConnectAI-E/Feishu-TLDR),[Feishu-OpenAI-Amazing](https://github.com/ConnectAI-E/Feishu-OpenAI-Amazing), [Feishu-Oral-Friend](https://github.com/ConnectAI-E/Feishu-Oral-Friend), [Feishu-OpenAI-Base-Helper](https://github.com/ConnectAI-E/Feishu-OpenAI-Base-Helper), [Feishu-Vector-Knowledge-Management](https://github.com/ConnectAI-E/Feishu-Vector-Knowledge-Management), [Feishu-OpenAI-PDF-Helper](https://github.com/ConnectAI-E/Feishu-OpenAI-PDF-Helper), [🏅Dingtalk-OpenAI](https://github.com/ConnectAI-E/Dingtalk-OpenAI), [Wework-OpenAI](https://github.com/ConnectAI-E/Wework-OpenAI), [WeWork-OpenAI-Node](https://github.com/ConnectAI-E/WeWork-OpenAI-Node), [llmplugin](https://github.com/ConnectAI-E/llmplugin) |
-| 🤖 AutoGPT | ------ | [🏅AutoGPT-Next-Web](https://github.com/ConnectAI-E/AutoGPT-Next-Web) |
-| 🎭 Stablediffusion | ------ | [🎖Feishu-Stablediffusion](https://github.com/ConnectAI-E/Feishu-Stablediffusion) |
-| 🍎 Midjourney | [Go-Midjourney](https://github.com/ConnectAI-E/Go-Midjourney) | [🏅Feishu-Midjourney](https://github.com/ConnectAI-E/Feishu-Midjourney), [🔥MidJourney-Web](https://github.com/ConnectAI-E/MidJourney-Web), [Dingtalk-Midjourney](https://github.com/ConnectAI-E/Dingtalk-Midjourney) |
-| 🍍 文心一言 | [Go-Wenxin](https://github.com/ConnectAI-E/Go-Wenxin) | [Feishu-Wenxin](https://github.com/ConnectAI-E/Feishu-Wenxin), [Dingtalk-Wenxin](https://github.com/ConnectAI-E/Dingtalk-Wenxin), [Wework-Wenxin](https://github.com/ConnectAI-E/Wework-Wenxin) |
-| 💸 Minimax | [Go-Minimax](https://github.com/ConnectAI-E/Go-Minimax) | [Feishu-Minimax](https://github.com/ConnectAI-E/Feishu-Minimax), [Dingtalk-Minimax](https://github.com/ConnectAI-E/Dingtalk-Minimax), [Wework-Minimax](https://github.com/ConnectAI-E/Wework-Minimax) |
-| ⛳️ CLAUDE | [Go-Claude](https://github.com/ConnectAI-E/Go-Claude) | [Feishu-Claude](https://github.com/ConnectAI-E/Feishu-Claude), [DingTalk-Claude](https://github.com/ConnectAI-E/DingTalk-Claude), [Wework-Claude](https://github.com/ConnectAI-E/Wework-Claude) |
-| 🥁 PaLM | [Go-PaLM](https://github.com/ConnectAI-E/go-PaLM) | [Feishu-PaLM](https://github.com/ConnectAI-E/Feishu-PaLM),[DingTalk-PaLM](https://github.com/ConnectAI-E/DingTalk-PaLM),[Wework-PaLM](https://github.com/ConnectAI-E/Wework-PaLM) |
-| 🎡 Prompt | ------ | [📖 Prompt-Engineering-Tutior](https://github.com/ConnectAI-E/Prompt-Engineering-Tutior) |
-| 🍋 ChatGLM | ------ | [Feishu-ChatGLM](https://github.com/ConnectAI-E/Feishu-ChatGLM) |
-| ⛓ LangChain | ------ | [📖 LangChain-Tutior](https://github.com/ConnectAI-E/LangChain-Tutior) |
-| 🪄 One-click | ------ | [🎖Awesome-One-Click-Deployment](https://github.com/ConnectAI-E/Awesome-One-Click-Deployment) |
-
-
-
-
-
-
+🚜 我还创建了一个项目 **[awesome-chatgpt-answer](https://github.com/eryajf/awesome-chatgpt-answer)** :记录那些问得好,答得妙的时刻,欢迎提交你与 ChatGPT 交互过程中遇到的那些精妙对话。
+
+⚗️ openai 官方提供了一个 **[状态页](https://status.openai.com/)** 来呈现当前 openAI 服务的状态,同时如果有问题发布公告也会在这个页面,如果你感觉它有问题了,可以在这个页面看看。
+
+| AI
| SDK | Application |
+| :-------------------------------: | :-----------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
+| 🎒OpenAI | [Go-OpenAI](https://github.com/ConnectAI-E/Go-OpenAI) | [🏅Feishu-OpenAI](https://github.com/ConnectAI-E/Feishu-OpenAI), [🎖Lark-OpenAI](https://github.com/ConnectAI-E/Lark-OpenAI), [Feishu-EX-ChatGPT](https://github.com/ConnectAI-E/Feishu-EX-ChatGPT), [🎖Feishu-OpenAI-Stream-Chatbot](https://github.com/ConnectAI-E/Feishu-OpenAI-Stream-Chatbot), [Feishu-TLDR](https://github.com/ConnectAI-E/Feishu-TLDR),[Feishu-OpenAI-Amazing](https://github.com/ConnectAI-E/Feishu-OpenAI-Amazing), [Feishu-Oral-Friend](https://github.com/ConnectAI-E/Feishu-Oral-Friend), [Feishu-OpenAI-Base-Helper](https://github.com/ConnectAI-E/Feishu-OpenAI-Base-Helper), [Feishu-Vector-Knowledge-Management](https://github.com/ConnectAI-E/Feishu-Vector-Knowledge-Management), [Feishu-OpenAI-PDF-Helper](https://github.com/ConnectAI-E/Feishu-OpenAI-PDF-Helper), [🏅Dingtalk-OpenAI](https://github.com/ConnectAI-E/Dingtalk-OpenAI), [Wework-OpenAI](https://github.com/ConnectAI-E/Wework-OpenAI), [WeWork-OpenAI-Node](https://github.com/ConnectAI-E/WeWork-OpenAI-Node), [llmplugin](https://github.com/ConnectAI-E/llmplugin) |
+| 🤖 AutoGPT | ------ | [🏅AutoGPT-Next-Web](https://github.com/ConnectAI-E/AutoGPT-Next-Web) |
+| 🎭 Stablediffusion | ------ | [🎖Feishu-Stablediffusion](https://github.com/ConnectAI-E/Feishu-Stablediffusion) |
+| 🍎 Midjourney | [Go-Midjourney](https://github.com/ConnectAI-E/Go-Midjourney) | [🏅Feishu-Midjourney](https://github.com/ConnectAI-E/Feishu-Midjourney), [🔥MidJourney-Web](https://github.com/ConnectAI-E/MidJourney-Web), [Dingtalk-Midjourney](https://github.com/ConnectAI-E/Dingtalk-Midjourney) |
+| 🍍 文心一言 | [Go-Wenxin](https://github.com/ConnectAI-E/Go-Wenxin) | [Feishu-Wenxin](https://github.com/ConnectAI-E/Feishu-Wenxin), [Dingtalk-Wenxin](https://github.com/ConnectAI-E/Dingtalk-Wenxin), [Wework-Wenxin](https://github.com/ConnectAI-E/Wework-Wenxin) |
+| 💸 Minimax | [Go-Minimax](https://github.com/ConnectAI-E/Go-Minimax) | [Feishu-Minimax](https://github.com/ConnectAI-E/Feishu-Minimax), [Dingtalk-Minimax](https://github.com/ConnectAI-E/Dingtalk-Minimax), [Wework-Minimax](https://github.com/ConnectAI-E/Wework-Minimax) |
+| ⛳️ CLAUDE | [Go-Claude](https://github.com/ConnectAI-E/Go-Claude) | [Feishu-Claude](https://github.com/ConnectAI-E/Feishu-Claude), [DingTalk-Claude](https://github.com/ConnectAI-E/DingTalk-Claude), [Wework-Claude](https://github.com/ConnectAI-E/Wework-Claude) |
+| 🥁 PaLM | [Go-PaLM](https://github.com/ConnectAI-E/go-PaLM) | [Feishu-PaLM](https://github.com/ConnectAI-E/Feishu-PaLM),[DingTalk-PaLM](https://github.com/ConnectAI-E/DingTalk-PaLM),[Wework-PaLM](https://github.com/ConnectAI-E/Wework-PaLM) |
+| 🎡 Prompt | ------ | [📖 Prompt-Engineering-Tutior](https://github.com/ConnectAI-E/Prompt-Engineering-Tutior) |
+| 🍋 ChatGLM | ------ | [Feishu-ChatGLM](https://github.com/ConnectAI-E/Feishu-ChatGLM) |
+| ⛓ LangChain | ------ | [📖 LangChain-Tutior](https://github.com/ConnectAI-E/LangChain-Tutior) |
+| 🪄 One-click | ------ | [🎖Awesome-One-Click-Deployment](https://github.com/ConnectAI-E/Awesome-One-Click-Deployment) |
## 功能介绍
@@ -155,30 +148,30 @@
- 🙋 单聊模式:每次对话都是一次新的对话,没有历史聊天上下文联系
- 🗣 串聊模式:带上下文理解的对话模式
- 🎨 图片生成:通过发送 `#图片`关键字开头的内容进行生成图片,[🖼 查看示例](#%E7%94%9F%E6%88%90%E5%9B%BE%E7%89%87)
-- 🎭 角色扮演:支持场景模式,通过 `#周报` 的方式触发内置prompt模板 [🖼 查看示例](#%E9%80%9A%E8%BF%87%E5%86%85%E7%BD%AEprompt%E8%81%8A%E5%A4%A9)
+- 🎭 角色扮演:支持场景模式,通过 `#周报` 的方式触发内置 prompt 模板 [🖼 查看示例](#%E9%80%9A%E8%BF%87%E5%86%85%E7%BD%AEprompt%E8%81%8A%E5%A4%A9)
- 🧑💻 频率限制:通过配置指定,自定义单个用户单日最大对话次数
-- 💵 余额查询:通过发送 `余额` 关键字查询当前key所剩额度,[🖼 查看示例](#%E6%9F%A5%E8%AF%A2%E4%BD%99%E9%A2%9D)
-- 🔗 自定义api域名:通过配置指定,解决国内服务器无法直接访问openai的问题
+- 💵 余额查询:通过发送 `余额` 关键字查询当前 key 所剩额度,[🖼 查看示例](#%E6%9F%A5%E8%AF%A2%E4%BD%99%E9%A2%9D)
+- 🔗 自定义 api 域名:通过配置指定,解决国内服务器无法直接访问 openai 的问题
- 🪜 添加代理:通过配置指定,通过给应用注入代理解决国内服务器无法访问的问题
- 👐 默认模式:支持自定义默认的聊天模式,通过配置化指定
-- 📝 查询对话:通过发送`#查对话 username:xxx`查询xxx的对话历史,可在线预览,可下载到本地
+- 📝 查询对话:通过发送`#查对话 username:xxx`查询 xxx 的对话历史,可在线预览,可下载到本地
- 👹 白名单机制:通过配置指定,支持指定群组名称和用户名称作为白名单,从而实现可控范围与机器人对话
- 💂♀️ 管理员机制:通过配置指定管理员,部分敏感操作,以及一些应用配置,管理员有权限进行操作
- ㊙️ 敏感词过滤:通过配置指定敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
-- 🚇 stream模式:指定钉钉的stream模式,目前钉钉已全量开放该功能,项目也默认以此模式启动
+- 🚇 stream 模式:指定钉钉的 stream 模式,目前钉钉已全量开放该功能,项目也默认以此模式启动
## 使用前提
-* 有Openai账号,并且创建好`api_key`,注册相关事项可以参考[此文章](https://juejin.cn/post/7173447848292253704) 。访问[这里](https://beta.openai.com/account/api-keys),申请个人秘钥。
-* 在钉钉开发者后台创建应用,在应用的消息推送功能块添加机器人,将消息接收模式指定为stream模式。
+- 有 Openai 账号,并且创建好`api_key`,注册相关事项可以参考[此文章](https://juejin.cn/post/7173447848292253704) 。访问[这里](https://beta.openai.com/account/api-keys),申请个人秘钥。
+- 在钉钉开发者后台创建应用,在应用的消息推送功能块添加机器人,将消息接收模式指定为 stream 模式。
## 使用教程
### 第一步,部署应用
-#### docker部署
+#### docker 部署
-推荐你使用docker快速运行本项目。
+推荐你使用 docker 快速运行本项目。
```
第一种:基于环境变量运行
@@ -203,11 +196,10 @@ $ docker run -itd --name chatgpt -p 8090:8090 \
> 运行命令中映射的配置文件参考下边的[配置文件说明](#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%B4%E6%98%8E)。
-- `📢 注意:`如果使用docker部署,那么PORT参数不需要进行任何调整。
-- `📢 注意:`ALLOW_GROUPS,ALLOW_USERS,DENY_USERS,VIP_USERS,ADMIN_USERS 参数为数组,如果需要指定多个,可用英文逗号分割。outgoing机器人模式下这些参数无效。
+- `📢 注意:`如果使用 docker 部署,那么 PORT 参数不需要进行任何调整。
+- `📢 注意:`ALLOW_GROUPS,ALLOW_USERS,DENY_USERS,VIP_USERS,ADMIN_USERS 参数为数组,如果需要指定多个,可用英文逗号分割。outgoing 机器人模式下这些参数无效。
- `📢 注意:`如果服务器节点本身就在国外或者自定义了`BASE_URL`,那么就把`HTTP_PROXY`参数留空即可。
-- `📢 注意:`如果使用docker部署,那么proxy地址可以直接使用如上方式部署,`host.docker.internal`会指向容器所在宿主机的IP,只需要更改端口为你的代理端口即可。参见:[Docker容器如何优雅地访问宿主机网络](https://wiki.eryajf.net/pages/674f53/)
-
+- `📢 注意:`如果使用 docker 部署,那么 proxy 地址可以直接使用如上方式部署,`host.docker.internal`会指向容器所在宿主机的 IP,只需要更改端口为你的代理端口即可。参见:[Docker 容器如何优雅地访问宿主机网络](https://wiki.eryajf.net/pages/674f53/)
```
第二种:基于配置文件挂载运行
@@ -229,12 +221,11 @@ $ vim docker-compose.yml # 编辑 APIKEY 等信息
$ docker compose up -d
```
-之前部署完成之后还有一个配置Nginx的步骤,现在将模式默认指定为stream模式,因此不再需要配置Nginx。
+之前部署完成之后还有一个配置 Nginx 的步骤,现在将模式默认指定为 stream 模式,因此不再需要配置 Nginx。
#### 二进制部署
-
-如果你想通过命令行直接部署,可以直接下载release中的[压缩包](https://github.com/eryajf/chatgpt-dingtalk/releases) ,请根据自己系统以及架构选择合适的压缩包,下载之后直接解压运行。
+如果你想通过命令行直接部署,可以直接下载 release 中的[压缩包](https://github.com/eryajf/chatgpt-dingtalk/releases) ,请根据自己系统以及架构选择合适的压缩包,下载之后直接解压运行。
下载之后,在本地解压,即可看到可执行程序,与配置文件:
@@ -249,18 +240,16 @@ $ nohup ./chatgpt-dingtalk &> run.log &
$ tail -f run.log
```
-
### 第二步,添加应用
-钉钉官方在2023年5月份全面推出了stream模式,因此这里也推荐大家直接使用这个模式,其他HTTP的仍旧支持,只不过不再深入研究,因此下边的文档也以stream模式的配置流程来介绍。
-
+钉钉官方在 2023 年 5 月份全面推出了 stream 模式,因此这里也推荐大家直接使用这个模式,其他 HTTP 的仍旧支持,只不过不再深入研究,因此下边的文档也以 stream 模式的配置流程来介绍。
创建步骤参考文档:[企业内部应用](https://open.dingtalk.com/document/orgapp/create-orgapp),或者根据如下步骤进行配置。
1. 创建应用。
🖼 点我查看示例图
-
+
> `📢 注意:`可能现在创建机器人的时候名字为`chatgpt`会被钉钉限制,请用其他名字命名。
@@ -268,24 +257,24 @@ $ tail -f run.log
在`基础信息` --> `应用信息`当中能够获取到机器人的`AppKey`和`AppSecret`。
2. 配置机器人。
-
- 🖼 点我查看示例图
-
-
+
+ 🖼 点我查看示例图
+
+
3. 发布机器人。
🖼 点我查看示例图
-
+
点击`版本管理与发布`,然后点击`上线`,这个时候就能在钉钉的群里中添加这个机器人了。
4. 群聊添加机器人。
-
- 🖼 点我查看示例图
-
-
+
+ 🖼 点我查看示例图
+
+
## 亮点特色
@@ -300,14 +289,13 @@ $ tail -f run.log
-
### 帮助列表
> 艾特机器人发送空内容或者帮助,会返回帮助列表。
🖼 点我查看示例图
-
+
### 切换模式
@@ -316,7 +304,7 @@ $ tail -f run.log
🖼 点我查看示例图
-
+
> 📢 注意:串聊模式下,群里每个人的聊天上下文是独立的。
@@ -324,56 +312,56 @@ $ tail -f run.log
### 查询余额
-> 艾特机器人发送 `余额` 二字,会返回当前key对应的账号的剩余额度以及可用日期。
+> 艾特机器人发送 `余额` 二字,会返回当前 key 对应的账号的剩余额度以及可用日期。
🖼 点我查看示例图
-
+
### 日常问题
🖼 点我查看示例图
-
+
-### 通过内置prompt聊天
+### 通过内置 prompt 聊天
-> 发送模板两个字,会返回当前内置支持的prompt列表。
+> 发送模板两个字,会返回当前内置支持的 prompt 列表。
🖼 点我查看示例图
-
+
-> 如果你发现有比较优秀的prompt,欢迎PR。注意:一些与钉钉使用场景不是很匹配的,就不要提交了。
+> 如果你发现有比较优秀的 prompt,欢迎 PR。注意:一些与钉钉使用场景不是很匹配的,就不要提交了。
### 生成图片
> 发送以 `#图片`开头的内容,将会触发绘画能力,图片生成之后,将会保存在程序根目录下的`images目录`下。
>
-> 如果你绘图没有思路,可以在[这里](https://www.clickprompt.org/zh-CN/)以及[这里](https://lexica.art/)找到一些不错的prompt。
+> 如果你绘图没有思路,可以在[这里](https://www.clickprompt.org/zh-CN/)以及[这里](https://lexica.art/)找到一些不错的 prompt。
🖼 点我查看示例图
-
+
### 支持 gpt-4
-如果你的账号通过了官方的白名单,那么可以将模型配置为:`gpt-4-0314`或`gpt-4`,目前gpt-4的余额查询以及图片生成功能暂不可用,可能是接口限制,也可能是其他原因,等我有条件的时候,会对这些功能进行测试验证。
+如果你的账号通过了官方的白名单,那么可以将模型配置为:`gpt-4-0314`或`gpt-4`,目前 gpt-4 的余额查询以及图片生成功能暂不可用,可能是接口限制,也可能是其他原因,等我有条件的时候,会对这些功能进行测试验证。
-> 以下是gpt-3.5与gpt-4对数学计算方面的区别。
+> 以下是 gpt-3.5 与 gpt-4 对数学计算方面的区别。
🖼 点我查看示例图
-
+
-感谢[@PIRANHACHAN](https://github.com/PIRANHACHAN)同学提供的gpt-4的key,使得项目在gpt-4的对接上能够进行验证测试,达到了可用状态。
+感谢[@PIRANHACHAN](https://github.com/PIRANHACHAN)同学提供的 gpt-4 的 key,使得项目在 gpt-4 的对接上能够进行验证测试,达到了可用状态。
-## 本地开发
+## 本地开发
```sh
# 获取项目
@@ -447,7 +435,7 @@ app_secrets: []
# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
sensitive_words: []
# 帮助信息,放在配置文件,可供自定义
-help: "### 发送信息\n\n若您想给机器人发送信息,有如下两种方式:\n\n1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。\n\n2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** \n\n### 系统指令\n\n系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。\n\n**📢 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**\n\n以下是系统指令详情:\n\n| 指令 | 描述 | 示例 |\n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |\n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
预览
|\n| **串聊** | 带上下文联系的对话模式 |
预览
|\n| **重置** | 重置上下文模式,回归到默认模式 |
预览
|\n| **余额** | 查询机器人所用OpenAI账号的余额 |
预览
|\n| **模板** | 查看应用内置的prompt模板 |
预览
|\n| **图片** | 查看如何根据提示生成图片 |
预览
|\n| **查对话** | 获取指定人员的对话历史 |
预览
|\n| **帮助** | 获取帮助信息 |
预览
|\n\n\n### 功能指令\n\n除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。\n\n**📢 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**\n\n以下是功能指令详情\n\n| 指令 | 说明 | 示例 |\n| :--: | :--: | :--: |\n| **#图片** | 根据提示咒语生成对应图片 |
预览
|\n| **#域名** | 查询域名相关信息 |
预览
|\n| **#证书** | 查询域名证书相关信息 |
预览
|\n| **#Linux命令** | 根据自然语言描述生成对应命令 |
预览
|\n| **#解释代码** | 分析一段代码的功能或含义 |
预览
|\n| **#正则** | 根据自然语言描述生成正则 |
预览
|\n| **#周报** | 应用周报的prompt |
预览
|\n| **#生成sql** | 根据自然语言描述生成sql语句 |
预览
|\n\n如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。\n\n### 友情提示\n\n使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** \n\n即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。\n\n### 项目地址\n\n本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。"
+help: "### 发送信息\n\n若您想给机器人发送信息,有如下两种方式:\n\n1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。\n\n2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** \n\n### 系统指令\n\n系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。\n\n**📢 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**\n\n以下是系统指令详情:\n\n| 指令 | 描述 | 示例 |\n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |\n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
预览
|\n| **串聊** | 带上下文联系的对话模式 |
预览
|\n| **重置** | 重置上下文模式,回归到默认模式 |
预览
|\n| **余额** | 查询机器人所用OpenAI账号的余额 |
预览
|\n| **模板** | 查看应用内置的prompt模板 |
预览
|\n| **图片** | 查看如何根据提示生成图片 |
预览
|\n| **查对话** | 获取指定人员的对话历史 |
预览
|\n| **帮助** | 获取帮助信息 |
预览
|\n\n\n### 功能指令\n\n除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。\n\n**📢 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**\n\n以下是功能指令详情\n\n| 指令 | 说明 | 示例 |\n| :--: | :--: | :--: |\n| **#图片** | 根据提示咒语生成对应图片 |
预览
|\n| **#域名** | 查询域名相关信息 |
预览
|\n| **#证书** | 查询域名证书相关信息 |
预览
|\n| **#Linux命令** | 根据自然语言描述生成对应命令 |
预览
|\n| **#解释代码** | 分析一段代码的功能或含义 |
预览
|\n| **#正则** | 根据自然语言描述生成正则 |
预览
|\n| **#周报** | 应用周报的prompt |
预览
|\n| **#生成sql** | 根据自然语言描述生成sql语句 |
预览
|\n\n如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。\n\n### 友情提示\n\n使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** \n\n即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。\n\n### 项目地址\n\n本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。"
# Azure OpenAI 配置
# 例如你的示例请求为: curl https://eryajf.openai.azure.com/openai/deployments/gpt-35-turbo/chat/completions?api-version=2023-03-15-preview 那么对应配置如下,如果配置完成之后还是无法正常使用,请新建应用,重新配置回调试试看
@@ -461,22 +449,21 @@ azure_openai_token: "xxxxxxx"
# 设置credentials 之后,即具备了访问钉钉平台绝大部分 OpenAPI 的能力;例如上传图片到钉钉平台,提升图片体验,结合 Stream 模式简化服务部署
# client_id 对应钉钉平台 AppKey/SuiteKey;client_secret 对应 AppSecret/SuiteSecret
credentials:
- -
- client_id: "put-your-client-id-here"
+ - client_id: "put-your-client-id-here"
client_secret: "put-your-client-secret-here"
```
## 常见问题
-如何更好地使用ChatGPT:这里有[许多案例](https://github.com/f/awesome-chatgpt-prompts)可供参考。
+如何更好地使用 ChatGPT:这里有[许多案例](https://github.com/f/awesome-chatgpt-prompts)可供参考。
-`🗣 重要重要` 一些常见的问题,我单独开issue放在这里:[👉点我👈](https://github.com/eryajf/chatgpt-dingtalk/issues/44),可以查看这里辅助你解决问题,如果里边没有,请对历史issue进行搜索(不要提交重复的issue),也欢迎大家补充。
+`🗣 重要重要` 一些常见的问题,我单独开 issue 放在这里:[👉 点我 👈](https://github.com/eryajf/chatgpt-dingtalk/issues/44),可以查看这里辅助你解决问题,如果里边没有,请对历史 issue 进行搜索(不要提交重复的 issue),也欢迎大家补充。
## 进群交流
我创建了一个钉钉的交流群,欢迎进群交流。
-![](https://cdn.staticaly.com/gh/eryajf/tu/main/img/image_20230405_191425.jpg)
+![](https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230405_191425.jpg)
## 感谢
@@ -496,10 +483,10 @@ credentials:
## 高光时刻
-> 本项目曾在 | [2022-12-12](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-12.md#go) | [2022-12-18](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-18.md#go) | [2022-12-19](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-19.md#go) | [2022-12-20](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-20.md#go) | [2023-02-09](https://github.com/bonfy/github-trending/blob/master/2023-02-09.md#go) | [2023-02-10](https://github.com/bonfy/github-trending/blob/master/2023-02-10.md#go) | [2023-02-11](https://github.com/bonfy/github-trending/blob/master/2023-02-11.md#go) | [2023-02-12](https://github.com/bonfy/github-trending/blob/master/2023-02-12.md#go) | [2023-02-13](https://github.com/bonfy/github-trending/blob/master/2023-02-13.md#go) | [2023-02-14](https://github.com/bonfy/github-trending/blob/master/2023-02-14.md#go) | [2023-02-15](https://github.com/bonfy/github-trending/blob/master/2023-02-15.md#go) | [2023-03-04](https://github.com/bonfy/github-trending/blob/master/2023-03-04.md#go) | [2023-03-05](https://github.com/bonfy/github-trending/blob/master/2023-03-05.md#go) | [2023-03-19](https://github.com/bonfy/github-trending/blob/master/2023-03-19.md#go) | [2023-03-22](https://github.com/bonfy/github-trending/blob/master/2023-03-22.md#go) | [2023-03-25](https://github.com/bonfy/github-trending/blob/master/2023-03-25.md#go) | [2023-03-26](https://github.com/bonfy/github-trending/blob/master/2023-03-26.md#go) | [2023-03-27](https://github.com/bonfy/github-trending/blob/master/2023-03-27.md#go) | [2023-03-29](https://github.com/bonfy/github-trending/blob/master/2023-03-29.md#go), 这些天里,登上GitHub Trending。而且还在持续登榜中,可见最近openai的热度。
-> ![image_20230316_114915](https://cdn.staticaly.com/gh/eryajf/tu/main/img/image_20230316_114915.jpg)
+> 本项目曾在 | [2022-12-12](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-12.md#go) | [2022-12-18](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-18.md#go) | [2022-12-19](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-19.md#go) | [2022-12-20](https://github.com/bonfy/github-trending/blob/master/2022/2022-12-20.md#go) | [2023-02-09](https://github.com/bonfy/github-trending/blob/master/2023-02-09.md#go) | [2023-02-10](https://github.com/bonfy/github-trending/blob/master/2023-02-10.md#go) | [2023-02-11](https://github.com/bonfy/github-trending/blob/master/2023-02-11.md#go) | [2023-02-12](https://github.com/bonfy/github-trending/blob/master/2023-02-12.md#go) | [2023-02-13](https://github.com/bonfy/github-trending/blob/master/2023-02-13.md#go) | [2023-02-14](https://github.com/bonfy/github-trending/blob/master/2023-02-14.md#go) | [2023-02-15](https://github.com/bonfy/github-trending/blob/master/2023-02-15.md#go) | [2023-03-04](https://github.com/bonfy/github-trending/blob/master/2023-03-04.md#go) | [2023-03-05](https://github.com/bonfy/github-trending/blob/master/2023-03-05.md#go) | [2023-03-19](https://github.com/bonfy/github-trending/blob/master/2023-03-19.md#go) | [2023-03-22](https://github.com/bonfy/github-trending/blob/master/2023-03-22.md#go) | [2023-03-25](https://github.com/bonfy/github-trending/blob/master/2023-03-25.md#go) | [2023-03-26](https://github.com/bonfy/github-trending/blob/master/2023-03-26.md#go) | [2023-03-27](https://github.com/bonfy/github-trending/blob/master/2023-03-27.md#go) | [2023-03-29](https://github.com/bonfy/github-trending/blob/master/2023-03-29.md#go), 这些天里,登上 GitHub Trending。而且还在持续登榜中,可见最近 openai 的热度。
+> ![image_20230316_114915](https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230316_114915.jpg)
-## Star历史
+## Star 历史
[![Star History Chart](https://api.star-history.com/svg?repos=ConnectAI-E/Dingtalk-OpenAI&type=Date)](https://star-history.com/#ConnectAI-E/Dingtalk-OpenAI&Date)
diff --git a/config.example.yml b/config.example.yml
index de98ac6f..056be88a 100644
--- a/config.example.yml
+++ b/config.example.yml
@@ -53,7 +53,7 @@ app_secrets: []
# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
sensitive_words: []
# 帮助信息,放在配置文件,可供自定义
-help: "### 发送信息\n\n若您想给机器人发送信息,有如下两种方式:\n\n1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。\n\n2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** \n\n### 系统指令\n\n系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。\n\n**📢 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**\n\n以下是系统指令详情:\n\n| 指令 | 描述 | 示例 |\n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |\n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
预览
|\n| **串聊** | 带上下文联系的对话模式 |
预览
|\n| **重置** | 重置上下文模式,回归到默认模式 |
预览
|\n| **余额** | 查询机器人所用OpenAI账号的余额 |
预览
|\n| **模板** | 查看应用内置的prompt模板 |
预览
|\n| **图片** | 查看如何根据提示生成图片 |
预览
|\n| **查对话** | 获取指定人员的对话历史 |
预览
|\n| **帮助** | 获取帮助信息 |
预览
|\n\n\n### 功能指令\n\n除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。\n\n**📢 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**\n\n以下是功能指令详情\n\n| 指令 | 说明 | 示例 |\n| :--: | :--: | :--: |\n| **#图片** | 根据提示咒语生成对应图片 |
预览
|\n| **#域名** | 查询域名相关信息 |
预览
|\n| **#证书** | 查询域名证书相关信息 |
预览
|\n| **#Linux命令** | 根据自然语言描述生成对应命令 |
预览
|\n| **#解释代码** | 分析一段代码的功能或含义 |
预览
|\n| **#正则** | 根据自然语言描述生成正则 |
预览
|\n| **#周报** | 应用周报的prompt |
预览
|\n| **#生成sql** | 根据自然语言描述生成sql语句 |
预览
|\n\n如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。\n\n### 友情提示\n\n使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** \n\n即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。\n\n### 项目地址\n\n本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。"
+help: "### 发送信息\n\n若您想给机器人发送信息,有如下两种方式:\n\n1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。\n\n2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** \n\n### 系统指令\n\n系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。\n\n**📢 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**\n\n以下是系统指令详情:\n\n| 指令 | 描述 | 示例 |\n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |\n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
预览
|\n| **串聊** | 带上下文联系的对话模式 |
预览
|\n| **重置** | 重置上下文模式,回归到默认模式 |
预览
|\n| **余额** | 查询机器人所用OpenAI账号的余额 |
预览
|\n| **模板** | 查看应用内置的prompt模板 |
预览
|\n| **图片** | 查看如何根据提示生成图片 |
预览
|\n| **查对话** | 获取指定人员的对话历史 |
预览
|\n| **帮助** | 获取帮助信息 |
预览
|\n\n\n### 功能指令\n\n除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。\n\n**📢 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**\n\n以下是功能指令详情\n\n| 指令 | 说明 | 示例 |\n| :--: | :--: | :--: |\n| **#图片** | 根据提示咒语生成对应图片 |
预览
|\n| **#域名** | 查询域名相关信息 |
预览
|\n| **#证书** | 查询域名证书相关信息 |
预览
|\n| **#Linux命令** | 根据自然语言描述生成对应命令 |
预览
|\n| **#解释代码** | 分析一段代码的功能或含义 |
预览
|\n| **#正则** | 根据自然语言描述生成正则 |
预览
|\n| **#周报** | 应用周报的prompt |
预览
|\n| **#生成sql** | 根据自然语言描述生成sql语句 |
预览
|\n\n如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。\n\n### 友情提示\n\n使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** \n\n即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。\n\n### 项目地址\n\n本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。"
# Azure OpenAI 配置
# 例如你的示例请求为: curl https://eryajf.openai.azure.com/openai/deployments/gpt-35-turbo/chat/completions?api-version=2023-03-15-preview 那么对应配置如下,如果配置完成之后还是无法正常使用,请新建应用,重新配置回调试试看
@@ -67,6 +67,5 @@ azure_openai_token: "xxxxxxx"
# 设置credentials 之后,即具备了访问钉钉平台绝大部分 OpenAPI 的能力;例如上传图片到钉钉平台,提升图片体验,结合 Stream 模式简化服务部署
# client_id 对应钉钉平台 AppKey/SuiteKey;client_secret 对应 AppSecret/SuiteSecret
credentials:
- -
- client_id: "put-your-client-id-here"
+ - client_id: "put-your-client-id-here"
client_secret: "put-your-client-secret-here"
diff --git a/docker-compose.yml b/docker-compose.yml
index d1f31ee9..5fd1f27f 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,4 +1,4 @@
-version: '3'
+version: "3"
services:
chatgpt:
@@ -7,9 +7,9 @@ services:
restart: always
environment:
LOG_LEVEL: "info" # 应用的日志级别 info/debug
- APIKEY: xxxxxx # 你的 api_key
- RUN_MODE: "stream" # 运行模式,http 或者 stream ,强烈建议你使用stream模式,通过此链接了解:https://open.dingtalk.com/document/isvapp/stream
- BASE_URL: "" # 如果你使用官方的接口地址 https://api.openai.com,则留空即可,如果你想指定请求url的地址,可通过这个参数进行配置,注意需要带上 http 协议
+ APIKEY: xxxxxx # 你的 api_key
+ RUN_MODE: "stream" # 运行模式,http 或者 stream ,强烈建议你使用stream模式,通过此链接了解:https://open.dingtalk.com/document/isvapp/stream
+ BASE_URL: "" # 如果你使用官方的接口地址 https://api.openai.com,则留空即可,如果你想指定请求url的地址,可通过这个参数进行配置,注意需要带上 http 协议
MODEL: "gpt-3.5-turbo" # 指定模型,默认为 gpt-3.5-turbo , 可选参数有: "gpt-4-32k-0613", "gpt-4-32k-0314", "gpt-4-32k", "gpt-4-0613", "gpt-4-0314", "gpt-4", "gpt-3.5-turbo-16k-0613", "gpt-3.5-turbo-16k", "gpt-3.5-turbo-0613", "gpt-3.5-turbo-0301", "gpt-3.5-turbo",如果使用gpt-4,请确认自己是否有接口调用白名单,如果你是用的是azure,则该配置项可以留空或者直接忽略
SESSION_TIMEOUT: 600 # 会话超时时间,默认600秒,在会话时间内所有发送给机器人的信息会作为上下文
MAX_QUESTION_LEN: 2048 # 最大问题长度,默认4096 token,正常情况默认值即可,如果使用gpt4-8k或gpt4-32k,可根据模型token上限修改。
@@ -19,13 +19,13 @@ services:
DEFAULT_MODE: "单聊" # 指定默认的对话模式,可根据实际需求进行自定义,如果不设置,默认为单聊,即无上下文关联的对话模式
MAX_REQUEST: 0 # 单人单日请求次数上限,默认为0,即不限制
PORT: 8090 # 指定服务启动端口,默认为 8090,容器化部署时,不需要调整,一般在二进制宿主机部署时,遇到端口冲突时使用,如果run_mode为stream模式,则可以忽略该配置项
- SERVICE_URL: "" # 指定服务的地址,就是当前服务可供外网访问的地址(或者直接理解为你配置在钉钉回调那里的地址),用于生成图片时给钉钉做渲染
+ SERVICE_URL: "" # 指定服务的地址,就是当前服务可供外网访问的地址(或者直接理解为你配置在钉钉回调那里的地址),用于生成图片时给钉钉做渲染
CHAT_TYPE: "0" # 限定对话类型 0:不限 1:只能单聊 2:只能群聊
ALLOW_GROUPS: "" # 哪些群组可以进行对话(仅在CHAT_TYPE为0、2时有效),如果留空,则表示允许所有群组,如果要限制,则列表中写群ID(ConversationID)
# 群ID,可在群组中 @机器人 群ID 来查看日志获取,例如日志会输出:[🙋 企业内部机器人 在『测试』群的ConversationID为: "cidrabcdefgh1234567890AAAAA"],获取后可填写该参数并重启程序
# 如果不想支持outgoing机器人功能,这里可以随意设置一个内部群组,例如:cidrabcdefgh1234567890AAAAA;或随意一个字符串,例如:disabled
# 建议该功能默认关闭:除非你必须要用到outgoing机器人
- ALLOW_OUTGOING_GROUPS: "" # 哪些普通群(使用outgoing机器人)可以进行对话,如果留空,则表示允许所有群组,如果要限制,则列表中写群ID(ConversationID)
+ ALLOW_OUTGOING_GROUPS: "" # 哪些普通群(使用outgoing机器人)可以进行对话,如果留空,则表示允许所有群组,如果要限制,则列表中写群ID(ConversationID)
# 以下 ALLOW_USERS、DENY_USERS、VIP_USERS、ADMIN_USERS 配置中填写的是用户的userid
# 比如 ["1301691029702722","1301691029702733"],这个信息需要在钉钉管理后台的通讯录当中获取:https://oa.dingtalk.com/contacts.htm#/contacts
# 哪些用户可以进行对话,如果留空,则表示允许所有用户,如果要限制,则列表中写用户的userid
@@ -42,7 +42,7 @@ services:
AZURE_DEPLOYMENT_NAME: "" # Azure OpenAi API 部署名称,比如 "openai"
AZURE_OPENAI_TOKEN: "" # Azure token
DINGTALK_CREDENTIALS: "" # 钉钉应用访问凭证,比如 "client_id1:secret1,client_id2:secret2"
- HELP: "### 发送信息\n\n若您想给机器人发送信息,有如下两种方式:\n\n1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。\n\n2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** \n\n### 系统指令\n\n系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。\n\n**📢 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**\n\n以下是系统指令详情:\n\n| 指令 | 描述 | 示例 |\n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |\n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
预览
|\n| **串聊** | 带上下文联系的对话模式 |
预览
|\n| **重置** | 重置上下文模式,回归到默认模式 |
预览
|\n| **余额** | 查询机器人所用OpenAI账号的余额 |
预览
|\n| **模板** | 查看应用内置的prompt模板 |
预览
|\n| **图片** | 查看如何根据提示生成图片 |
预览
|\n| **查对话** | 获取指定人员的对话历史 |
预览
|\n| **帮助** | 获取帮助信息 |
预览
|\n\n\n### 功能指令\n\n除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。\n\n**📢 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**\n\n以下是功能指令详情\n\n| 指令 | 说明 | 示例 |\n| :--: | :--: | :--: |\n| **#图片** | 根据提示咒语生成对应图片 |
预览
|\n| **#域名** | 查询域名相关信息 |
预览
|\n| **#证书** | 查询域名证书相关信息 |
预览
|\n| **#Linux命令** | 根据自然语言描述生成对应命令 |
预览
|\n| **#解释代码** | 分析一段代码的功能或含义 |
预览
|\n| **#正则** | 根据自然语言描述生成正则 |
预览
|\n| **#周报** | 应用周报的prompt |
预览
|\n| **#生成sql** | 根据自然语言描述生成sql语句 |
预览
|\n\n如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。\n\n### 友情提示\n\n使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** \n\n即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。\n\n### 项目地址\n\n本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。" # 帮助信息,放在配置文件,可供自定义
+ HELP: "### 发送信息\n\n若您想给机器人发送信息,有如下两种方式:\n\n1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。\n\n2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** \n\n### 系统指令\n\n系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。\n\n**📢 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**\n\n以下是系统指令详情:\n\n| 指令 | 描述 | 示例 |\n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |\n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
预览
|\n| **串聊** | 带上下文联系的对话模式 |
预览
|\n| **重置** | 重置上下文模式,回归到默认模式 |
预览
|\n| **余额** | 查询机器人所用OpenAI账号的余额 |
预览
|\n| **模板** | 查看应用内置的prompt模板 |
预览
|\n| **图片** | 查看如何根据提示生成图片 |
预览
|\n| **查对话** | 获取指定人员的对话历史 |
预览
|\n| **帮助** | 获取帮助信息 |
预览
|\n\n\n### 功能指令\n\n除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。\n\n**📢 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**\n\n以下是功能指令详情\n\n| 指令 | 说明 | 示例 |\n| :--: | :--: | :--: |\n| **#图片** | 根据提示咒语生成对应图片 |
预览
|\n| **#域名** | 查询域名相关信息 |
预览
|\n| **#证书** | 查询域名证书相关信息 |
预览
|\n| **#Linux命令** | 根据自然语言描述生成对应命令 |
预览
|\n| **#解释代码** | 分析一段代码的功能或含义 |
预览
|\n| **#正则** | 根据自然语言描述生成正则 |
预览
|\n| **#周报** | 应用周报的prompt |
预览
|\n| **#生成sql** | 根据自然语言描述生成sql语句 |
预览
|\n\n如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。\n\n### 友情提示\n\n使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** \n\n即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。\n\n### 项目地址\n\n本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。" # 帮助信息,放在配置文件,可供自定义
volumes:
- ./data:/app/data
ports:
diff --git a/docs/userGuide.md b/docs/userGuide.md
index 6005df65..14097855 100644
--- a/docs/userGuide.md
+++ b/docs/userGuide.md
@@ -1,4 +1,4 @@
-本文是chatgpt-dingtalk项目的使用指南,该项目涉及的指令,以及特性,都会在本文呈现。
+本文是 chatgpt-dingtalk 项目的使用指南,该项目涉及的指令,以及特性,都会在本文呈现。
## 发送信息
@@ -15,17 +15,16 @@
以下是系统指令详情:
-
-| 指令 | 描述 | 示例 | 补充 |
-| :--------: | :------------------------------------------: | :----------------------------------------------------------: | :--: |
-| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
点击查看
| |
-| **串聊** | 带上下文联系的对话模式 |
点击查看
| |
-| **重置** | 重置上下文模式,回归到默认模式 |
点击查看
| |
-| **余额** | 查询机器人所用OpenAI账号的余额 |
点击查看
| |
-| **模板** | 查看应用内置的prompt模板 |
点击查看
| |
-| **图片** | 查看如何根据提示生成图片 |
点击查看
| |
-| **查对话** | 获取指定人员的对话历史 |
点击查看
| |
-| **帮助** | 获取帮助信息 |
点击查看
| |
+| 指令 | 描述 | 示例 | 补充 |
+| :--------: | :------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :--: |
+| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 |
点击查看
| |
+| **串聊** | 带上下文联系的对话模式 |
点击查看
| |
+| **重置** | 重置上下文模式,回归到默认模式 |
点击查看
| |
+| **余额** | 查询机器人所用 OpenAI 账号的余额 |
点击查看
| |
+| **模板** | 查看应用内置的 prompt 模板 |
点击查看
| |
+| **图片** | 查看如何根据提示生成图片 |
点击查看
| |
+| **查对话** | 获取指定人员的对话历史 |
点击查看
| |
+| **帮助** | 获取帮助信息 |
点击查看
| |
## 功能指令
@@ -35,18 +34,18 @@
以下是功能指令详情
-| 指令 | 说明 | 示例 | 补充|
-| :--: | :--: | :--: | :--: |
-| **#图片** | 根据提示咒语生成对应图片 |
点击查看
| |
-| **#域名** | 查询域名相关信息 |
点击查看
| |
-| **#证书** | 查询域名证书相关信息 |
点击查看
| |
-| **#Linux命令** | 根据自然语言描述生成对应命令 |
点击查看
| 此指令中的Linux开头字幕可以大写 |
-| **#解释代码** | 分析一段代码的功能或含义 |
点击查看
| |
-| **#正则** | 根据自然语言描述生成正则 |
点击查看
| |
-| **#周报** | 应用周报的prompt |
点击查看
| |
-| **#生成sql** | 根据自然语言描述生成sql语句 |
点击查看
| |
+| 指令 | 说明 | 示例 | 补充 |
+| :-------------: | :---------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------: |
+| **#图片** | 根据提示咒语生成对应图片 |
点击查看
| |
+| **#域名** | 查询域名相关信息 |
点击查看
| |
+| **#证书** | 查询域名证书相关信息 |
点击查看
| |
+| **#Linux 命令** | 根据自然语言描述生成对应命令 |
点击查看
| 此指令中的 Linux 开头字幕可以大写 |
+| **#解释代码** | 分析一段代码的功能或含义 |
点击查看
| |
+| **#正则** | 根据自然语言描述生成正则 |
点击查看
| |
+| **#周报** | 应用周报的 prompt |
点击查看
| |
+| **#生成 sql** | 根据自然语言描述生成 sql 语句 |
点击查看
| |
-如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。
+如上大多数能力,都是依赖 prompt 模板实现,如果你有更好的 prompt,欢迎提交 PR。
## 友情提示
@@ -56,4 +55,4 @@
## 项目地址
-本项目已在GitHub开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。
\ No newline at end of file
+本项目已在 GitHub 开源,[查看源代码](https://github.com/eryajf/chatgpt-dingtalk)。