chatgpt dingtalk
GO 언어를 기반으로 한 Dingtalk 통합 chatgpt 로봇?
목차
이 프로젝트는 GPT 로봇을 Dingtalk Group Chat에 통합하는 데 도움이 될 수 있습니다. 현재 기본 모델은 gpt-3.5
이며 gpt-4
및 gpt-4o-mini
지원합니다. 또한 Azure-Openai도 지원합니다.
? 注意
: 배포 및 구성 프로세스는 이제 매우 성숙하므로 기본적으로 프로젝트에 대한 질문에 대한 질문이 없습니다.
? 注意
:이 프로젝트의 모든 기능은 사용 가이드에 수집되어 있습니다.
내 다른 오픈 소스 프로젝트를 오신 것을 환영합니다.
- go-ldap-admin :?
- Weekly Content는 주로 운영 및 유지 보수 기술이며 GITHUB 또는 다른 사람들의 훌륭한 경험에 대한 훌륭한 프로젝트로 보완 된 GO 언어 주변 장치입니다.
- HowTostArtopenSource :? Github 오픈 소스 프로젝트 유지 보수 협업 안내서
- Read-list : 읽기는 고품질 콘텐츠 구독의 기초입니다.
- 굉장한 github-profile-readme-chinese :?
나는 또한 멋진 chatgpt-answer 를 만들었습니다.
OpenAI 공무원은 OpenAI 서비스의 현재 상태를 동시에 제공하는 상태 페이지를 제공합니다. 문제가 있으면이 페이지에 발표가 게시됩니다.
스폰서
302.ai는 주문형 AI의 애플리케이션 플랫폼, 주문형 플랫폼 및 오픈 소스 생태계입니다.
- 등록하려면 클릭하십시오 : 1PTC (1PTC = 1 US 달러, 약 RMB 7) 토큰을 즉시 받으십시오.
- 언어 모델, 이미지 모델, 사운드 모델 및 비디오 모델을 포함하여 최신의 가장 완전한 AI 모델 및 브랜드를 함께 제공합니다.
- 초보자가 학습 비용없이 0 임계 값으로 사용할 수 있도록 기본 모델에서 심층적 인 응용 프로그램 개발을 수행하십시오.
- 월별 요금이 없으면 모든 기능은 주문형으로 지불되며 완전히 개방되어 실제 낮은 임계 값과 높은 천장을 달성합니다.
- 한 사람이 관리하고 여러 사람이 사용하는 팀 및 중소 기업을 대상으로 혁신적인 사용 모델, 관리 및 사용 분리.
- 모든 AI 기능은 API 액세스를 제공하며 모든 응용 프로그램 오픈 소스는 자체 사용을 지원합니다 (진행중인).
- 매주 2-3 개의 새로운 응용 프로그램을 시작하고 플랫폼 기능이 매일 업데이트됩니다.
帮助
보내면 도움말 목록이 표시됩니까?#图片
키워드로 시작하여 이미지를 생성하십시오#周报
통해 내장 된 Propt 템플릿을 트리거합니까?余额
키워드를 보면 현재 키의 나머지 금액을 쿼리하십시오#查对话username: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 Containers가 호스트 네트워크에 우아하게 액세스하는 방법 第二种:基于配置文件挂载运行
# 复制配置文件,根据自己实际情况,调整配置里的内容
$ 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.log
Dingtalk는 2023 년 5 월에 스트림 모드를 공식적으로 시작 했으므로이 모드는 여전히 지원되지만 강의 연구를 수행하지는 않습니다.
단계 참조 문서 만들기 : 내부 엔터프라이즈 애플리케이션 또는 다음 단계에 따라 구성하십시오.
앱을 만듭니다.
? 注意:
로봇을 만들 때chatgpt
의 이름은 Dingtalk에 의해 제한 될 수 있습니다.
基础信息
->应用信息
에서 로봇의 AppKey
및 AppSecret
얻을 수 있습니다.
로봇을 구성하십시오.
로봇을 해제하십시오.
版本管理与发布
上线
다음이 로봇을 Dingtalk의 그룹에 추가 할 수 있습니다.
그룹 채팅에 봇을 추가하십시오.
2023-03-08
덧붙여서 그룹의 로봇을 묶지 않고 로봇을 클릭 한 다음 로봇과 직접 대화하여 채팅하여 메시지를 보내는 것을 클릭하는 것도 추가했습니다.
학생 @Raytow는 로봇에서 자동으로 생성 된 테스트 그룹에서 로봇과 직접 채팅하는 것이 불가능하다는 것을 발견했습니다.
AITBOT가 빈 콘텐츠 또는 도움말을 보내면 도움말 목록으로 돌아갑니다.
지정된 키워드를 보내면 다른 모드를 전환 할 수 있습니다.
참고 : 채팅 모드에서 그룹 내 각 사람의 채팅 컨텍스트는 독립적입니다. 참고 : 기본 대화 모드는 단일 채팅을 보내려면 문자열 채팅을 입력 할 필요가 없습니다.
AIT 로봇이 Word
余额
보내면 현재 키에 해당하는 계정의 나머지 금액과 사용 가능한 날짜를 반환합니다.
템플릿에 두 단어를 보내면 현재 내장 된 지원 프롬프트 목록을 반환합니다.
더 나은 소품을 찾으면 PR을 환영합니다. 참고 : 일부는 Dingtalk와 잘 어울리지 않는 시나리오를 사용하므로 제출하지 마십시오.
#图片
로 시작하면 그림이 생성 된 후에는 프로그램의 루트 디렉토리에images目录
에 저장됩니다.그리기에 대해 전혀 모른다면 여기뿐만 아니라 여기에서도 좋은 제안을 찾을 수 있습니다.
귀하의 계정이 공식 화이트리스트를 통과하면 다음과 같은 모델을 gpt-4-0314
, gpt-4
gpt-4o-mini
로 구성 할 수 있습니다.
다음은 수학적 계산 측면에서 GPT-3.5와 GPT-4의 차이입니다.
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 커뮤니케이션 그룹을 만들었고 그룹에 참여하여 의사 소통을 환영합니다.
이 프로젝트는 이러한 오픈 소스 프로젝트로 인해 설정할 수 있습니다.
이 프로젝트가 도움이된다고 생각되면 저자에게 커피 한 잔을 마시도록 초대 할 수 있습니다.
이 프로젝트는 2022-12-20 | 2023-03-05 | 2023-03-25 2023-03-29, 요즘 Github 트렌드 보드. 그리고 여전히 OpenAi의 인기를 보여주는 목록에 있습니다.
Erya는 판타지에 대해 이야기합니다 | 리버 레이 | 널 | 정교하게 | 프랭크 청 | Zheng 애싱 | 벵양 | 매운 오렌지 |
Kim Hee @dingtalk | 그네 | 널 | 스톤 플라이링 | Mill Peng | Little_huang | IBLOGC | Wangbooth |
마오 마오 | 휴 가오 | Aydenlii |