Proyek ini hanya dapat berjalan pada sistem win . Ini didasarkan pada modifikasi kedua dari chatgpt-on-wechat dan sepenuhnya menggunakan kerangka proyek sumber. Ini mendukung klien PC dari platform Win dan klien perusahaan dan mikro. Proyek ini akan terus diperbarui, dan plug-in juga akan dikembangkan secara bertahap. Ini dapat dikembangkan oleh satu orang, mohon jangan terburu-buru, terima kasih!
Saluran pesan dan fungsi yang didukung oleh proyek ini adalah sebagai berikut:
Wework : Saluran perpesanan akun pribadi mikro dan perusahaan di sisi PC, yang mengandalkan ntwork dan terbatas pada versi WeCom_4.0.8.6027, hanya dapat menjalankan proyek pada platform Win .
WeChat : Saluran pesan mikro di sisi PC, yang mengandalkan proyek ntchat. Mendukung hingga versi lingkungan Python310, terbatas pada versi WeChat3.6.0.18, dan hanya dapat menjalankan proyek pada platform Win .
15.08.2023: Perbarui logika akses FastGpt untuk mendukung grup tunggal dan basis pengetahuan tunggal. Jika tidak dikonfigurasi, basis global akan digunakan secara default.
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }08.08.2023: Menambahkan saluran pesan Wework (akun pribadi Qiwei).
25.07.2023: Sebaiknya tambahkan saluran pesan WeChat. Proyek ini kompatibel dengan antarmuka API FastGPT dan dapat digunakan dengan memodifikasi open_ai_api_key dan open_ai_api_base secara langsung.
Hanya mendukung sistem Windows dan memerlukan instalasi Python
.
Disarankan agar versi Python antara 3.7.1~3.10.
(1) Unduh kode proyek:
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) Instal dependensi inti (wajib):
pip3 install -r requirements.txt
(3) Ketergantungan ekspansi (opsional, disarankan untuk diinstal):
pip3 install -r requirements-optional.txt
Jika instalasi ketergantungan tertentu gagal, harap beri komentar pada baris yang sesuai sebelum melanjutkan.
Diantaranya, tiktoken
memerlukan python
versi 3.8 atau lebih tinggi. Ini digunakan untuk menghitung secara akurat jumlah token yang digunakan dalam sesi tersebut.
Untuk menggunakan pengenalan ucapan google
atau baidu
, Anda perlu menginstal ffmpeg
.
Pengenalan ucapan openai
default tidak memerlukan instalasi ffmpeg
.
Referensi #415
Untuk menggunakan fungsi azure
Voice, Anda perlu menginstal dependensi dan merujuk pada persyaratan lingkungan dokumen. :
pip3 install azure-cognitiveservices-speech
Templat file konfigurasi ada di config-template.json
di direktori root. Anda perlu menyalin templat untuk membuat file config.json
akhir yang efektif:
cp config-template.json config.json
Kemudian isikan konfigurasi pada config.json
. Berikut penjelasan konfigurasi defaultnya, Anda dapat menyesuaikannya sesuai kebutuhan (silakan hapus komentarnya):
# config.json文件内容示例
{
"open_ai_api_key" : " YOUR API KEY " , # 填入上面创建的 OpenAI API KEY
"model" : " gpt-3.5-turbo " , # 模型名称。当use_azure_chatgpt为true时,其名称为Azure上model deployment名称
"proxy" : " " , # 代理客户端的ip和端口,国内环境开启代理的需要填写该项,如 "127.0.0.1:7890"
"single_chat_prefix" : [ " bot " , " @bot " ], # 私聊时文本需要包含该前缀才能触发机器人回复
"single_chat_reply_prefix" : " [bot] " , # 私聊时自动回复的前缀,用于区分真人
"group_chat_prefix" : [ " @bot " ], # 群聊时包含该前缀则会触发机器人回复
"group_name_white_list" : [ " ChatGPT测试群" , " ChatGPT测试群2 " ], # 开启自动回复的群名称列表
"group_chat_in_one_session" : [ " ChatGPT测试群" ], # 支持会话上下文共享的群名称
"image_create_prefix" : [ "画" , "看" , "找" ], # 开启图片回复的前缀
"conversation_max_tokens" : 1000 , # 支持上下文记忆的最多字符数
"speech_recognition" : false , # 是否开启语音识别
"group_speech_recognition" : false , # 是否开启群组语音识别
"use_azure_chatgpt" : false , # 是否使用Azure ChatGPT service代替openai ChatGPT service. 当设置为true时需要设置 open_ai_api_base,如 https://xxx.openai.azure.com/
"azure_deployment_id" : " " , # 采用Azure ChatGPT时,模型部署名称
"azure_api_version" : " " , # 采用Azure ChatGPT时,API版本
"character_desc" : "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。 " , # 人格描述
# 订阅消息,公众号和企业微信channel中请填写,当被订阅时会自动回复,可使用特殊占位符。目前支持的占位符有{trigger_prefix } ,在程序中它会自动替换成bot的触发词。
"subscribe_msg" : "感谢您的关注! n这里是ChatGPT,可以自由对话。 n支持语音对话。 n支持图片输出,画字开头的消息将按要求创作图片。 n支持角色扮演和文字冒险等丰富插件。 n输入{trigger_prefix}#help 查看详细指令。 " ,
"accept_friend" : false , # 配置itchat和ntchat自动通过好友请求
"channel_type" : " wx " , #通道类型,支持:{ntchat,wework,weowrktop}
"fast_gpt" : false , # 标识模型接口是否是fastgpt
"ntchat_smart" : false , # 配置ntchat多开,为true时接管当前已登录微信,默认true
"wework_smart" : false , # 配置wework多开,为true时接管当前已登录企业微信,默认true
"fastgpt_list" : {
"R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " ,
"R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 "
}, # 每个群聊ID配置对应的key即可实现单群单知识库,未配置的默认
"wework_http" : " http://127.0.0.1:8000 " , # weworktop通道http接口地址,默认127.0.0.1:8000
"wework_callback_port" : 8001 , # weworktop回调端口
"voice_openai_api_key" : " " , # 使用了fasgpt仍然有openai语音识别需求的,要在这里配置一下openai的参数
"voice_openai_api_base" : " " , # 使用了fasgpt仍然有openai语音识别需求的,要在这里配置一下openai的参数
}
Petunjuk konfigurasi:
1.Obrolan pribadi
single_chat_prefix
(jika Anda tidak perlu memicu dengan awalan, Anda dapat mengisi "single_chat_prefix": [""]
)single_chat_reply_prefix
(jika Anda tidak memerlukan awalan, Anda dapat mengisi "single_chat_reply_prefix": ""
)2. Obrolan grup
group_name_white_list
untuk mengaktifkan balasan otomatis obrolan grup. Jika ingin berlaku untuk semua grup chat, Anda bisa langsung mengisi "group_name_white_list": ["ALL_GROUP"]
group_chat_prefix
group_name_keyword_white_list
mendukung pencocokan fuzzy nama grup, dan item konfigurasi group_chat_keyword
mendukung pencocokan fuzzy konten pesan grup. (Dikontribusikan oleh evolay)group_chat_in_one_session
: memungkinkan obrolan grup untuk berbagi konteks sesi, dan konfigurasi ["ALL_GROUP"]
berlaku untuk semua obrolan grup3. Pengenalan suara
"speech_recognition": true
akan mengaktifkan pengenalan ucapan. Secara default, model bisikan openai akan digunakan untuk mengenali teks dan membalas dengan teks. Parameter ini hanya mendukung obrolan pribadi (perhatikan bahwa karena pesan suara tidak dapat cocok dengan awalan, setelah diaktifkan, semua suara akan cocok dijawab secara otomatis."group_speech_recognition": true
akan mengaktifkan pengenalan ucapan grup. Secara default, model bisikan openai digunakan untuk mengenali teks dan membalas dengan teks. Parameter ini hanya mendukung obrolan grup (akan cocok dengan group_chat_prefix dan group_chat_keyword, dan mendukung gambar yang dipicu oleh suara);"voice_reply_voice": true
akan mengaktifkan balasan suara (berlaku untuk obrolan pribadi dan obrolan grup), tetapi Anda perlu mengonfigurasi kunci yang sesuai dengan platform sintesis ucapan. Karena keterbatasan protokol itchat, hanya file mp3 suara yang bisa dikirim. Jika Anda menggunakan wechaty, balas itu suara WeChat.4. Konfigurasi lainnya
model
: nama model, saat ini mendukung gpt-3.5-turbo
, text-davinci-003
, gpt-4
, gpt-4-32k
(api gpt-4 belum terbuka sepenuhnya dan dapat digunakan setelah aplikasi disetujui)temperature
, frequency_penalty
, presence_penalty
: Parameter antarmuka API Obrolan, silakan merujuk ke dokumentasi resmi OpenAI untuk detailnya.proxy
: Karena antarmuka openai
saat ini tidak dapat diakses di Cina, alamat klien proxy perlu dikonfigurasi. Untuk detailnya, lihat #351image_create_prefix
config.py
.conversation_max_tokens
: Menunjukkan jumlah maksimum kata dalam konteks yang dapat diingat (satu pertanyaan dan satu jawaban adalah kumpulan percakapan. Jika akumulasi jumlah kata dalam percakapan melebihi batas, kumpulan percakapan paling awal akan dihapus terlebih dahulu)rate_limit_chatgpt
, rate_limit_dalle
: kecepatan tanya jawab maksimum dan kecepatan penarikan per menit, diantrekan dan diproses secara berurutan setelah kecepatan berlebih.clear_memory_commands
: Perintah dalam dialog yang secara otomatis menghapus memori sebelumnya. Array string dapat disesuaikan dengan alias perintah.hot_reload
: Setelah program keluar, status pemindaian kode WeChat disimpan sementara dan ditutup secara default.character_desc
menyimpan kalimat yang Anda ucapkan kepada robot. Dia akan mengingat kalimat ini dan menggunakannya sebagai pengaturannya. Anda dapat menyesuaikan kepribadian apa pun untuknya (untuk informasi lebih lanjut tentang konteks percakapan, lihat masalah ini)subscribe_msg
: Untuk berlangganan pesan, silakan isi akun resmi dan saluran WeChat perusahaan. Ini akan secara otomatis membalas ketika berlangganan. Placeholder yang didukung saat ini adalah {trigger_prefix}, yang akan otomatis diganti dengan kata pemicu bot dalam program. Dokumentasi ini mungkin tidak diperbarui tepat waktu. Semua item konfigurasi opsional saat ini tercantum dalam config.py
ini.
Jika dijalankan secara lokal di mesin pengembangan, jalankan langsung di direktori root proyek:
python3 app.py
1. Setelah menginstal dependensi utama di proyek utama, Anda juga perlu menginstal dependensi ntchat.
pip install ntchat
2. Instal versi WeChat PC yang ditunjuk: WeChat versi 3.6.0.18, pindai kode QR untuk masuk, dan matikan pembaruan otomatis WeChat.
3. Ubah item konfigurasi proyek utama: di file config.json
"channel_type" : " ntchat "
4. Jalankan app.py
1. Setelah menginstal dependensi utama di proyek utama, Anda juga perlu menginstal dependensi ntchat.
pip install ntwork
2. Instal versi PC Enterprise WeChat yang ditunjuk: versi WeCom_4.0.8.6027, pindai kode QR untuk masuk, dan matikan pembaruan otomatis Enterprise WeChat
3. Ubah item konfigurasi proyek utama: di file config.json
"channel_type" : " wework "
4. Jalankan app.py
1. Instal versi PC Enterprise WeChat yang ditunjuk: versi WeCom_4.0.8.6027, pindai kode QR untuk masuk, dan matikan pembaruan otomatis Enterprise WeChat
2. Ubah item konfigurasi proyek utama: di file config.json
"channel_type" : " weworktop "
3. Administrator menjalankan program antarmuka Qiwei. Versi dasar ada di folder proyek "WeChat-AIChatbot-WinOnlychannelweworktop". Jalankan WeworkApi.exe. buka Qiwei dan langkah unduh
4. Jalankan app.py