شنو هو McOracle
McOracle (وحي ماكدونالدز) هو تجربة ديال نبوءة بالذكاء الاصطناعي على شكل Skill فقط. المستخدم يقدر يطرح أي سؤال، والنظام كيختار جواب واحد عشوائيا وبطريقة حقيقية من بين 104 نبوءة أصلية بالصينية باستعمال موديل Python secrets، ومن بعد كيجمع معطيات حقيقية على المحلات، والمنتوجات المتوفرة، والأثمنة من خلال MCP الرسمي ديال ماكدونالدز الصين، وكيولّد «كتاب وحي ماكدونالدز» وبطاقة ديال الحظ.
المبدأ الأساسي ديال المشروع هو: النبوءة تقدر تكون عشوائية، ولكن المنتوج والثمن خاصهم يكونو حقيقيين. النبوءات جاية من معطيات ثابتة داخل المستودع، وما كيخترعهاش الموديل فكل مرة؛ المأكولات، والمحلات، والأثمنة كيتستعملو غير من المعطيات اللي كيرجعها MCP؛ وإلى ما تأكدش الثمن، كيبان «الثمن ما متأكدش منو». قبل ما يوافق المستخدم بوضوح، النظام ما كيخلقش أي طلب، وحتى إنشاء الطلب ما كيعنيش أن الأداء تكمّل.
سير العمل الكامل
المسار العادي ديال McOracle فيه خمس مراحل:
- المستخدم كيطرح سؤال، ولا كيطلب مباشرة نبوءة ماكدونالدز.
scripts/draw-oracle.pyكيختار نبوءة عشوائية بشكل حقيقي منreferences/oracle-library.json، وكيقفل نتيجة هاد الجولة.- إلى كان المستخدم باغي اقتراحات ديال الماكلة، الـSkill كيستعمل MCP باش يقلب على المحلات القريبة، واللائحة المتوفرة، وتفاصيل المأكولات.
- كيتم التأكد من الثمن باستعمال
calculate-price، ومن بعد كيتستعملscripts/generate-card.pyباش تتولد بطاقة حظ بصيغة PNG وبقياس 1200×1600. - غير من بعد ما يجاوب المستخدم بوضوح «أكد الطلب»، النظام كيراجع معلومات الطلب وكيستعمل
create-order. ومن بعد، المستخدم خاصو يكمّل الأداء بوحدو عبر الواجهة الرسمية.
إلى كان المستخدم باغي غير يخرج نبوءة، المسار كيسالي فالمرحلة الأولى، وما كيتطلبش الموقع بالقوة وما كيستعملش MCP.
الوحدات الأساسية وبنية المشروع
المشروع مكوّن أساسا من الوحدات التالية:
- Oracle Engine:
draw-oracle.pyومكتبة النبوءات مسؤولين على الاختيار العشوائي، وقفل النتيجة، والتحكم فإعادة السحب. - Recommendation Engine:
recommendation-rules.mdكيربط وسوم النبوءة بالاتجاهات ديال الماكلة، وكيعطي اقتراحات اعتمادا على اللائحة الحقيقية والميزانية. - MCP Adapter:
SKILL.mdوMCP_INTEGRATION.mdكيشرحو ترتيب استدعاء الأدوات، وقواعد المعاملات، ومعالجة الأخطاء. - Card Generator:
generate-card.pyكيستعمل Pillow باش يرسم قالب خمري وذهبي بطريقة برمجية، وكيركب عليه صور المنتوجات الرسمية. - Order Safety Controller:
validate-order.pyكيتحكم فمسار التأكيد باستعمال آلة حالات، باش يمنع إنشاء طلب بلا تأكيد. - Skill Orchestrator:
SKILL.mdكيحدد شروط التفعيل، ومسار التنفيذ، وشكل الإخراج، ومتطلبات السلامة.
مكتبة النبوءات فيها 104 محتوى أصلي، وكتغطي ثمانية أصناف كبيرة: نبوءات إيجابية، وسلبية، وانتظار، وفعل، وانقلاب، وحظ زوين، وفكاهية، وخاصة بماكدونالدز. كل نبوءة فيها رقم، والنص، والصنف، والوسوم، والتفسير، ونصيحة للفعل، ووسوم الاقتراح، وموضوع بصري.
تثبيت اعتماديات Python
المشروع كيحتاج Python 3.9 أو نسخة أحدث. بيئة التطوير كتستعمل Python 3.13. بطاقة الحظ الرسمية كتتنسق ببرنامج Pillow، وداكشي علاش خاص تثبيت Pillow؛ استخراج النبوءة وسكريبتات سلامة الطلب ما كيحتاجوش API ديال توليد الصور.
git clone <your-repo-url> McOracle
cd McOracle
pip install Pillowإلى كنت خدام على macOS أو Linux، تأكد بلي كاين خط كيدعم عرض الصينية فالنظام. السكريبت كيختار خط متوفر حسب لائحة المرشحين. إخراج البطاقة الرسمية ما كيحتاجش إعداد Image Generation API Key.
تثبيتو كـ WorkBuddy Skill
- جيب المشروع وثبّت الاعتماديات.
- نسخ المجلد كامل
McOracle/لمجلد Skill ديال المستخدم~/.workbuddy/skills/McOracle/، ولا لمجلد مساحة العمل الحالية{workspace}/.workbuddy/skills/McOracle/. - فعّل MCP ديال ماكدونالدز الصين فـ Connectors ديال WorkBuddy.
- حلّ محادثة واستعمل تعابير بحال «وحي ماكدونالدز»، «خرج ليا نبوءة»، أو «نبوءة اليوم» باش تفعّل الـSkill.
وتقدر حتى تطرح سؤال عادي، بحال «واش خاصني نستاقل من الخدمة؟». وإلى بغيتي المسار كامل، قول «بغيت حظ ماكدونالدز الكامل ديال اليوم». بعض النسخ ديال WorkBuddy كتختلف فمتطلبات بيانات تسجيل الـSkill، وخصك تزيد الإعدادات المناسبة حسب النسخة المحلية.
إعداد MCP الرسمي ديال ماكدونالدز الصين
قبل استعمال اقتراحات فيها محلات، ولائحة الماكلة، وأثمنة حقيقية، خاصك تشوف الدليل الرسمي لاستعمال MCP باش تعرف كيفاش تطلب Token، ومن بعد عمّر الإعدادات فـ WorkBuddy عبر «Connectors» ← «Custom Connectors» ← «Configure MCP».
{
"mcpServers": {
"mcd-mcp": {
"type": "streamablehttp",
"url": "https://mcp.mcd.cn",
"headers": {
"Authorization": "Bearer YOUR_MCP_TOKEN"
}
}
}
}بدّل YOUR_MCP_TOKEN بالـToken ديالك، وما تديرش الـToken فالمستودع. الأدوات الرئيسية فالمشروع هي now-time-info، وquery-nearby-stores، وquery-meals، وquery-meal-detail، وcalculate-price. أداة إنشاء الطلب create-order ما كتستعمل غير من بعد ما يأكد المستخدم بوضوح.
الاستعمال الأول: استخراج نبوءة
من جذر المشروع، نفّذ الأمر التالي باش تستخرج نبوءة مرتبطة بسؤال محدد:
python scripts/draw-oracle.py --question 'شنو ناكل اليوم؟'نتيجة الاستخراج كتتكتب فـ scripts/_oracle_state.json وكتتقفل فهاد الجولة. بهاد الطريقة، التفسير، والاقتراح، وبطاقة الحظ من بعد كيرجعو لنفس النبوءة، وما كتبدلش بالخطأ بسبب القراءة المتكررة.
باش تشوف النتيجة المقفولة حاليا ولا تطلب استخراج جديد:
python scripts/draw-oracle.py --peek
python scripts/draw-oracle.py --redrawخاص استعمال --redraw غير ملي يطلب المستخدم إعادة السحب بوضوح. النظام ما كيبدلش النبوءة بوحدو ملي كيولّد التفسير ولا بطاقة الحظ.
توليد بطاقة الحظ
بطاقة الحظ كتستعمل قالب بصري ثابت بالخمري والذهبي، وما كتحتاجش خدمة توليد الصور. الخلفية فيها تدرج خمري غامق، وإطار ذهبي مزدوج، وحلقة مضوية فالوسط، وزواق ديال النجوم؛ والنص كينسقو Pillow برمجيا، باش يتفادى مشاكل الصينية، والأرقام، والأثمنة بحال الرموز المشوهة ولا تجاوز الحدود.
ملي كترجع MCP صورة رسمية للمنتوج وكيكون الثمن تأكد باستعمال calculate-price، تقدر تولّد البطاقة الرسمية بهاد الشكل:
python scripts/generate-card.py \
--oracle-id 'NO.021' \
--answer 'ما تاخدش قرارات فالليل المتأخر.' \
--interpretation 'نتا ديال الساعة وحدة فالليل ونتا ديال العشرة ديال الصباح ماشي نفس الشخص.' \
--item-name 'كومبو برغر الدجاج المشوي' \
--item-price 34.5 \
--price-verified \
--item-image-url 'https://menu-img.mcd.cn/.../MS_9900005462_320.png' \
--out examples/oracle-card-NO021-official.pngالحجم الرسمي للإخراج هو PNG بقياس 1200×1600. الخيار --price-verified ما كيستعمل غير ملي يكون الثمن تأكد فعلا عبر MCP، وما يمكنش اعتبار ثمن المثال ثمنا حيا.
خطة تراجع مواد الصور
الصورة الرئيسية ديال المنتوج كتتعالج حسب هاد الأولويات:
- الأولوية للصورة الرسمية ديال المنتوج اللي كترجعها
query-mealsولاquery-meal-detail. - إلى ما كانتش صورة رسمية، يمكن استعمال
--item-imageلتحديد رسم مفاهيمي مستقل، مع الإشارة بوضوح بلي راه رسم مفاهيمي. - إلى ما توفرتش المواد الخارجية، السكريبت كيستعمل رسومات مبرمجة داخلية ديال برغر، وبطاطا مقلية، وكولا.
- إلى ما توفرت حتى مادة، كيخرج بطاقة تراجع فيها «مواد الصورة ديال الماكلة ناقصة»، وكيبلغ على الفشل برمز الخروج 2 وبـJSON فيه
ok=false.
المشروع ما كيعوضش الماكلة بحلقة خاوية، وما كيسميش الرسم المفاهيمي صورة رسمية حقيقية.
إكمال تجربة كاملة فالمحادثة
محادثة نموذجية تقدر تكون هكا:
نتا: وحي ماكدونالدز، واش اليوم مناسب نستاقل من الخدمة؟
McOracle: استخراج النبوءة، وإرجاع النص، والتفسير، ونصيحة الفعل، والتنبيه للأمور المهمة، مع إمكانية اقتراح طلب اليوم.
نتا: وجد الطلب
McOracle: عرض ملخص الطلب فيه المحل، وطريقة أخذ الطلب، والمنتوج، والثمن، وطلب التأكيد ديالك.
نتا: أكد الطلب
McOracle: إعادة التأكد من الثمن، ومن بعد استدعاء create-order، وإرجاع رقم الطلب الحقيقي ورابط الأداء الرسمي.«ورّيني»، و«اقترح عليا شي حاجة»، و«وجد الطلب» ماشي تأكيد نهائي. غير ملي يجاوب المستخدم بوضوح «أكد الطلب»، يقدر مسار الطلب يكمل.
آلية سلامة الطلب
متحكم سلامة الطلب كيراقب حالة الطلب والمعاملات الأساسية. غير إلى تبدل المحل، أو المنتوج، أو الكمية، أو الثمن، أو طريقة أخذ الطلب، التأكيد السابق كيبطل، وخص النظام يعاود يعرض الملخص ويطلب التأكيد.
المشروع ما كيأديش بوحدو، وما كيفبركش رقم طلب ولا رسالة نجاح الطلب. من بعد إنشاء الطلب، كيبقى فمرحلة انتظار الأداء خارج مسار الأداء الرسمي، والمستخدم خاصو يكمل الأداء بوحدو عبر الصفحة الرسمية. الاستلام من المحل وDrive-Thru كيستعملو orderType=1، والتوصيل كيستعمل orderType=2 وكيحتاج عنوان التوصيل، وما يمكنش خلط النوعين ديال المعاملات.
تشغيل عرض مستقل لسلامة الطلب
سكريبت الطلب كيوفر عرض Mock منطقي فقط، وما كيخلق حتى طلب حقيقي:
python scripts/validate-order.py demoهاد العرض مناسب لفحص قواعد التأكيد قبل ربط MCP الحقيقي، ومن بينها: ما كاينش طلب بلا تأكيد، والتعابير الغامضة ما كتتحسبش تأكيد، وتبدل معاملات الطلب كيبطل التأكيد، وإنشاء الطلب ما كيعنيش نجاح الأداء.
تشغيل الاختبارات
المشروع فيه ثلاث مجموعات ديال الاختبارات، كاتغطي منطق النبوءة، وتوليد بطاقة الحظ، وآلة حالات سلامة الطلب:
python tests/test-oracle.py
python tests/test-card.py
python tests/test-order-safety.pyالنتيجة الحالية المسجلة فـREADME هي نجاح 24 اختبار كاملين. اختبارات النبوءة كتأكد من 104 معطيات، وفرادة الأرقام، وثمانية أصناف، والعشوائية، وقفل الحالة؛ واختبارات بطاقة الحظ كتأكد من PNG حقيقي، والحجم، والتراجع عند نقص المواد، وفرع الثمن غير المؤكد، وتنسيق النصوص الطويلة؛ واختبارات الطلب كتستعمل Mock للتحقق من انتقالات الحالة الآمنة، بلا استدعاء MCP الحقيقي وبلا إنشاء طلب.
اقتراحات للاستعمال المتقدم
فرّق بين نبوءة الترفيه والقرار الواقعي
النبوءة غير للترفيه والإلهام، وماشي توقع للمستقبل، وما تقدرش تعوض الحكم الواقعي. فالمواضيع اللي فيها الاستقالة، والاستثمار، والصحة، والقانون، ولا الفلوس، خاص تجمع بين الظروف الموضوعية واستشارة المهنيين.
ديما فرّق بين الثمن المتأكد وثمن المثال
الثمن اللي كيرجعو MCP كيكون بالـ«سنتيم»، وقبل العرض خاص القسمة على 100، وزيد على هاد الشي الثمن عندو مدة صلاحية. بلا تأكد آني، خاص يبان «الثمن ما متأكدش منو»، وما خاصش تعرض ثمن المثال فالبطاقة ولا فالمحادثة بلاصة الثمن الحقيقي.
تدبير بيانات الدخول والخصوصية
الـToken والـAPI Key خاصهم يتقراو غير من إعدادات الـConnector ولا من متغيرات البيئة، وما خاصهمش يتحطو فالكود ولا يتدفعو للمستودع. المشروع ما خاصوش يخزن خصوصية المستخدم، ولا Cookie، ولا رقم الطلب، ولا بيانات الدخول الشخصية. وحتى ملي كتفتح Issue ولا Pull Request، ما تضمنش هاد المعلومات الحساسة.
فهم حدود القدرات الحالية
البحث على المحلات، والبحث على اللائحة، وتفاصيل المأكولات، وحساب الثمن، وتحميل الصور الرسمية، وتوليد بطاقة الحظ عندها سجلات تحقق عملية. أما المسار الكامل ديال «الطلب ـ الأداء ـ التحقق من الحالة»، ومسار McDelivery، ومسار الحصول على القسائم واستعمالها، فما زال فيه أجزاء ما تجرباتش كاملة بشكل عملي، وداكشي علاش ما خاصش يتوصف بأنه تْتحقق منو من البداية للنهاية.
الخلاصة
McOracle جمع بين بيانات نبوءات ثابتة، واستخراج عشوائي حقيقي، وقائمة رسمية آنية عبر MCP، وترتيب برمجي للصور، باش يكوّن Skill ممتع لـ WorkBuddy. تقدر تبدا غير بسكريبت النبوءات، ولا تهيّأ MCP باش تحصل حتى على توصيات ديال المحلات، والوجبات، والأثمنة. فالاستخدام الفعلي، خاصك تبقى فاكر ثلاثة ديال المبادئ: النبوءة غير للترفيه، الثمن خاصو يتأكد منّو فالحين، وما خاصّكش تنشئ أي طلب قبل ما يأكد المستخدم بوضوح.
القدر يقدر يكون عشوائي، ولكن الثمن خاصو يكون حقيقي.
