Chatgpt Dingtalk
?

Оглавление
Этот проект может помочь вам интегрировать роботов GPT в групповой чат Dingtalk. Текущая модель по умолчанию- gpt-3.5 , и она поддерживает gpt-4 и gpt-4o-mini . Это также поддерживает Azure-Openai.
? 注意: процесс развертывания и конфигурации теперь очень зрел, а документы и проблема в основном покрыты .
? 注意: все функции этого проекта собираются в Руководстве по использованию.
?
- GO-LDAP-ADMIN:?
- Учебное поведение: еженедельный контент-это в основном технология работы и технического обслуживания и периферийные устройства для языка, дополненные отличными проектами на GitHub или отличном опыте других людей.
- Howtostartopensource:?
- чтение-лист: чтение является основой для высококачественной подписки на контент
- Awesome-github-profile-readme-chinese:?
?
⚗ Openai Office предоставляет страницу статуса , чтобы представить текущее состояние службы Openai.
Спонсоры
302.AI-это универсальная платформа приложений AI, которая платит по требованию, открытую платформу и экосистему с открытым исходным кодом.
- Нажмите, чтобы зарегистрироваться: Получите 1ptc (1ptc = 1 доллары США, около юридических юани из 7).
- Он объединяет новейшие и самые полные модели и бренды ИИ, включая, помимо прочего, языковые модели, модели изображений, звуковые модели и видео -модели.
- Проводите углубленную разработку приложений на базовой модели, чтобы новички могли использовать ее с нулевым порогом без затрат на обучение.
- Нулевая ежемесячная плата, все функции выплачиваются по требованию, полностью открыты, достигая реального низкого порога и высокого потолка.
- Инновационная модель использования, разделение управления и использования, нацеленная на команды и малые и средние предприятия, управляемые одним человеком и используемые несколькими людьми.
- Все возможности ИИ обеспечивают доступ к API, а все приложения с открытым исходным кодом поддерживают самостоятельную самостоятельную атмосферу (в процессе).
- Сильная команда разработчиков, запускающая 2-3 новых приложений каждую неделю, и функции платформы обновляются ежедневно.
帮助вы увидите список справки?#图片#周报余额#查对话username:xxx xxx, вы можете просмотреть его в Интернете и загрузить его в местный район.api_key , вы можете обратиться к этой статье по вопросам, связанным с регистрацией. Посетите здесь, чтобы подать заявку на личный ключ.Рекомендуется использовать Docker для быстрого запуска этого проекта.
第一种:基于环境变量运行
# 运行项目
$ docker run -itd --name chatgpt -p 8090:8090
-v ./data:/app/data --add-host="host.docker.internal:host-gateway"
-e LOG_LEVEL="info" -e APIKEY=换成你的key -e BASE_URL=""
-e MODEL="gpt-3.5-turbo" -e SESSION_TIMEOUT=600
-e MAX_QUESTION_LENL=2048 -e MAX_ANSWER_LEN=2048 -e MAX_TEXT=4096
-e HTTP_PROXY="http://host.docker.internal:15732"
-e DEFAULT_MODE="单聊" -e MAX_REQUEST=0 -e PORT=8090
-e SERVICE_URL="你当前服务外网可访问的URL" -e CHAT_TYPE="0"
-e ALLOW_GROUPS=a,b -e ALLOW_OUTGOING_GROUPS=a,b -e ALLOW_USERS=a,b -e DENY_USERS=a,b -e VIP_USERS=a,b -e ADMIN_USERS=a,b -e APP_SECRETS="xxx,yyy"
-e SENSITIVE_WORDS="aa,bb" -e RUN_MODE="http"
-e AZURE_ON="false" -e AZURE_API_VERSION="" -e AZURE_RESOURCE_NAME=""
-e AZURE_DEPLOYMENT_NAME="" -e AZURE_OPENAI_TOKEN=""
-e DINGTALK_CREDENTIALS="your_client_id1:secret1,your_client_id2:secret2"
-e HELP="欢迎使用本工具nn你可以查看:[用户指南](https://github.com/eryajf/chatgpt-dingtalk/blob/main/docs/userGuide.md)nn这是一个[开源项目](https://github.com/eryajf/chatgpt-dingtalk/)
,觉得不错你可以来波素质三连."
--restart=always registry.cn-hangzhou.aliyuncs.com/eryajf/chatgpt-dingtalk
Файл конфигурации, отображенный в команде Run, упоминается ниже для описания файла конфигурации.
? 注意: при развертывании с использованием Docker не требуется корректировки для параметров порта.? 注意: Allow_groups, Allow_users, Deny_users, VIP_USERS, ADMIN_USERS - это массивы. Обходные эти параметры недействительны в режиме робота.? 注意: если сам узел сервера находится за границей или имеет настройку BASE_URL , оставьте параметр HTTP_PROXY .? 注意: если вы используете Docker для развертывания, то адрес host.docker.internal можно будет развернуть непосредственно в приведенном выше методе. Смотрите: как контейнеры Docker элегантно получить доступ хост -сети 第二种:基于配置文件挂载运行
# 复制配置文件,根据自己实际情况,调整配置里的内容
$ cp config.example.yml config.yml # 其中 config.example.yml 从项目的根目录获取
# 运行项目
$ docker run -itd --name chatgpt -p 8090:8090 -v `pwd`/config.yml:/app/config.yml --restart=always registry.cn-hangzhou.aliyuncs.com/eryajf/chatgpt-dingtalk
Файл конфигурации ссылается на описание файла конфигурации ниже.
第三种:使用 docker compose 运行
$ wget https://raw.githubusercontent.com/eryajf/chatgpt-dingtalk/main/docker-compose.yml
$ vim docker-compose.yml # 编辑 APIKEY 等信息
$ docker compose up -d
Существует также шаг для настройки NGINX после завершения развертывания.
Если вы хотите развернуться непосредственно через командную строку, вы можете напрямую загружать сжатый пакет в релизе.
После загрузки, разканипируется локально, и вы увидите исполнительную программу и файл конфигурации:
$ tar xf chatgpt-dingtalk-v0.0.4-darwin-arm64.tar.gz
$ cd chatgpt-dingtalk-v0.0.4-darwin-arm64
$ cp config.example.yml config.yml
$ ./chatgpt-dingtalk # 直接运行
# 如果要守护在后台运行
$ nohup ./chatgpt-dingtalk & > run.log &
$ tail -f run.logDingtalk официально запустил режим потока в мае 2023 года, поэтому рекомендуется использовать этот режим непосредственно здесь.
Создать эталонный документ: внутреннее предприятие или настройка его в соответствии со следующими шагами.
Создать приложение.
? 注意:названиеchatgptможет быть ограничено Dingtalk при создании робота.
В基础信息->应用信息вы можете получить AppKey и AppSecret робота.
Настройте робот.
Выпустить робота.
Нажмите版本管理与发布, а затем нажмите上线.
Добавить ботов в групповой чат.
2023-03-08 добавлено, я обнаружил, что могу также поболтать, не связывая робота в группе, и не нажав робот, а затем нажав отправить сообщение, чтобы поболтать, напрямую поговорив с роботом:
Студент @Raytow обнаружил, что невозможно пообщаться с роботом непосредственно в тестовой группе, автоматически сгенерированной роботом.

Когда AITBOT отправляет пустой контент или помощь, он вернется в список справки.
Отправьте указанное ключевое слово, и вы можете переключить различные режимы.
Примечание: в режиме чата контекст чата каждого человека в группе независим. Примечание: режим диалога по умолчанию - это один чат, поэтому вам не нужно отправлять отдельный чат в режим ввода чата.
Когда робот AIT отправит
余额слова, он вернет оставшуюся сумму и доступную дату учетной записи, соответствующей текущему ключу.
Отправьте два слова в шаблон, который вернет встроенный встроенный список призреек поддержки.
Если вы найдете лучшую пропта, добро пожаловать. Примечание. Некоторые используют сценарии, которые не очень хорошо соответствуют Dingtalk, так что не отправляйте их.
Отправка контента
images目录начиная с#图片, вызовет способность к рисованию.Если вы понятия не имеете о рисовании, вы можете найти здесь несколько хороших предложений, а также здесь.
Если ваша учетная запись передает официальный белый список, вы можете настроить модель как: gpt-4-0314 , gpt-4 или gpt-4o-mini .
Ниже приводится разница между GPT-3.5 и GPT-4 с точки зрения математических расчетов.
Спасибо @piranhachan за предоставление ключа GPT-4, которое позволяет проекту выполнять проверку и тесты на стыковке GPT-4 и достигает доступного состояния.
# 获取项目
$ git clone https://github.com/eryajf/chatgpt-dingtalk.git
# 进入项目目录
$ cd chatgpt-dingtalk
# 复制配置文件,根据个人实际情况进行配置
$ cp config.example.yml config.yml
# 启动项目
$ go run main.go # 应用的日志级别,info or debug
log_level : " info "
# 运行模式,http 或者 stream ,强烈建议你使用stream模式,通过此链接了解:https://open.dingtalk.com/document/isvapp/stream
run_mode : " stream "
# openai api_key,如果你是用的是azure,则该配置项可以留空或者直接忽略
api_key : " xxxxxxxxx "
# 如果你使用官方的接口地址 https://api.openai.com,则留空即可,如果你想指定请求url的地址,可通过这个参数进行配置,注意需要带上 http 协议,如果你是用的是azure,则该配置项可以留空或者直接忽略
base_url : " "
# 指定模型,默认为 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,则该配置项可以留空或者直接忽略
model : " gpt-3.5-turbo "
# 指定绘画模型,默认为 dall-e-2 , 可选参数有:"dall-e-2", "dall-e-3"
image_model : " dall-e-2 "
# 会话超时时间,默认600秒,在会话时间内所有发送给机器人的信息会作为上下文
session_timeout : 600
# 最大问题长度
max_question_len : 2048
# 最大回答长度
max_answer_len : 2048
# 最大上下文文本长度,通常该参数可设置为与模型Token限制相同
max_text : 4096
# 指定请求时使用的代理,如果为空,则不使用代理,注意需要带上 http 协议 或 socks5 协议,如果你是用的是azure,则该配置项可以留空或者直接忽略
http_proxy : " "
# 指定默认的对话模式,可根据实际需求进行自定义,如果不设置,默认为单聊,即无上下文关联的对话模式
default_mode : "单聊"
# 单人单日请求次数上限,默认为0,即不限制
max_request : 0
# 指定服务启动端口,默认为 8090,一般在二进制宿主机部署时,遇到端口冲突时使用,如果run_mode为stream模式,则可以忽略该配置项
port : " 8090 "
# 指定服务的地址,就是当前服务可供外网访问的地址(或者直接理解为你配置在钉钉回调那里的地址),用于生成图片时给钉钉做渲染,最新版本中将图片上传到了钉钉服务器,理论上你可以忽略该配置项,如果run_mode为stream模式,则可以忽略该配置项
service_url : " http://xxxxxx "
# 限定对话类型 0:不限 1:只能单聊 2:只能群聊
chat_type : " 0 "
# 哪些群组可以进行对话(仅在chat_type为0、2时有效),如果留空,则表示允许所有群组,如果要限制,则列表中写群ID(ConversationID)
# 群ID,可在群组中 @机器人 群ID 来查看日志获取,例如日志会输出:[? 企业内部机器人 在『测试』群的ConversationID为: "cidrabcdefgh1234567890AAAAA"],获取后可填写该参数并重启程序
allow_groups : []
# 哪些普通群(使用outgoing机器人)可以进行对话,如果留空,则表示允许所有群组,如果要限制,则列表中写群ID(ConversationID)
# 群ID,可在群组中 @机器人 群ID 来查看日志获取,例如日志会输出:[? outgoing机器人 在『测试』群的ConversationID为: "cidrabcdefgh1234567890AAAAA"],获取后可填写该参数并重启程序
# 如果不想支持outgoing机器人功能,这里可以随意设置一个内部群组,例如:cidrabcdefgh1234567890AAAAA;或随意一个字符串,例如:disabled
# 建议该功能默认关闭:除非你必须要用到outgoing机器人
allow_outgoing_groups : []
# 以下 allow_users、deny_users、vip_users、admin_users 配置中填写的是用户的userid,outgoing机器人模式下不适用这些配置
# 比如 ["1301691029702722","1301691029702733"],这个信息需要在钉钉管理后台的通讯录当中获取:https://oa.dingtalk.com/contacts.htm#/contacts
# 哪些用户可以进行对话,如果留空,则表示允许所有用户,如果要限制,则列表中写用户的userid
allow_users : []
# 哪些用户不可以进行对话,如果留空,则表示允许所有用户(如allow_user有配置,需满足相应条件),如果要限制,则列表中写用户的userid,黑名单优先级高于白名单
deny_users : []
# 哪些用户可以进行无限对话,如果留空,则表示只允许管理员(如max_request配置为0,则允许所有人)
# 如果要针对指定VIP用户放开限制(如max_request配置不为0),则列表中写用户的userid
vip_users : []
# 指定哪些人为此系统的管理员,如果留空,则表示没有人是管理员,如果要限制,则列表中写用户的userid
# 注意:如果下边的app_secrets为空,以及使用outgoing的方式配置机器人,这两种情况下,都表示没有人是管理员
admin_users : []
# 钉钉机器人在应用信息中的AppSecret,为了校验回调的请求是否合法,如果留空,将会忽略校验,则该接口将会存在其他人也能随意调用的安全隐患,因此强烈建议配置正确的secret,如果你的服务对接给多个机器人,这里可以配置多个机器人的secret
app_secrets : []
# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 代替
sensitive_words : []
# 帮助信息,放在配置文件,可供自定义
help: "### 发送信息nn若您想给机器人发送信息,有如下两种方式:nn1. **群聊:** 在机器人所在群里 **@机器人** 后边跟着要提问的内容。nn2. **私聊:** 点击机器人的 **头像** 后,再点击 **发消息。** nn### 系统指令nn系统指令是一些特殊的词语,当您向机器人发送这些词语时,会触发对应的功能。nn**? 注意:系统指令,即只发指令,没有特殊标识,也没有内容。**nn以下是系统指令详情:nn| 指令 | 描述 | 示例 |n| :--------: | :------------------------------------------: | :----------------------------------------------------------: |n| **单聊** | 每次对话都是一次新的对话,没有聊天上下文联系 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_193608.jpg'><br /></details> |n| **串聊** | 带上下文联系的对话模式 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_193608.jpg'><br /></details> |n| **重置** | 重置上下文模式,回归到默认模式 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_193608.jpg'><br /></details> |n| **余额** | 查询机器人所用OpenAI账号的余额 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230304_222522.jpg'><br /></details> |n| **模板** | 查看应用内置的prompt模板 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_193827.jpg'><br /></details> |n| **图片** | 查看如何根据提示生成图片 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_194125.jpg'><br /></details> |n| **查对话** | 获取指定人员的对话历史 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_193938.jpg'><br /></details> |n| **帮助** | 获取帮助信息 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_202336.jpg'><br /></details> |nnn### 功能指令nn除去系统指令,还有一些功能指令,功能指令是直接与应用交互,达到交互目的的一种指令。nn**? 注意:功能指令,一律以 #+关键字 为开头,通常需要在关键字后边加个空格,然后再写描述或参数。**nn以下是功能指令详情nn| 指令 | 说明 | 示例 |n| :--: | :--: | :--: |n| **#图片** | 根据提示咒语生成对应图片 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230323_150547.jpg'><br /></details> |n| **#域名** | 查询域名相关信息 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_202620.jpg'><br /></details> |n| **#证书** | 查询域名证书相关信息 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_202706.jpg'><br /></details> |n| **#Linux命令** | 根据自然语言描述生成对应命令 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_214947.jpg'><br /></details> |n| **#解释代码** | 分析一段代码的功能或含义 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_215242.jpg'><br /></details> |n| **#正则** | 根据自然语言描述生成正则 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_220222.jpg'><br /></details> |n| **#周报** | 应用周报的prompt | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_214335.jpg'><br /></details> |n| **#生成sql** | 根据自然语言描述生成sql语句 | <details><br /><summary>预览</summary><br /><img src='https://cdn.jsdelivr.net/gh/eryajf/tu/img/image_20230404_221325.jpg'><br /></details> |nn如上大多数能力,都是依赖prompt模板实现,如果你有更好的prompt,欢迎提交PR。nn### 友情提示nn使用 **串聊模式** 会显著加快机器人所用账号的余额消耗速度,因此,若无保留上下文的需求,建议使用 **单聊模式。** nn即使有保留上下文的需求,也应适时使用 **重置** 指令来重置上下文。nn### 项目地址nn本项目已在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 那么对应配置如下,如果配置完成之后还是无法正常使用,请新建应用,重新配置回调试试看
azure_on : false # 如果是true,则会走azure的openai接口
azure_resource_name : " eryajf " # 对应你的主个性域名
azure_deployment_name : " gpt-35-turbo " # 对应的是 /deployments/ 后边跟着的这个值
azure_api_version : " 2023-03-15-preview " # 对应的是请求中的 api-version 后边的值
azure_openai_token : " xxxxxxx "
# 钉钉应用鉴权凭据信息,支持多个应用。通过请求时候鉴权来识别是来自哪个机器人应用的消息
# 设置credentials 之后,即具备了访问钉钉平台绝大部分 OpenAPI 的能力;例如上传图片到钉钉平台,提升图片体验,结合 Stream 模式简化服务部署
# client_id 对应钉钉平台 AppKey/SuiteKey;client_secret 对应 AppSecret/SuiteSecret
credentials :
- client_id : " put-your-client-id-here "
client_secret : " put-your-client-secret-here " Как лучше использовать CHATGPT: здесь есть много случаев для справки.
? 重要重要выпуск.
Я создал группу Dingtalk Communication, добро пожаловать, чтобы присоединиться к группе для общения.
Этот проект может быть создан из -за этих проектов с открытым исходным кодом:
Если вы думаете, что этот проект полезен для вас, вы можете пригласить автора купить чашку кофе ☕
Этот проект был 2023-03 | 2023-03-29, в наши дни, тренды доски GitHub. И это все еще в списке, который недавно показывает популярность Openai.
Эрья говорит о фантазии | Риверрей | Нулевой | Тонкий | Фрэнк Чунг | Асинг Чжэн | Бенгуан | Пряный апельсин |
Ким Хи @dingtalk | Качать | Нулевой | Каменное кольцо | Mill Peng | Little_huang | Iblogc | Wangbooth |
Мао Мао | Хью Гао | Aydenlii |