Perkenalan:
Akun publik WeChat yang tidak bersertifikat terhubung ke chatgpt, obrolan suara baru (percakapan bahasa Inggris) ditambahkan, berdasarkan Flask, akun publik WeChat pribadi [tanpa otentikasi] terhubung ke ChatGPT
--Perbarui instruksi:
V1.1.0: (2023.04.13)
- Menambahkan respons streaming baru (stream) untuk meringankan masalah batas waktu permintaan sampai batas tertentu. Anda perlu menginstal paket python: sseclient-py==1.7.2;
Setelah respons streaming diaktifkan, koneksi (permintaan saya) akan dibuat terlebih dahulu, dan kemudian (SSEClient) akan digunakan untuk mendapatkan teks yang dihasilkan karakter demi karakter, dan akhirnya daftar teks yang diperoleh akan disambung ke dalam teks balasan. Waktu untuk membuat koneksi akan tetap dipengaruhi oleh max_tokens, jadi tidak disarankan untuk mengatur max_tokens terlalu besar. Kunci untuk mengurangi waktu tunggu permintaan adalah bahwa konsumsi waktu untuk membuat koneksi lebih kecil daripada konsumsi waktu pengembalian satu kali. Oleh karena itu, selama koneksi berhasil dibuat dalam waktu tertentu, konten pada dasarnya dapat dikembalikan panjang konten yang dikembalikan akan dipengaruhi oleh waktu koneksi.
-Hapus pesan terbaru yang dikirim oleh pengguna setelah permintaan gagal atau waktu habis untuk menghindari kesalahan pada balasan berikutnya.
V1.0.1:
- Ditambahkan opsi untuk mengaktifkan deteksi IP (untuk mencegah serangan doss);
-Catatan: Jika salah satu wechat-ip_detection dan azure-trans_to_voice benar, appid dan secret harus diisi.
V1.0:
-Fungsi obrolan suara baru, akses ke layanan cloud text-to-speech Microsoft (akses gratis), untuk mencapai percakapan suara (Cina dan Inggris);
-Templat pembelajaran bahasa Inggris bawaan, Anda dapat melakukan percakapan bertema bahasa Inggris dengan membalas pesan templat;
- Menambahkan deteksi IP daftar putih latar belakang WeChat untuk mencegah serangan doss, dll.;
- Menambahkan batas frekuensi pesan pengguna untuk mencegah spam pesan berbahaya;
- Secara otomatis membersihkan file suara sementara;
- Secara otomatis membersihkan materi suara sementara yang diunggah di latar belakang WeChat;
-Optimalkan kinerja dan perbaiki bug.
latar belakang:
Saya baru-baru ini melihat bahwa ChatGPT menyediakan antarmuka API. Saya kebetulan memiliki server dan akun publik, jadi saya ingin menulis chatbot? Namun, hanya ada satu akun resmi pribadi yang tidak bersertifikat (sumber daya terbatas?).
1. Hanya dapat membalas pesan pengguna secara pasif. Pengguna mengirim pesan ke akun resmi. Server hanya dapat membalas satu pesan untuk permintaan ini dan tidak dapat membalas pesan tambahan (pesan layanan pelanggan);
2. Setiap pesan harus dibalas dalam waktu 15 detik. Setelah platform akun resmi mengirimkan permintaan ke server, jika tidak menerima balasan dalam waktu 5 detik, maka akan mengirimkan permintaan lagi dan menunggu selama 5 detik tidak diterima, ia akan mengirimkan permintaan terakhir. Oleh karena itu, server harus memproses pesan lengkap dalam waktu 15 detik.
Lihat kode untuk metode pemrosesan tertentu. Ini adalah proyek pemula, harap sertakan kekurangan apa pun dan selamat datang koreksi, terima kasih~
membutuhkan:
Server (harus dapat mengakses antarmuka openai, mungkin harus berada di luar negeri~)
Jika Anda perlu mengaktifkan layanan text-to-speech, Anda perlu mendaftarkan layanan text-to-speech Azure. Pendaftaran dan penggunaan layanan ini gratis. Silakan merujuk ke situs web untuk detailnya: AZURE
Akun publik WeChat: Tipe pribadi sudah cukup
Demo:
Akun publik: laboratorium Tory, ikuti dan kirim pesan untuk mengalaminya.
Pengantar tweet akun publik:
1. Pengantar untuk memulai: ChatGPT telah terhubung
2. Pengenalan penggunaan layanan suara: Layanan suara telah terhubung
Cara menggunakan:
Atur parameter config.yml di config:
# 微信相关设置
wechat :
token : " **** "
# 是否获取微信公众平台的ip白名单(用于防止doss检测)
ip_detection : false
# 如果上面的选项为true,下面两项内容必填;如要开启后面文本转语音服务,下面两项内容必填
appid : " **** "
secret : " **** "
# openai相关设置
openai :
#填写openai的api_keys时,要注意前面要加上:Bearer, 可以填写多个,因为单个账号有速率的限制
api_keys :
- " Bearer sk-**** "
# - "Bearer sk-****"
# - "Bearer sk-****"
# 单条消息的长度,这个参数对回复速度有非常大的影响,请不要填太大~
max_tokens : 120
# 模型
model : " gpt-3.5-turbo-0301 "
# temperature,越大随机性越强
temperature : 0.8
# 有时候文本长度超过150,用该参数限制长度避免超过微信能发送的最长消息
rsize : 500
# 对话的保存历史
save_history : 21
# azure文本转语音设置
azure :
# 是否开启文本转语音服务
trans_to_voice : false
# 如上面的选项为false,下面的内容不用填写
# 新定义文本长度,开启后增加处理时间,避免文本太长,处理时间过久,超过15s
max_token : 80
# 是否开启流式响应
stream_response : true
# 密钥
subscription : " **** "
region : " koreacentral "
# 中文语音模型
zh_model : " zh-CN-XiaoyanNeural "
# 英文语音模型
en_model : " en-US-AriaNeural "
Mulai labu
export FLASK_APP=myflask
flask run --host=0.0.0.0 --port=80
# 或者
nohup flask run --host=0.0.0.0 --port=80 >> /home/jupyter/flask/log/wechat.log 2>&1 &
Melihat:
1. Saat mengisi api_keys openai, pastikan untuk menambahkan: Bearer di depan. Anda dapat mengisi beberapa api_keys karena satu akun memiliki batas kapasitas;
2.max_tokens berpengaruh besar pada kecepatan reply, mohon jangan diisi terlalu besar.