لا يمكن تشغيل هذا المشروع إلا على نظام win ، وهو يعتمد على التعديل الثاني لـ chatgpt-on-wechat ويستخدم إطار عمل المشروع المصدر بالكامل. وهو يدعم عميل الكمبيوتر الشخصي لمنصة Win والعملاء المؤسسيين والصغيرين. وسيستمر تحديث هذا المشروع، كما سيتم تطوير المكونات الإضافية تدريجيًا بواسطة شخص واحد، يرجى عدم التسرع، شكرًا لك.
قنوات الرسائل والوظائف التي يدعمها المشروع هي كما يلي:
Wework : يمكن لقناة مراسلة الحسابات الشخصية والشركات الصغيرة من جانب الكمبيوتر الشخصي، والتي تعتمد على ntwork وتقتصر على إصدار WeCom_4.0.8.6027، تشغيل المشروع فقط على النظام الأساسي Win .
Wechat : قناة رسائل صغيرة على جانب الكمبيوتر الشخصي، تعتمد على مشروع ntchat، وهي تدعم ما يصل إلى إصدار بيئة Python310، وتقتصر على إصدار WeChat3.6.0.18، ويمكنها تشغيل المشروع فقط على منصة Win .
2023.08.15: قم بتحديث منطق الوصول إلى 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
المطابقة الغامضة لمحتوى رسالة المجموعة. (ساهم بها إيفولاي)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، قم بالرد إنه صوت WeChat.4. تكوينات أخرى
model
: اسم الطراز، يدعم حاليًا gpt-3.5-turbo
و text-davinci-003
و gpt-4
و gpt-4-32k
(واجهة برمجة تطبيقات gpt-4 ليست مفتوحة بالكامل بعد ويمكن استخدامها بعد الموافقة على التطبيق)temperature
، frequency_penalty
، presence_penalty
: معلمات واجهة Chat API، يرجى الرجوع إلى الوثائق الرسمية لـ OpenAI للحصول على التفاصيل.proxy
: نظرًا لأن واجهة 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". افتح Qiwei وقم بتنزيل الخطوة
4. قم بتشغيل app.py