هذه المشاريع عبارة عن بنية شاملة مصممة لتعزيز Pokémon Go UX. يوضح هنا عملية متسلسلة تتضمن العديد من وكلاء gpt-4
لنموذج اللغة الكبيرة (LLM)، مع الاستفادة من نظام توليد الاسترجاع المعزز (RAG) لتقديم استجابات مخصصة.
للحصول على فهم متعمق للهندسة المعمارية والوصول إلى المقالة الكاملة، يرجى زيارة موقع الويب الخاص بي.
للتعمق في البنية واستكشاف التطبيق، يرجى التأكد من تثبيت Python 3.10
، إلى جانب مكتبة Langchain وFaiss by Meta.
ملاحظات هامة:
النظام - تم تصميم عملية الإعداد بأكملها للأنظمة المستندة إلى Unix، بحيث يمكنك استخدام أوامر Makefile التالية لتشغيل نظامك محليًا، وإلا يمكنك نسخ أوامر Makefile في جهازك الطرفي.
متغيرات البيئة - كل أمر من الأوامر التالية source
المتغيرات المحددة في ملف .env
الخاص بك، لذا تأكد مرة أخرى من وجود مفتاح OpenAI API الخاص بك في مكانه. إذا كنت تريد إجراء تغييرات دائمة، فستحتاج إلى إضافة هذه المتغيرات إلى البرنامج النصي لتهيئة Shell (مثل .bashrc
أو .bash_profile
أو .zshrc
لنظام التشغيل Unix/Linux/MacOS، أو متغيرات البيئة على نظام التشغيل Windows).
قم بإنشاء بيئة افتراضية باستخدام الأمر التالي:
make create_venv
قم بتنشيط البيئة الافتراضية باستخدام الأمر التالي:
source .venv/bin/activate
قم بتثبيت التبعيات باستخدام الأمر التالي:
make install_dev
قم بتثبيت تبعيات الاختبار باستخدام الأمر التالي:
make install_test
قم بتشغيل خادم API باستخدام الأمر التالي:
make api_server
اعرض وثائق Swagger UI لرؤية نقاط النهاية المتاحة على: http://localhost:8000/docs
قم بتشغيل تطبيق Streamlit باستخدام الأمر التالي:
make display_ui
فيما يلي أمثلة على الأنواع المختلفة من التفاعلات التي يمكن للنظام التعامل معها، والتي يتم تصنيفها حسب نوع الهدف ونوع البنية.
defense_suggestion
: ظهر بوكيمون غير معروف ويحتاج المستخدم إلى اقتراح لاستخدام بوكيمون ضده. يجب على المستخدم تقديم اسم البوكيمون كجزء من الإدخال.
information_request
: يريد المستخدم معرفة المزيد عن البوكيمون. في الإدخال، يجب على المستخدم تقديم إحدى هياكل نص الإدخال التالية: (1) اسم البوكيمون مع طلب للحصول على معلومات، (2) وصف البوكيمون باللغة الطبيعية دون ذكر اسم البوكيمون صراحةً مع نية تخمين ما هو البوكيمون، أو (3) سؤال حول البوكيمون مع ذكر اسم البوكيمون صراحةً، مع السؤال عن سمة محددة مثل: التطور، النظام الغذائي، الموطن، الإحصائيات الأساسية، إلخ.
squad_build
: يريد المستخدم بناء فرقة من البوكيمون بناءً على أنواع البوكيمون الخاصة بالخصم. يجب على المستخدم تقديم قائمة بأسماء Pokémon كجزء من الإدخال.
None
: قم بإرجاع استجابة GPT-4 الخاصة. لا يندرج طلب المستخدم ضمن أي من الفئات المذكورة أعلاه.
أمثلة سريعة :
نوع النية | نوع الهيكل | مثال |
---|---|---|
defence_suggestion | any | لقد عثرت على جروفيل بري يتسكع في الحديقة! أي بوكيمون يجب أن أختار لمعركة ملحمية لهزيمته؟ |
information_request | pokemon_names | حسنًا، بوكيدكس! حان الوقت لمعرفة كل شيء عن Snorlax وPikachu! |
information_request | natural_language_question | هل تعرف في أي نوع من الموائل يمكنني العثور على Psyduck؟ |
information_request | natural_language_description | هل يمكنك تخمين أي بوكيمون هو بوكيمون من النوع المزدوج من النوع العشبي/السام المعروف بالبصلة النباتية الموجودة على ظهره، والتي تنمو لتصبح نباتًا كبيرًا مع تطوره؟ |
Squad_build | any | حان الوقت لتحدي قائد Fire Gym! لديه فريق قوي يضم Ninetales وCombusken، لكنني بحاجة لمساعدتكم لبناء الفريق |
لا أحد | any | أنا أحب المعجنات |
أمثلة الاستجابة :
مستعجل: هل تعرف في أي نوع من الموائل يمكنني العثور على لوكاريو؟
الإجابة مع تمكين JSON mode
:
{
"header" : " Lucario can be found in Cave, Forest, and Mountain habitats. n " ,
"body" : [
" ### Lucario nn **ID**: 448 nn **Stats**: - HP: 70 n - Speed: 90 n - Attack: 110 n - Special-Attack: 115 n - Defense: 70 n - Special-Defense: 70 nn **Height**: 1.2m **Weight**: 54.0kg nn **Types**: fighting, steel nn **Abilities**: steadfast, inner-focus, justified nn **Damage Relations**: n - no damage to: ghost n - half damage to: flying n - double damage to: normal n - half damage from: rock n - double damage from: flying n "
],
"sprites" : {
"Lucario" : [
" https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/448.png " ,
" https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/448.png " ,
" https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/448.png " ,
" https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/448.png "
]
},
"intent_type" : " information_request " ,
"intent_structure" : " natural_language_question "
}