โปรเจ็กต์นี้สามารถทำงานบนระบบ win เท่านั้น มันขึ้นอยู่กับการแก้ไขครั้งที่สองของ chatgpt-on-wechat และใช้เฟรมเวิร์กของโปรเจ็กต์ต้นทางอย่างสมบูรณ์ ขอบคุณ! รองรับไคลเอนต์พีซีของแพลตฟอร์ม Win และไคลเอนต์ระดับองค์กรและไมโครโปรเจ็กต์นี้จะได้รับการอัปเดตต่อไป และปลั๊กอินจะค่อยๆ พัฒนาโดยบุคคลเดียว โปรดอย่าเร่งรีบ ขอบคุณ!
ช่องทางข้อความและฟังก์ชั่นที่โครงการรองรับมีดังนี้:
Wework : ช่องทางการส่งข้อความบัญชีองค์กรและบัญชีส่วนบุคคลขนาดเล็กฝั่งพีซี ซึ่งอาศัย ntwork และจำกัดไว้ที่เวอร์ชัน WeCom_4.0.8.6027 ดังนั้นโปรเจ็กต์จึงสามารถทำงานบนแพลตฟอร์ม Win เท่านั้น
Wechat : ช่องข้อความขนาดเล็กบนพีซีซึ่งอาศัยโปรเจ็กต์ ntchat รองรับเวอร์ชันสภาพแวดล้อม Python310 จำกัด อยู่ที่เวอร์ชัน WeChat3.6.0.18 และ สามารถรันโปรเจ็กต์ได้บนแพลตฟอร์ม Win เท่านั้น
15.08.2023: อัปเดตตรรกะการเข้าถึง FastGpt เพื่อรองรับกลุ่มเดียวและฐานความรู้เดียว หากไม่ได้กำหนดค่า ฐานส่วนกลางจะถูกใช้เป็นค่าเริ่มต้น
{ "fast_gpt" : true , "fastgpt_list" : { "R:108864****63985" : " fastgpt-1aps*****pg47-64b16a*******181317 " , "R:107******373863" : " fastgpt-1aps8*****gni1kpg47-64b168*****cd181267 " } }2023.08.08: เพิ่มช่องข้อความ Wework (บัญชีส่วนตัว Qiwei)
2023.07.25: เหมาะสมที่จะเพิ่มช่องทางข้อความ Wechat โปรเจ็กต์นี้เข้ากันได้กับอินเทอร์เฟซ FastGPT API และสามารถใช้งานได้โดยการแก้ไข open_ai_api_key และ open_ai_api_base โดยตรง
รองรับเฉพาะระบบ Windows และจำเป็นต้องติดตั้ง Python
ขอแนะนำว่าเวอร์ชัน Python อยู่ระหว่าง 3.7.1~3.10
(1) ดาวน์โหลดรหัสโครงการ:
git clone https://github.com/chazzjimel/WeChat-AIChatbot-WinOnly
cd chatgpt-on-wechat/
(2) ติดตั้งการพึ่งพาหลัก (จำเป็น):
pip3 install -r requirements.txt
(3) การพึ่งพาการขยาย (เป็นทางเลือก แนะนำให้ติดตั้ง):
pip3 install -r requirements-optional.txt
หากการติดตั้งการขึ้นต่อกันบางอย่างล้มเหลว โปรดใส่เครื่องหมายความคิดเห็นในบรรทัดที่เกี่ยวข้องก่อนดำเนินการต่อ
ในหมู่พวกเขา tiktoken
ต้องใช้ python
เวอร์ชัน 3.8 ขึ้นไป มันถูกใช้เพื่อคำนวณจำนวนโทเค็นที่ใช้ในเซสชันอย่างแม่นยำ ขอแนะนำอย่างยิ่งให้ติดตั้ง
หากต้องการใช้การรู้จำคำพูด google
หรือ baidu
คุณต้องติดตั้ง ffmpeg
การรู้จำเสียงพูด openai
เริ่มต้นไม่จำเป็นต้องติดตั้ง ffmpeg
อ้างอิง #415
หากต้องการใช้ฟังก์ชัน azure
Voice คุณจะต้องติดตั้งการขึ้นต่อกันและอ้างอิงถึงข้อกำหนดด้านสิ่งแวดล้อมของเอกสาร -
pip3 install azure-cognitiveservices-speech
เทมเพลตของไฟล์การกำหนดค่าอยู่ใน config-template.json
ในไดเร็กทอรีราก คุณต้องคัดลอกเทมเพลตเพื่อสร้างไฟล์ config.json
ที่มีผลขั้นสุดท้าย:
cp config-template.json config.json
จากนั้นกรอกการกำหนดค่าใน config.json
ต่อไปนี้เป็นคำอธิบายของการกำหนดค่าเริ่มต้น คุณสามารถปรับแต่งได้ตามต้องการ (โปรดลบความคิดเห็น):
# 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的参数
}
คำแนะนำการกำหนดค่า:
1. แชทส่วนตัว
single_chat_prefix
(หากคุณไม่ต้องการทริกเกอร์ด้วยคำนำหน้า คุณสามารถกรอก "single_chat_prefix": [""]
)single_chat_reply_prefix
(หากคุณไม่ต้องการคำนำหน้า คุณสามารถกรอก "single_chat_reply_prefix": ""
)2. แชทกลุ่ม
group_name_white_list
เพื่อเปิดใช้งานการตอบกลับแชทกลุ่มอัตโนมัติ หากคุณต้องการให้แชทกลุ่มทั้งหมดมีผล คุณสามารถกรอก "group_name_white_list": ["ALL_GROUP"]
group_chat_prefix
group_name_keyword_white_list
รองรับการจับคู่ชื่อกลุ่มแบบคลุมเครือ และรายการการกำหนดค่า group_chat_keyword
รองรับการจับคู่เนื้อหาข้อความกลุ่มแบบคลุมเครือ การใช้งานจะเหมือนกับรายการการกำหนดค่าสองรายการด้านบน (สนับสนุนโดย evolay)group_chat_in_one_session
: เปิดใช้งานการแชทกลุ่มเพื่อแชร์บริบทเซสชัน และการกำหนดค่า ["ALL_GROUP"]
นำไปใช้กับการแชทกลุ่มทั้งหมด3. การจดจำเสียง
"speech_recognition": true
จะเปิดใช้งานการรู้จำเสียง ตามค่าเริ่มต้น รูปแบบเสียงกระซิบของ openai จะถูกใช้เพื่อจดจำข้อความและตอบกลับด้วยข้อความ พารามิเตอร์นี้รองรับเฉพาะการแชทส่วนตัวเท่านั้น (โปรดทราบว่าเนื่องจากข้อความเสียงไม่สามารถจับคู่คำนำหน้าได้ เมื่อเปิดใช้งานแล้ว เสียงทั้งหมดจะตรงกัน) ตอบกลับโดยอัตโนมัติ รองรับการวาดภาพด้วยเสียง);"group_speech_recognition": true
จะเปิดใช้งานการรู้จำคำพูดแบบกลุ่ม ตามค่าเริ่มต้น รูปแบบเสียงกระซิบของ openai ใช้เพื่อจดจำข้อความและตอบกลับด้วยข้อความ พารามิเตอร์รองรับเฉพาะการแชทเป็นกลุ่ม (จะจับคู่ group_chat_prefix และ group_chat_keyword และรองรับการวาดด้วยเสียง)"voice_reply_voice": true
จะเปิดใช้งานเสียงตอบกลับ (สำหรับการแชทส่วนตัวและการแชทเป็นกลุ่ม) แต่คุณต้องกำหนดค่าคีย์ที่สอดคล้องกับแพลตฟอร์มการสังเคราะห์เสียงพูด เนื่องจากข้อจำกัดของโปรโตคอล itchat จึงทำได้เฉพาะไฟล์เสียง MP3 เท่านั้น ส่งแล้ว หากคุณใช้ wechaty ให้ตอบกลับว่าเป็นเสียง WeChat4.การกำหนดค่าอื่นๆ
model
: ชื่อรุ่น ปัจจุบันรองรับ gpt-3.5-turbo
, text-davinci-003
, gpt-4
, gpt-4-32k
(gpt-4 api ยังไม่เปิดอย่างสมบูรณ์และสามารถใช้ได้หลังจากแอปพลิเคชันได้รับการอนุมัติ)temperature
, frequency_penalty
, presence_penalty
: พารามิเตอร์อินเทอร์เฟซ Chat API โปรดดูรายละเอียดในเอกสารประกอบอย่างเป็นทางการของ OpenAIproxy
: เนื่องจากขณะนี้ไม่สามารถเข้าถึงอินเทอร์เฟซ openai
ในประเทศจีน จึงจำเป็นต้องกำหนดค่าที่อยู่ของไคลเอ็นต์พร็อกซี สำหรับรายละเอียด โปรดดูที่ #351image_create_prefix
config.py
conversation_max_tokens
: ระบุจำนวนคำสูงสุดในบริบทที่สามารถจดจำได้ (หนึ่งคำถามและหนึ่งคำตอบคือชุดการสนทนา หากจำนวนคำที่สะสมในการสนทนาเกินขีดจำกัด บทสนทนาชุดแรกสุดจะถูกลบออกก่อน)rate_limit_chatgpt
, rate_limit_dalle
: อัตราคำถามและคำตอบสูงสุดและอัตราการดึงต่อนาที จัดคิวและประมวลผลตามลำดับหลังจากเร่งความเร็วเกินclear_memory_commands
: คำสั่งในกล่องโต้ตอบที่จะล้างหน่วยความจำก่อนหน้าโดยอัตโนมัติ อาร์เรย์สตริงสามารถปรับแต่งได้ด้วยนามแฝงของคำสั่งhot_reload
: หลังจากออกจากโปรแกรม สถานะการสแกนโค้ด WeChat จะถูกเก็บไว้ชั่วคราวและปิดตามค่าเริ่มต้นcharacter_desc
จะจัดเก็บประโยคที่คุณพูดกับหุ่นยนต์ เขาจะจำประโยคนี้และใช้เป็นการตั้งค่าของเขา คุณสามารถปรับแต่งบุคลิกภาพให้เขาได้ (สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริบทการสนทนา โปรดดูที่ปัญหานี้)subscribe_msg
: หากต้องการสมัครรับข้อความ โปรดกรอกบัญชีอย่างเป็นทางการและช่อง WeChat ขององค์กร ระบบจะตอบกลับโดยอัตโนมัติเมื่อสมัครรับข้อมูลพิเศษ ตัวยึดตำแหน่งที่รองรับในปัจจุบันคือ {trigger_prefix} ซึ่งจะถูกแทนที่ด้วยคำทริกเกอร์ของบอทในโปรแกรมโดยอัตโนมัติ เอกสารนี้อาจไม่ได้รับการอัปเดตทันเวลา รายการการกำหนดค่าเพิ่มเติมทั้งหมดในปัจจุบันแสดงอยู่ใน config.py
นี้
หาก ทำงานภายในเครื่องบน เครื่องพัฒนา ให้ดำเนินการโดยตรงในไดเร็กทอรีรากของโปรเจ็กต์:
python3 app.py
1. หลังจากติดตั้งการขึ้นต่อกันหลักในโปรเจ็กต์หลักแล้ว คุณจะต้องติดตั้งการขึ้นต่อกันของ ntchat ด้วย
pip install ntchat
2. ติดตั้งพีซี WeChat เวอร์ชันที่กำหนด: WeChat เวอร์ชัน 3.6.0.18 สแกนรหัส QR เพื่อเข้าสู่ระบบ และปิดการอัปเดตอัตโนมัติของ WeChat
3. แก้ไขรายการการกำหนดค่าโครงการหลัก: ในไฟล์ config.json
"channel_type" : " ntchat "
4. เรียกใช้ app.py
1. หลังจากติดตั้งการขึ้นต่อกันหลักในโปรเจ็กต์หลักแล้ว คุณจะต้องติดตั้งการขึ้นต่อกันของ ntchat ด้วย
pip install ntwork
2. ติดตั้ง PC Enterprise WeChat เวอร์ชันที่กำหนด: เวอร์ชัน WeCom_4.0.8.6027 สแกนรหัส QR เพื่อเข้าสู่ระบบ และปิดการอัปเดตอัตโนมัติของ Enterprise WeChat
3. แก้ไขรายการการกำหนดค่าโครงการหลัก: ในไฟล์ config.json
"channel_type" : " wework "
4. เรียกใช้ app.py
1. ติดตั้ง PC Enterprise WeChat เวอร์ชันพิเศษที่กำหนด: เวอร์ชัน WeCom_4.0.8.6027 สแกนโค้ด QR เพื่อเข้าสู่ระบบ และปิดการอัปเดตอัตโนมัติของ Enterprise WeChat
2. แก้ไขรายการการกำหนดค่าโครงการหลัก: ในไฟล์ config.json
"channel_type" : " weworktop "
3. ผู้ดูแลระบบรันโปรแกรมอินเทอร์เฟซ Qiwei เวอร์ชันพื้นฐานอยู่ในโฟลเดอร์โปรเจ็กต์ "WeChat-AIChatbot-WinOnlychannelweworktop" เรียกใช้ WeworkApi.exe เพื่อเริ่มบริการโดยไม่ต้องป้อนรหัส เปิด Qiwei และขั้นตอนการดาวน์โหลด
4. เรียกใช้ app.py