Chatgpt Dingtalk
?
Inhaltsverzeichnis
Mit diesem Projekt können Sie GPT -Roboter in die Dingtalk -Gruppe -Chat integrieren. Das aktuelle Standardmodell ist gpt-3.5
und unterstützt gpt-4
und gpt-4o-mini
. Es unterstützt auch Azure-Openai.
? 注意
: Der Einsatz und der Konfigurationsprozess sind jetzt sehr ausgereift, und die Dokumente und das Problem werden im Grunde genommen abgedeckt .
? 注意
: Alle Funktionen dieses Projekts sind im Verwendungsführer gesammelt.
? Willkommen, meine anderen Open -Source -Projekte zu folgen:
- Go-Ldap-Admin:?
- LEARD WEEKLY: Der wöchentliche Inhalt ist hauptsächlich Betriebs- und Wartungstechnologie und Sprachperipheriegeräte, ergänzt durch hervorragende Projekte auf Github oder die hervorragende Erfahrung anderer Menschen.
- HowtostartOpenSource:?
- LEAD-LISTE: Die Lesung ist die Grundlage für qualitativ hochwertiges Inhaltsabonnement
- Awesome-Github-Profil-LEDME-CHINESSE:? Sammlung der ausgezeichneten chinesischen Region Persönliche Homepages
?
⚗️ OpenAI -Beamter bietet eine Statusseite , um den aktuellen Status des OpenAI -Dienstes zu präsentieren.
Sponsoren
302.ai ist eine AI-Anwendungsplattform mit One-Stop, die auf Demand, eine offene Plattform und ein Open-Source-Ökosystem bezahlt.
- Klicken Sie hier, um sich zu registrieren: 1PTC (1PTC = 1 US -Dollar, etwa RMB 7) -Token sofort.
- Es vereint die neuesten und vollständigsten KI -Modelle und Marken, einschließlich, aber nicht beschränkt auf Sprachmodelle, Bildmodelle, Klangmodelle und Videomodelle.
- Führen Sie eine eingehende Anwendungsentwicklung am Basismodell durch, damit Anfänger es bei Null Schwellenwert verwenden können, ohne dass die Kosten für die Lernkosten sind.
- Die monatliche Gebühr von Null, alle Funktionen werden auf Nachfrage bezahlt, vollständig geöffnet und erreicht einen echten niedrigen Schwellenwert und eine hohe Decke.
- Innovatives Nutzungsmodell, Trennung von Management und Gebrauch, das sich an Teams und kleine und mittelgroße Unternehmen richtet, die von einer Person verwaltet und von mehreren Personen verwendet werden.
- Alle KI-Funktionen bieten API-Zugriff und alle Anwendungen Open Source unterstützen die Selbstversorgung (in Bearbeitung).
- Ein starkes Entwicklungsteam, das pro Woche 2-3 neue Anwendungen auf den Markt bringt, und die Plattformfunktionen werden täglich aktualisiert.
帮助
sehen Sie die Hilfsliste?#图片
#周报
余额
#查对话username:xxx
, können Sie ihn online vorschauen und in die Region herunterladen.api_key
erstellen, können Sie diesen Artikel für Registrierungsangelegenheiten finden. Besuchen Sie hier, um einen persönlichen Schlüssel zu beantragen.Es wird empfohlen, dass Sie Docker verwenden, um dieses Projekt schnell durchzuführen.
第一种:基于环境变量运行
# 运行项目
$ 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
Auf die im Befehl aus dem Auslauf abgebildete Konfigurationsdatei wird nachstehend für die Beschreibung der Konfigurationsdatei verwiesen.
? 注意:
Wenn Sie mit Docker eingesetzt werden, sind für die Portparameter keine Anpassungen erforderlich.? 注意:
Die Zulassungen, Deny_Users, VIP_USERS, Admin_Users -Parameter sind Arrays. Ausgeschaltet Diese Parameter sind im Robotermodus ungültig.? 注意:
Wenn der Serverknoten selbst im Ausland ist oder BASE_URL
angepasst hat, lassen Sie HTTP_PROXY
leer.? 注意:
Wenn Sie Docker bereitstellen, kann die Proxy -Adresse direkt in der obigen Methode host.docker.internal
werden. Siehe: Wie Docker Container elegant auf Host -Netzwerke zugreifen 第二种:基于配置文件挂载运行
# 复制配置文件,根据自己实际情况,调整配置里的内容
$ 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
Die Konfigurationsdatei wird auf die nachstehende Konfigurationsdateibeschreibung verwiesen.
第三种:使用 docker compose 运行
$ wget https://raw.githubusercontent.com/eryajf/chatgpt-dingtalk/main/docker-compose.yml
$ vim docker-compose.yml # 编辑 APIKEY 等信息
$ docker compose up -d
Es gibt auch einen Schritt, um NGINX nach Abschluss der Bereitstellung zu konfigurieren.
Wenn Sie direkt über die Befehlszeile bereitstellen möchten, können Sie das komprimierte Paket in der Veröffentlichung direkt herunterladen.
Nach dem Herunterladen lokal entpacken und Sie sehen die ausführbare Programm- und Konfigurationsdatei:
$ 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 hat den Stream-Modus im Mai 2023 offiziell gestartet, sodass Sie diesen Modus hier direkt verwenden.
Referenzdokument für Schritte erstellen: Interne Unternehmensanwendung oder konfigurieren Sie es gemäß den folgenden Schritten.
Erstellen Sie eine App.
? 注意:
Der Name vonchatgpt
kann durch Dingtalk eingeschränkt werden, wenn Sie einen Roboter erstellen.
In基础信息
->应用信息
können Sie den AppKey
und AppSecret
des Roboters erhalten.
Konfigurieren Sie den Roboter.
Lösen Sie den Roboter.
Klicken Sie auf版本管理与发布
Sie dann auf上线
.
Fügen Sie Bots zum Gruppenchat hinzu.
2023-03-08
fügte hinzu, dass ich auch chatten kann, ohne den Roboter in der Gruppe zu binden und auf den Roboter zu klicken, und dann auf das Senden einer Nachricht an das Chat zu klicken, indem ich direkt mit dem Roboter spricht:
Student @raytow hat festgestellt, dass es unmöglich ist, mit dem Roboter direkt in der Testgruppe zu chatten, die automatisch vom Roboter generiert wurde.
Wenn der Aitbot leere Inhalte oder Hilfe sendet, kehrt er zur Hilfsliste zurück.
Senden Sie ein bestimmtes Schlüsselwort und Sie können verschiedene Modi wechseln.
? Hinweis: Im Chat -Modus ist der Chat -Kontext jeder Person in der Gruppe unabhängig. ? HINWEIS: Der Standard -Dialogmodus ist ein einzelner Chat, um den einzelnen Chat einzugeben, um den String -Chat einzugeben.
Wenn der AIT -Roboter den
余额
sendet, gibt er den verbleibenden Betrag und das verfügbare Datum des Kontos zurück, das dem aktuellen Schlüssel entspricht.
Senden Sie zwei Wörter an die Vorlage, die die aktuell integrierte Support-Eingabeaufforderungliste zurückgeben.
Wenn Sie einen besseren Anteil finden, begrüßen Sie PR. HINWEIS: Einige verwenden Szenarien, die Dingtalk nicht sehr gut übereinstimmen. Senden Sie sie also nicht.
Durch das Senden von Inhalten mit
#图片
wird nach dem Erstellen des Bildes die Malerei ausgelöst. Es wird imimages目录
im Root -Verzeichnis des Programms gespeichert.Wenn Sie keine Ahnung vom Zeichnen haben, finden Sie hier sowie hier einige gute Anträge.
Wenn Ihr Konto den offiziellen Whitelist übergibt, können Sie das Modell als gpt-4-0314
, gpt-4
oder gpt-4o-mini
konfigurieren.
Das Folgende ist der Unterschied zwischen GPT-3.5 und GPT-4 in mathematischen Berechnungen.
Vielen Dank an @piranhachan für die Bereitstellung des GPT-4-Schlüssels, mit dem das Projekt Überprüfungen und Tests zum Dockieren von GPT-4 durchführen und den verfügbaren Zustand erreicht.
# 获取项目
$ 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 "
So verwenden Sie Chatgpt besser: Hier gibt es viele Fälle als Referenz.
? 重要重要
Sonderausgabe.
Ich habe eine Dingtalk -Kommunikationsgruppe erstellt, die willkommen in der Gruppe beigetreten sind, um zu kommunizieren.
Dieses Projekt kann aufgrund dieser Open -Source -Projekte festgelegt werden:
Wenn Sie der Meinung sind, dass dieses Projekt für Sie hilfreich ist, können Sie den Autor einladen, eine Tasse Kaffee zu trinken.
Dieses Projekt wurde einst | 2022-12 | 2023-03-04 | 2023-03-29, heutzutage, Board Github Trending. Und es steht noch auf der Liste, die die Popularität von OpenAI in letzter Zeit zeigt.
Erya spricht über Fantasie | Flussray | NULL | Fein | Frank Cheung | Ashing Zheng | Benguang | Würzige Orange |
Kim Hee @dingtalk | Swing | NULL | Steinigend | Mühlenpeng | Little_huang | Iblogc | Wangbooth |
Mao Mao | Hugh Gao | Aydenlii |