การแนะนำ:
บัญชีสาธารณะ WeChat ที่ไม่ผ่านการรับรองเชื่อมต่อกับ chatgpt, เพิ่มการแชทด้วยเสียงใหม่ (การสนทนาภาษาอังกฤษ) ตาม Flask, บัญชีสาธารณะ WeChat ส่วนตัว [ไม่มีการตรวจสอบสิทธิ์] เชื่อมต่อกับ ChatGPT
--คำแนะนำในการอัปเดต:
V1.1.0: (2023.04.13)
- เพิ่มการตอบสนองสตรีมมิ่งใหม่ (สตรีม) เพื่อบรรเทาปัญหาการหมดเวลาของคำขอในระดับหนึ่ง คุณต้องติดตั้งแพ็คเกจ python: sseclient-py==1.7.2;
หลังจากเปิดใช้งานการตอบสนองแบบสตรีมมิ่ง การเชื่อมต่อ (myrequest) จะถูกสร้างขึ้นก่อน จากนั้น (SSEClient) จะถูกนำมาใช้เพื่อรับอักขระข้อความที่สร้างขึ้นทีละอักขระ และสุดท้ายรายการข้อความที่ได้รับจะถูกต่อเข้ากับข้อความตอบกลับ เวลาในการสร้างการเชื่อมต่อจะยังคงได้รับผลกระทบจาก max_tokens ดังนั้นจึงไม่แนะนำให้ตั้งค่า max_tokens ใหญ่เกินไป กุญแจสำคัญในการบรรเทาการหมดเวลาของคำขอคือการใช้เวลาในการสร้างการเชื่อมต่อน้อยกว่าการใช้เวลาในการส่งคืนเพียงครั้งเดียว ดังนั้น ตราบใดที่การเชื่อมต่อถูกสร้างขึ้นสำเร็จภายในระยะเวลาที่กำหนด โดยทั่วไปเนื้อหาก็สามารถส่งคืนได้ ความยาวของเนื้อหาที่ส่งคืนจะได้รับผลกระทบจากเวลาการเชื่อมต่อ
-ลบข้อความล่าสุดที่ผู้ใช้ส่งหลังจากคำขอล้มเหลวหรือหมดเวลาเพื่อหลีกเลี่ยงข้อผิดพลาดในการตอบกลับครั้งถัดไป
V1.0.1:
- เพิ่มตัวเลือกในการเปิดใช้งานการตรวจจับ IP (เพื่อป้องกันการโจมตีแบบ doss)
-หมายเหตุ: หาก wechat-ip_detection และ azure-trans_to_voice เป็นจริง จะต้องกรอกทั้ง appid และ Secret
เวอร์ชัน 1.0:
- ฟังก์ชั่นแชทด้วยเสียงใหม่ เข้าถึงบริการแปลงข้อความเป็นคำพูดบนคลาวด์ของ Microsoft (เข้าถึงได้ฟรี) เพื่อให้สามารถสนทนาด้วยเสียง (ภาษาจีนและอังกฤษ)
- เทมเพลตการเรียนรู้ภาษาอังกฤษในตัว คุณสามารถสนทนาในธีมภาษาอังกฤษได้โดยการตอบกลับข้อความเทมเพลต
- เพิ่มการตรวจจับ IP ในรายการไวท์ลิสต์พื้นหลัง WeChat เพื่อป้องกันการโจมตีแบบ doss ฯลฯ
- เพิ่มการจำกัดความถี่ข้อความของผู้ใช้เพื่อป้องกันสแปมข้อความที่เป็นอันตราย
- ทำความสะอาดไฟล์เสียงชั่วคราวโดยอัตโนมัติ
- ทำความสะอาดเนื้อหาเสียงชั่วคราวที่อัปโหลดในพื้นหลัง WeChat โดยอัตโนมัติ
- เพิ่มประสิทธิภาพและแก้ไขข้อบกพร่อง
พื้นหลัง:
ฉันเพิ่งเห็นว่า ChatGPT มีอินเทอร์เฟซ API ฉันมีเซิร์ฟเวอร์และบัญชีสาธารณะ ดังนั้นฉันจึงอยากลองเขียนแชทบอทดูไหม อย่างไรก็ตาม มีบัญชีอย่างเป็นทางการส่วนบุคคลที่ไม่ผ่านการรับรองเพียงบัญชีเดียว (ทรัพยากรมีจำนวนจำกัด) ข้อจำกัดของบัญชีอย่างเป็นทางการนี้คือ:
1. สามารถตอบกลับข้อความของผู้ใช้ได้เพียงข้อความเดียวเท่านั้น เซิร์ฟเวอร์สามารถตอบกลับได้เพียงข้อความเดียวสำหรับคำขอนี้ และไม่สามารถตอบกลับข้อความเพิ่มเติมได้ (ข้อความบริการลูกค้า)
2. แต่ละข้อความจะต้องตอบกลับภายใน 15 วินาที หลังจากที่แพลตฟอร์มบัญชีทางการส่งคำขอไปยังเซิร์ฟเวอร์ หากไม่ได้รับการตอบกลับภายใน 5 วินาที ก็จะส่งคำขออีกครั้งและรอเป็นเวลา 5 วินาที หากคำขอยังคงอยู่ ไม่ได้รับ จะส่งคำขอครั้งสุดท้าย ดังนั้น เซิร์ฟเวอร์จะต้องประมวลผลข้อความทั้งหมดภายใน 15 วินาที
ดูโค้ดสำหรับวิธีการประมวลผลเฉพาะ นี่เป็นโปรเจ็กต์มือใหม่ โปรดระบุข้อบกพร่องและยินดีต้อนรับการแก้ไข ขอบคุณ~
ความต้องการ:
เซิร์ฟเวอร์ (ต้องสามารถเข้าถึงอินเทอร์เฟซ openai อาจต้องอยู่ต่างประเทศ~)
หากคุณต้องการเปิดใช้งานบริการแปลงข้อความเป็นคำพูด คุณต้องลงทะเบียนบริการแปลงข้อความเป็นคำพูดของ Azure การลงทะเบียนและใช้บริการนี้ฟรี โปรดดูรายละเอียดที่เว็บไซต์: AZURE
บัญชีสาธารณะ WeChat: ประเภทส่วนตัวก็เพียงพอแล้ว
การสาธิต:
บัญชีสาธารณะ: ห้องทดลองของ Tory ติดตามและส่งข้อความเพื่อสัมผัสประสบการณ์นี้
ข้อมูลเบื้องต้นเกี่ยวกับทวีตบัญชีสาธารณะ:
1. ข้อมูลเบื้องต้นเกี่ยวกับการเริ่มต้นใช้งาน: เชื่อมต่อ ChatGPT แล้ว
2. ข้อมูลเบื้องต้นเกี่ยวกับการใช้บริการเสียง: เชื่อมต่อบริการเสียงแล้ว
วิธีใช้:
ตั้งค่าพารามิเตอร์ config.yml ใน 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 "
เริ่มกระติกน้ำ
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 &
สังเกต:
1. เมื่อกรอก api_keys ของ openai อย่าลืมเพิ่ม: Bearer ไว้ข้างหน้า คุณสามารถกรอก api_keys ได้หลายรายการเนื่องจากบัญชีเดียวมีขีดจำกัดอัตรา
2.max_tokens มีผลกระทบอย่างมากต่อความเร็วในการตอบกลับ โปรดอย่ากรอกมากเกินไป