ChatGPT-WechatBot هو روبوت يشبه chatGPT يتم تنفيذه باستخدام نموذج الحوار استنادًا إلى واجهة برمجة تطبيقات OpenAI الرسمية، ويتم نشره على WeChat من خلال إطار عمل Wechaty لتحقيق دردشة الروبوت.
ChatGPT WechatBot هو نوع من روبوتات chatGPT يعتمد على واجهة برمجة التطبيقات الرسمية OpenAI ويستخدم نموذج الحوار، ويتم نشره على WeChat من خلال إطار عمل Wechat لتحقيق دردشة روبوتية.
ملاحظة : هذا المشروع هو تطبيق Win10 محلي ولا يتطلب نشر الخادم (إذا كان نشر الخادم مطلوبًا، فيمكنك نشر عامل الإرساء على الخادم)
(1)، ويندوز10
(2)، عامل الميناء 20.10.21
(3)، بيثون3.9
(4)، ويتشاتي 0.10.7
1. قم بتنزيل عامل الميناء
https://www.docker.com/products/docker-desktop/ قم بتنزيل Docker
2. قم بتشغيل المحاكاة الافتراضية لـ Win10
أدخل عنصر التحكم في cmd لفتح لوحة التحكم والدخول إلى البرنامج كما هو موضح في الشكل أدناه:
انتقل إلى تشغيل ميزات Windows أو إيقاف تشغيلها ، ثم قم بتشغيل Hyper-V
ملاحظة : إذا كان جهاز الكمبيوتر الخاص بك لا يحتوي على Hyper-V، فستحتاج إلى إجراء العمليات التالية:
قم بإنشاء مستند نصي، واملأ الكود التالي، وقم بتسميته Hyper.cmd
pushd " %~dp0 "
dir /b %SystemRoot% s ervicing P ackages * Hyper-V * .mum > hyper-v.txt
for /f %%i in ( ' findstr /i . hyper-v.txt 2^>nul ' ) do dism /online /norestart /add-package: " %SystemRoot%servicingPackages%%i "
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
ثم قم بتشغيل هذا الملف كمسؤول، وبعد الانتهاء من تشغيل البرنامج النصي، ستكون هناك عقدة Hyper-V بعد إعادة تشغيل الكمبيوتر.
3. قم بتشغيل عامل الميناء
ملاحظة : في حالة حدوث ما يلي عند تشغيل Docker لأول مرة:
تحتاج إلى تنزيل أحدث حزمة WSL 2
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
بعد التحديث، يمكنك الدخول إلى الصفحة الرئيسية، ثم تغيير الإعدادات في محرك الإرساء واستبدال الصورة بالصورة المحلية لـ Alibaba Cloud:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"debug": false,
"experimental": false,
"features": {
"buildkit": true
},
"insecure-registries": [],
"registry-mirrors": [
"https://9cpn8tt6.mirror.aliyuncs.com"
]
}
بهذه الطريقة، يكون سحب المرآة أسرع (للمستخدمين المنزليين)
4. اسحب صورة Wechaty :
docker pull wechaty:0 . 65
لأنه أثناء الاختبار، وجد أن الإصدار 0.65 من wechaty هو الأكثر استقرارًا
بعد سحب الصورة:
Puppet : إذا كنت تريد استخدام Wechaty لتطوير روبوت WeChat، فأنت بحاجة إلى استخدام Puppet للتحكم في تشغيل WeChat. الترجمة الرسمية لـ Puppet هي puppet. هناك حاليًا العديد من أنواع الدمى المتاحة الدمية هي وظائف الروبوت المختلفة التي يمكن تحقيقها. على سبيل المثال، إذا كنت تريد أن يقوم الروبوت الخاص بك بطرد المستخدمين من الدردشة الجماعية، فستحتاج إلى استخدام Puppet ضمن بروتوكول Pad.
التقدم بطلب للاتصال: http://pad-local.com/#/login
ملحوظة : بعد التقدم بطلب للحصول على حساب، سوف تتلقى رمزًا مميزًا لمدة 7 أيام.
بعد التقدم بطلب للحصول على الرمز المميز، قم بتنفيذ الأمر التالي في نافذة cmd:
docker run - it - d -- name wechaty_test - e WECHATY_LOG="verbose" - e WECHATY_PUPPET="wechaty - puppet - padlocal" - e WECHATY_PUPPET_PADLOCAL_TOKEN="yourtoken" - e WECHATY_PUPPET_SERVER_PORT="8080" - e WECHATY_TOKEN="1fe5f846 - 3cfb - 401d - b20c - sailor==" - p "8080:8080" wechaty/wechaty:0 . 65
وصف المعلمة:
WECHATY_PUPPET_PADLOCAL_TOKEN : تقدم بطلب للحصول على رمز جيد
**WECHATY_TOKEN **: فقط اكتب سلسلة عشوائية تضمن أن تكون فريدة من نوعها
WECHATY_PUPPET_SERVER_PORT : منفذ خادم الإرساء
wechaty/wechaty:0.65 : نسخة من صورة wechaty
ملاحظة: - "8080:8080"* هو منفذ جهازك المحلي وخادم الإرساء. لاحظ أن منفذ خادم الإرساء يجب أن يكون متوافقًا مع WECHATY_PUPPET_SERVER_PORT
بعد التشغيل، اعرض الحاوية في لوحة سطح المكتب لعامل الإرساء:
أدخل واجهة السجل:
من خلال الرابط أدناه، يمكنك مسح رمز الاستجابة السريعة لتسجيل الدخول إلى WeChat
بعد تسجيل الدخول، تكتمل خدمة الإرساء.
تثبيت مكتبات wechaty و openai
افتح cmd وقم بتنفيذ الأمر التالي:
pip install wechaty
pip install openai
تسجيل الدخول إلى openAI
https://beta.openai.com/
انقر فوق عرض مفاتيح API
مجرد الحصول على Kyes API
في هذه المرحلة، يتم إعداد البيئة
يمكنك محاولة قراءة هذا الرمز التجريبي
import openai
openai . api_key = "your API-KEY"
start_sequence = "A:"
restart_sequence = "Q: "
while True :
print ( restart_sequence , end = "" )
prompt = input ()
if prompt == 'quit' :
break
else :
try :
response = openai . Completion . create (
model = "text-davinci-003" ,
prompt = prompt ,
temperature = 0.9 ,
max_tokens = 2000 ,
frequency_penalty = 0 ,
presence_penalty = 0
)
print ( start_sequence , response [ "choices" ][ 0 ][ "text" ]. strip ())
except Exception as exc :
print ( exc )
يستدعي هذا الرمز نموذج CPT-3، وهو نفس نموذج chatGPT، وتأثير الإجابة جيد أيضًا.
يتم تقديم نموذج GPT-3 الخاص بـ openAI على النحو التالي:
يمكن لنماذج GPT-3 الخاصة بنا فهم اللغة الطبيعية وتوليدها، ونحن نقدم أربعة نماذج رئيسية بمستويات مختلفة من القوة مناسبة لمختلف المهام، ويعتبر Davinci هو النموذج الأكثر قدرة، وAda هو النموذج الأسرع.
أحدث طراز | وصف | الحد الأقصى للطلب | بيانات التدريب |
---|---|---|---|
النص دافينشي-003 | يمكن لنموذج GPT-3 الأكثر قدرة القيام بأي مهمة يمكن للنماذج الأخرى القيام بها، غالبًا بجودة أعلى وإخراج أطول ومتابعة أفضل للتعليمات. | 4000 رمز | حتى يونيو 2021 |
النص-كوري-001 | قادر جدًا، ولكنه أسرع وأقل تكلفة من دافينشي. | 2,048 رمزًا | حتى أكتوبر 2019 |
النص-باباج-001 | قادر على إنجاز المهام المباشرة، بسرعة كبيرة، وبتكلفة أقل. | 2,048 رمزًا | حتى أكتوبر 2019 |
النص-آدا-001 | قادر على القيام بمهام بسيطة للغاية، وعادة ما يكون النموذج الأسرع في سلسلة GPT-3، وأقل تكلفة. | 2,048 رمزًا | حتى أكتوبر 2019 |
في حين أن Davinci هو الأكثر قدرة بشكل عام، يمكن للنماذج الأخرى أداء مهام معينة بشكل جيد للغاية مع مزايا كبيرة في السرعة أو التكلفة. على سبيل المثال، يمكن لـ Curie أداء العديد من نفس المهام مثل Davinci، ولكن بشكل أسرع وبتكلفة تعادل 1/10.
نوصي باستخدام Davinci أثناء التجربة لأنه سيحقق أفضل النتائج بمجرد الانتهاء من الأمور، ونحن نشجع على تجربة النماذج الأخرى لمعرفة ما إذا كان بإمكانك الحصول على نفس النتائج مع زمن استجابة أقل، وقد تتمكن أيضًا من تحسين النموذج الآخر أداء النماذج من خلال ضبطها على مهمة محددة.
باختصار أقوى موديل GPT-3. يمكن أن تفعل أي شيء يمكن أن تفعله النماذج الأخرى، عادةً بجودة أعلى، وإخراج أطول، واتباع تعليمات أفضل. يتم أيضًا دعم إدراج الإكمالات في النص.
على الرغم من أنه يمكن استخدام نموذج text-davinci-003 مباشرةً لتحقيق تأثير الحوار أحادي الجولة لـ chatGPT، إلا أنه من أجل تحقيق نفس تأثير الحوار متعدد الجولات بشكل أفضل مثل chatGPT، يمكن تصميم نموذج حوار.
المبدأ الأساسي: أخبر نموذج text-davinci-003 بسياق المحادثة الحالية
طريقة التنفيذ: تصميم قائمة انتظار ذاكرة الحوار لحفظ جولات k الأولى من الحوار للحوار الحالي، وإخبار النموذج text-davinci-003 بمحتوى جولات k الأولى من الحوار قبل طرح السؤال، ومن ثم الحصول على الإجابة الحالية من خلال محتوى النموذج text-davinci-003
هذه الطريقة تعمل بشكل جيد بشكل مدهش! إعطاء بعض سجلات الدردشة
يمكن ملاحظة أنه يمكن أيضًا استخدام خلفية الدردشة حاليًا للسماح للذكاء الاصطناعي بإكمال التعلم الظرفي.
ليس هذا فحسب، بل يمكنك أيضًا تحقيق نفس كتابة المقالات الإرشادية مثل chatGPT.
هذا النموذج هو طريقة أتصورها حاليًا لتحسين نموذج الحوار في خلفية الدردشة. منطقه الأساسي هو نفس نموذج لغة N-gram، باستثناء أنه تم تغيير N ديناميكيًا وإضافة خصائص ماركوف للتنبؤ بالحوار الحالي السياق، وذلك للحكم على أن القسم الموجود في خلفية الدردشة هو الأكثر أهمية، ثم استخدم نموذج text-davinci-003 لإعطاء إجابة بناءً على محتوى المحادثة الأكثر أهمية المحفوظ والمشكلة الحالية (أي ما يعادل ترك الذكاء الاصطناعي: افعل ذلك أثناء الدردشة، باستخدام محتوى الدردشة السابق)
يتطلب تنفيذ هذا النموذج كمية كبيرة من البيانات للتدريب، ولم يكتمل الكود بعد.
------ الحفر : بعد تنفيذ الكود، قم بتحديث هذا الجزء من الخطوات التفصيلية
المنطق الأساسي للمشروع كما هو موضح في الشكل أدناه:
.py، وأضف chatGPT.py وافتحه في الموقع الموضح، وأضف المفتاح السري وقم بتكوين متغيرات البيئة في الموقع الموضح
شرح الكود :
os . environ [ "WECHATY_PUPPET_SERVICE_TOKEN" ] = "填入你的Puppet的token"
os . environ [ 'WECHATY_PUPPET' ] = 'wechaty-puppet-padlocal' #保证与docker中相同即可
os.environ['WECHATY_PUPPET_SERVICE_ENDPOINT'] = '主机ip:端口号'
تشغيل بنجاح
1. قم بتسجيل الدخول إلى عامل الإرساء، ولا تستخدم تسجيل الدخول إلى wechaty في بيثون
2. قم بتعيين time.sleep() في الكود لمحاكاة سرعة رد الأشخاص على الرسائل.
3. من الأفضل عدم استخدام حجم كبير عند الاختبار. يوصى بإنشاء حجم صغير مخصص لاختبار الذكاء الاصطناعي.
المحتوى الموجود في هذا المشروع مخصص فقط للبحث التقني ونشر العلوم، ولا يشكل أي أساس قاطع ولا يوفر أي ترخيص للتطبيق التجاري ولا يتحمل أي مسؤولية.
~~ البريد الإلكتروني: [email protected]