Chatgpt DingTalk
?
Daftar isi
Proyek ini dapat membantu Anda mengintegrasikan robot GPT ke dalam obrolan grup DingTalk. Model default saat ini adalah gpt-3.5
, dan mendukung gpt-4
dan gpt-4o-mini
. Ini juga mendukung Azure-Openai.
? 注意
: Proses penyebaran dan konfigurasi sekarang sangat matang, dan dokumen dan masalah pada dasarnya dibahas .
? 注意
: Semua fungsi dari proyek ini dikumpulkan dalam panduan penggunaan.
Selamat datang untuk mengikuti proyek open source saya yang lain:
- Go-Llda-Admin:?
- Pembelajaran-Mingguan: Konten mingguan terutama adalah teknologi operasi dan pemeliharaan dan periferal bahasa GO, ditambah dengan proyek-proyek yang sangat baik di GitHub atau pengalaman orang lain yang luar biasa.
- Howtostartopensource:?
- Daftar baca: Bacaan adalah dasar untuk berlangganan konten berkualitas tinggi
- Awesome-Profile-Readme-Chinese:?
Saya juga membuat proyek Awesome-Chatgpt-Answer : Rekam momen-momen dari pertanyaan bagus dan jawaban yang bagus.
⚗️ Pejabat OpenAi menyediakan halaman status untuk menyajikan status layanan OpenAi saat ini.
Sponsor
302.ai adalah platform aplikasi AI satu atap yang membayar sesuai permintaan, platform terbuka, dan ekosistem open source.
- Klik untuk mendaftar: Dapatkan 1ptc (1ptc = 1 dolar AS, sekitar RMB 7) Token segera.
- Ini menyatukan model dan merek AI terbaru dan paling lengkap, termasuk tetapi tidak terbatas pada model bahasa, model gambar, model suara, dan model video.
- Lakukan pengembangan aplikasi yang mendalam pada model dasar sehingga pemula dapat menggunakannya di ambang batas nol tanpa biaya belajar.
- Nol biaya bulanan, semua fungsi dibayar sesuai permintaan, sepenuhnya terbuka, mencapai ambang batas rendah yang nyata dan langit -langit tinggi.
- Model penggunaan inovatif, pemisahan manajemen dan penggunaan, yang ditujukan untuk tim dan perusahaan kecil dan menengah, dikelola oleh satu orang dan digunakan oleh banyak orang.
- Semua kemampuan AI menyediakan akses API, dan semua aplikasi dukungan source open source (sedang berlangsung).
- Tim pengembangan yang kuat, meluncurkan 2-3 aplikasi baru setiap minggu, dan fitur platform diperbarui setiap hari.
帮助
Anda akan melihat daftar bantuannya,?#图片
#周报
余额
#查对话username:xxx
XXX, Anda dapat melihat pratinjau secara online dan mengunduhnya ke area lokal.api_key
, Anda dapat merujuk pada artikel ini untuk hal -hal terkait pendaftaran. Kunjungi di sini untuk melamar kunci pribadi.Dianjurkan agar Anda menggunakan Docker untuk menjalankan proyek ini dengan cepat.
第一种:基于环境变量运行
# 运行项目
$ 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
File konfigurasi yang dipetakan dalam perintah run dirujuk di bawah ini untuk deskripsi file konfigurasi.
? 注意:
Jika digunakan menggunakan Docker, tidak ada penyesuaian yang diperlukan untuk parameter port.? 注意:
ALLOW_GROUPS, ALLOW_USERS, DENY_USERS, VIP_USERS, ADMING_USERS Parameter adalah array. Keluar parameter ini tidak valid dalam mode robot.? 注意:
Jika simpul server itu sendiri di luar negeri atau memiliki BASE_URL
yang disesuaikan, maka tinggalkan parameter HTTP_PROXY
kosong? 注意:
Jika Anda menggunakan Docker untuk host.docker.internal
, maka alamat proxy dapat digunakan secara langsung dalam metode di atas. Lihat: Bagaimana Docker Containers Dengan Elegan Mengakses Jaringan Host 第二种:基于配置文件挂载运行
# 复制配置文件,根据自己实际情况,调整配置里的内容
$ 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
File konfigurasi dirujuk ke deskripsi file konfigurasi di bawah ini.
第三种:使用 docker compose 运行
$ wget https://raw.githubusercontent.com/eryajf/chatgpt-dingtalk/main/docker-compose.yml
$ vim docker-compose.yml # 编辑 APIKEY 等信息
$ docker compose up -d
Ada juga langkah untuk mengonfigurasi Nginx setelah penyebaran selesai.
Jika Anda ingin menyebarkan langsung melalui baris perintah, Anda dapat langsung mengunduh paket terkompresi dalam rilis. Silakan pilih paket terkompresi yang sesuai sesuai dengan sistem dan arsitektur Anda, dan kemudian unzip langsung setelah mengunduh.
Setelah mengunduh, unzip secara lokal dan Anda akan melihat program dan file konfigurasi yang dapat dieksekusi:
$ 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 secara resmi meluncurkan mode aliran pada Mei 2023, jadi Anda disarankan untuk menggunakan mode ini langsung di sini.
Buat Dokumen Referensi Langkah: Aplikasi Perusahaan Internal, atau konfigurasikan sesuai dengan langkah -langkah berikut.
Buat aplikasi.
? 注意:
Namachatgpt
mungkin dibatasi oleh DingTalk saat membuat robot.
Dalam基础信息
->应用信息
, Anda dapat memperoleh AppKey
dan AppSecret
robot.
Konfigurasikan robot.
Lepaskan robot.
Klik版本管理与发布
, lalu klik上线
.
Tambahkan bot ke obrolan grup.
2023-03-08
Ditambahkan, saya menemukan bahwa saya juga dapat mengobrol tanpa mengikat robot di grup, dan mengklik robot, dan kemudian mengklik mengirim pesan untuk mengobrol dengan langsung berbicara dengan robot:
Student @Raytow menemukan bahwa tidak mungkin untuk mengobrol dengan robot secara langsung di grup uji secara otomatis dihasilkan oleh robot.
Ketika AITBOT mengirim konten kosong atau bantuan, itu akan kembali ke daftar bantuan.
Kirim kata kunci yang ditentukan dan Anda dapat mengganti mode yang berbeda.
Catatan: Dalam mode obrolan, konteks obrolan setiap orang dalam grup independen. Catatan: Mode dialog default adalah obrolan tunggal, jadi Anda tidak perlu mengirim obrolan tunggal untuk memasukkan mode obrolan tunggal.
Ketika robot AIT mengirimkan
余额
kata, ia akan mengembalikan jumlah yang tersisa dan tanggal yang tersedia dari akun yang sesuai dengan kunci saat ini.
Kirim dua kata ke templat, yang akan mengembalikan daftar prompt dukungan yang saat ini bawaan.
Jika Anda menemukan propt yang lebih baik, selamat datang PR. Catatan: Beberapa skenario menggunakan yang tidak cocok dengan Dingtalk dengan sangat baik, jadi jangan mengirimkannya.
Mengirim konten yang dimulai dengan
#图片
images目录
memicu kemampuan melukis.Jika Anda tidak tahu tentang menggambar, Anda dapat menemukan beberapa propt bagus di sini dan di sini.
Jika akun Anda melewati daftar putih resmi, Anda dapat mengonfigurasi model sebagai: gpt-4-0314
, gpt-4
atau gpt-4o-mini
.
Berikut ini adalah perbedaan antara GPT-3.5 dan GPT-4 dalam hal perhitungan matematika.
Terima kasih kepada @Piranhachan karena menyediakan kunci GPT-4, yang memungkinkan proyek untuk melakukan verifikasi dan pengujian pada docking GPT-4, dan mencapai keadaan yang tersedia.
# 获取项目
$ 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 "
Bagaimana cara menggunakan chatgpt lebih baik: Ada banyak kasus untuk referensi di sini.
? 重要重要
.
Saya telah membuat grup komunikasi DingTalk, selamat datang untuk bergabung dengan grup untuk berkomunikasi.
Proyek ini dapat ditetapkan karena proyek open source ini:
Jika menurut Anda proyek ini bermanfaat bagi Anda, Anda dapat mengundang penulis untuk minum secangkir kopi☕️
Proyek ini di atas | 2023-03-04 | 2023-03-29, hari ini, papan tren GitHub. Dan itu masih ada dalam daftar, yang menunjukkan popularitas Openai baru -baru ini.
Erya berbicara tentang fantasi | Riverray | Batal | Halus | Frank Cheung | Ashing Zheng | Benguang | Oranye pedas |
Kim Hee @dingtalk | Mengayun | Batal | Stoneflying | Mill Peng | Little_huang | Iblogc | Wangbooth |
Mao Mao | Hugh Gao | Aydenlii |