الملفات
2026-06-11 15:10:48 +00:00

18 KiB
خام الرابط الدائم اللوم التاريخ

رحلة التقني العربي (The Arab Technician's Journey)

🌐 اللغة: English | العربية


معلومات التقديم

هذا المستودع يمثل مشاركتي في مسابقة Arabic Tech Quest.

يوثق هذا المستودع تقدمي وملاحظاتي وأكوادي ونتائجي وتسليماتي عبر جميع محطات التحدي.


جدول المحتويات


المحطة 1

الحساب والمنشورات

-ملفي الشخصي على Qabilah

-أول منشور

مراجعة المنصة

ما أعجبني

  • التصميم العام جيد وسهل الاستخدام.
  • فكرة القبائل ممتازة.
  • التصنيف التلقائي للمحتوى يعمل بشكل جيد جدًا.
  • تشجيع التفاعل الحقيقي وتقليل المحتوى المزعج أو المقرصن.
  • إمكانية الدفع بمبلغ بسيط لدعم المنصة فكرة صريحة وأقدرها.

ما يمكن تحسينه

  • عداد الهاكاثون أثناء التصفح كان مشتتًا للانتباه.
  • عدم وجود ملفات شخصية ثنائية اللغة.
  • النشاط الحالي منخفض نسبيًا.
  • الخطة المدفوعة لا تقدم قيمة إضافية كبيرة.
  • الاستدامة على المدى الطويل قد تصبح تحديًا خصوصًا مع إضافة الفيديو.

المحطة 2

الموقع

رابط الموقع المنشور

تجربة النشر

كانت عملية النشر على غيمة سهلة جدًا، وربما سهلة أكثر من اللازم. على سبيل المثال لم يُطلب مني تأكيد البريد الإلكتروني قبل نشر الموقع، وهو أمر يمكن إساءة استخدامه.

تحديث: بعد أكثر من 12 ساعة لم يكن الموقع يعمل بعد، لذلك تواصلت مع الدعم.

تحديث 2: لم أتلق أي رد من الدعم. لاحقًا اكتشفت أن المشكلة كانت من جهتي بسبب وضع ملف index.html في مكان غير صحيح داخل الملف المضغوط.


المحطة 3

الجزء الأول تقييم محرك بحث مثال

اخترت استخدام Playwright مع Python لتنفيذ 100 عملية بحث عربية متنوعة على محرك مثال.

قام السكربت بـ:

  • إنشاء 100 موضوع مختلف.
  • فتح كل عملية بحث تلقائيًا.
  • أخذ لقطة شاشة كاملة لكل صفحة نتائج.
  • استخراج البيانات إلى ملف CSV.
  • إعادة المحاولة عند حدوث الأخطاء.

ملاحظة: لم أكن لأتمكن من إنهاء هذا السكربت بهذه السرعة دون الاستفادة من نماذج اللغة الكبيرة. كان هذا المجال جديدًا بالنسبة لي بالكامل.

النتائج

ملف النتائج CSV مرفق في المستودع.

الملاحظات

  • الاعتماد الكبير على المطابقة المباشرة للكلمات.
  • محدودية فهم السياق.
  • دعم محدود لتصحيح الأخطاء العربية.
  • عدم وجود صفحات نتائج متعددة.
  • عدم دعم نتائج الفيديو.
  • أعجبني أن خصائص الذكاء الاصطناعي اختيارية.
  • الواجهة بحاجة إلى تحديث بصري.

الجزء الثاني مثال الوكيلي (Agentic Mithal)

الطريقة التي يعمل بها "مثال" حاليًا هي مجرد محرك بحث بسيط جدًا أو متوسط في أفضل الأحوال. النقطة الوحيدة التي تُحسب له هي سياسة عدم التتبع، وبصراحة هذا أشبه بـ"ثق بي يا أخي" لا يوجد شيء واضح أو مُفسَّر بشأنها. هناك أيضًا التركيز على اللغة العربية كأولوية، لكن هذا ليس واقعيًا تمامًا لأن الناس سيحتاجون دائمًا للبحث بلغات أخرى أيضًا، لذا لا أعتبر ذلك ميزة حقيقية.

السؤال الذي تطرحه هو: كيف نطوّره ليكون تجربة قائمة على الوكيل الذكي (agentic experience)؟ هذا أكثر إثارة. مثلاً، حاليًا عندما يسأل مستخدم: "ما هو أفضل هاتف في الرياض لعام 2024"، فإن المحرك ببساطة يطابق الكلمات والمتاجر ويقدم روابط. لكن لو استخدمنا "مثال" كوكيل ذكي، فإنه يقسم المهمة إلى مهام فرعية: البحث عن مراجعات الهواتف، التحقق من الأسعار الحالية عبر واجهة برمجة تطبيقات (API)، تصفية النتائج بـ"متاح في الرياض"، ثم تجميع إجابة مرتبة مع الاستشهادات. سيشمل ذلك أيضًا أدوات مثل تحويل العملات، وتحديد الموقع الجغرافي، وواجهات أسعار المنتجات.

الآن، لفعل هذا دون مشاكل سنحتاج إلى الكثير من واجهات API والتنسيق مع المتاجر الكبرى مثلًا. وإذا كنا نعطي الأولوية للعربية، فهذا لا ينبغي أن يكون صعبًا جدًا، لكنه لا يزال يتطلب مجهودًا كبيرًا. على حد علمي، لا تستطيع الذكاءات الاصطناعية حاليًا القيام بعملية "التصفّح مثل البشر وجمع المعلومات" دون أن يحدث خطأ ما. لكن دمج هذه الإمكانية داخل محرك بحث هو فكرة جيدة فعلاً، بشرط ألا يقوم باستخراج بيانات المواقع (scraping) بل يعتمد على واجهات رسمية.

من المشاكل التي ستواجهها: التخصيص بدون تتبع، لأن ذلك يتطلب ملفات تعريف على الجهاز نفسه، أو ذاكرة مؤقتة تعتمد على الجلسة، أو اهتمامات يعلن عنها المستخدم صراحة.

هناك أيضًا المسألة البسيطة المتمثلة في صعوبات اللغة العربية، مثل: الثراء الصرفي (نفس الجذر يعطي معاني متعددة)، اللهجات (المصرية، الشامية، الخليجية) على الوكيل أن يكتشفها أو يسأل عنها. النص من اليمين لليسار ومشاكل النص ثنائي الاتجاه (bidirectional)، ومحدودية مجموعات البيانات العربية عالية الجودة لتدريب نماذج الاسترجاع.

لذلك لو كنت سأبدأ بهذا المحرك، فسأبدأ بالفصحى الحديثة + دعم محدود للهجات، ثم أتوسع لاحقًا.

أخيرًا، أكبر مشكلة ستكون الهلوسة (hallucination) والتجميع متعدد المصادر. أولاً، استخدام شيء مثل RAG (توليد معزز بالاسترجاع) سيساعدنا في تجنب ذلك، لأن الوكيل يجيب فقط من المستندات المسترجَعة، وليس من "ذاكرته". أما بالنسبة للتجميع متعدد المصادر، فسأفضّل استخدام واجهات API رسمية من المصادر لسببين رئيسيين: أولاً، حتى لا نأكل من الزيارات الطبيعية للموقع ، وثانيًا لتجنب الاستخراج (scraping) المزعج سواء بسبب إجراءات الأمان للمواقع، أو ببساطة لأنه قد يُخرج معلومات خاطئة. وبالطبع، كل معلومة يجب أن يكون لها مصدر قابل للنقر عليه، وإخلاء مسؤولية بأنه نظام ذكاء اصطناعي، وحتى مع كل هذا قد يُخطئ أحيانًا.

رغم هذه التحديات الهلوسة، تعقيد اللغة العربية، والحاجة إلى تكامل مع واجهات API رسمية فإن بناء "مثال" كعامل ذكي ليس ممكنًا فحسب، بل ضروريًا. إذا تم تنفيذه بشفافية، واستشهادات واضحة، وتوسع تدريجي من الفصحى الحديثة إلى اللهجات، فإن "مثال" يمكن أن يتطور من محرك بحث متوسط يعتمد على "لا تاكل هم متأكد من كلامي" إلى مساعد جدير بالثقة، يضع الخصوصية أولاً، ويُركّز على العربية. تلك ستكون تجربة بحث تستحق الاستخدام.


المحطة 4

إنشاء التوكن

تم اختبار نقطة النهاية المخصصة وإنشاء التوكنات بنجاح.

كما لاحظت أن استخدام نفس اسم المستخدم والمنصة ينتج معرفًا وتوكنًا جديدين في كل مرة.

تم استخدام أمر curl التالي :

curl.exe -X POST `
  https://jinn-compute-http-ed7c6e1b.hosted.cumin.dev/cb5a23a97-token-proxy/ `
  -H "Content-Type: application/json" `
  -d '{\"username\": \"Bilal\", \"platform\": \"github\"}'

سكربت التفاعل مع النموذج

بدلًا من استخدام الواجهة الرسمية فقط، قمت بإنشاء سكربت Python للتفاعل المباشر مع الخدمة.

كمان وبمأ أنه لم أتمكن من ايجاد أي توثيق رسمي او طريقة لاستخدام API فانتهى بي الأمر بمتابعة الrequest التي يقوم بها الموقع بالمتصفح لانشاء السكريبت بحيث يكون قادرا على استخدام التوكين الخاصة بي وانشاء محادقات جديدة علما أنه يوجد حد وقدره 10 محادقات في نفس الوقت وحاليا الطريقة الوحيدة لحذف المحاثات القديمة هو من الواجهة الرسمية ولكن يمكن اعادة استخدام محادثة قديمة بمجرد استخدان رقم المعرف الخاص بها والذي يتم تسجيله بكل الحوال في السكريبت.

تمكنت من:

  • إنشاء محادثات جديدة.
  • إعادة استخدام معرفات المحادثات.
  • الحفاظ على سياق المحادثة.

الموجه الابتدائي

تم استخدام النموذج كمساعد متخصص في البحث والتطوير واقتراح أفكار بحثية جديدة باللغة العربية.

You are an expert R&D assistant specialized in AI, Machine Learning, and LLMs. Provide 3-5 creative, underexplored research directions. For each idea: short title, brief explanation, why it's promising (with novelty evidence), and at least one reference to a paper or source. Be concise but insightful. Reply only in Arabic.

بوت مقترح أفكار بحثية


المحطة 5

وكيل aiXplain

تم إنشاء وكيل واختباره بنجاح.

رابط العميل

رقم العميل : 6a2698e71ea81106dbbaca0d

نظرة عامة على MCP

يسمح MCP بربط الأدوات والنماذج والخدمات المختلفة من خلال واجهة موحدة.

طرق التكامل

  1. ربط الخدمات مباشرة من Studio.
  2. إضافة أدوات مخصصة عبر SDK.

القيود

لم أتمكن من إنشاء مفتاح API بسبب الحاجة إلى رصيد مدفوع، لذلك اعتمدت على الواجهة الرسومية.

بعدما توجهت إلى قسم العملاء في الموقع قررت تسمية العميل ب (Weather & Info Assistant) اسم بسيط لوظيفة مفيدة , بشكل أساسي كل ما كان علي فعله هو اضافة mcp server يدويا الى العميل ونموذج الllm الموجود مسبقا , الخطوة التالية كانت محاولتي لاستخدام MCP متاح للعام من الانترنت ولكن لم اتمكن من ايجاد احدهم مجاني وما زالي يعمل فكان الخيار التالي لدي هو تشغيله يدويا علة جهازي وايجاد طريقة ما لربطه بالعميل على الموقع

إعداد خادم MCP محلي

سيرفر للوقت

mcp-proxy --port 3000 uvx mcp-server-time

كان هذا السيرفر هو تجربتي الاولى فقط لانه كان اسهل ايجاد شرح لتشغيله ثم لاحقا قمت لتبديله بسيرفر للطقس , ولكن عندما حاولت تشغيله اكتشفت أن ويندوز لا يتوافر فيه بشكل افتراضي شيئ يدعى uvx علما أنه لا علم لي ما هو بالظبط ولكن ببحث سريع اكتشفت انه يمكن حل هذه المشكلة بتشغيل الأمر التالي :

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

الوصول للسيرفر عبر الانترنت

وبعد تشغيل الأمر السابق أصبح يمكنني الوصول له بشكل محل ولكن لكي يتمكن العميل من التواصل معه عليه أن يمر عبر شبكة الانترنت وهنى بعد بحث سريع تعرفت على اداة جديدة علي اسمها ngrok والتي تسمح باعطاء عنوان عام لسيرفر ما يعمل بشكل محلي فقمت بانشاء حسب وتفعيله وثم محليا قمت بتشغيل السيرفر عبر الامر التالي :

ngrok config add-authtoken "<YOUR_AUTHTOKEN>"
ngrok http 3000

خدمة الطقس

وأخير كل شيئ أصبح يعمل بشكل مثالي وكل ما علي فعله هو ربط العميل محليا بالmcp الخاص بس عبر الرابط "https://compel-reemerge-june.ngrok-free.dev/mcp" الذي قام ngrok بتوليده وبما ان هذا العميل اصبح يعمل كل ما علي فعله هو تشغيل عميل الطقس بدلا من الوقت عبر الأمر التالي :

mcp-proxy --port 3000 uvx casual-mcp-server-weather --transport streamablehttp

وهكذا أصبح يمكن للعميل الحصول على معلومات الطقس والتوقعات الجوية وجودة الهواء أيضا


المحطة 6

ملاحظات

كما هو الحال مع غيمة، أرى أن التحقق من البريد الإلكتروني يجب أن يكون إلزاميًا.

كما واجهت بعض المشاكل عند رفع عدد كبير من الملفات دفعة واحدة عبر الواجهة.

المشروع المختار

مشروع تصنيف أمراض أوراق النباتات وتقدير الثقة باستخدام الشبكات العصبية والمنطق الضبابي.

رابط المشروع المستضاف على المنصة

سبب الاختيار

بصراحة، ليس لديّ الكثير من المشاريع الجيدة. لو أردتُ اختيار مشروع واحد بناءً على مدى تأثيرعلي معنويا ، لاخترتُ مشروعًا آخر، لكن المشروع الآخر كان سيئًا للغاية. في ذلك المشروع، قمتُ بمحاكاة خوارزمية VFH باستخدام روبوت. كان من المضحك أن أتذكر حينها كم كنتُ جاهلًا بكل شيء، وكيف حاولتُ إنجاز ذلك في يومين فقط.

أما هذا المشروع، فقد ذكّرني بذلك المشروع السابق نوعًا ما، إذ كان علينا إنجازه في وقت قصير جدًا مع وجود الكثير من المهام. لستُ راضيًا عنه، ولا حتى قليلًا، من الناحية العملية، لكنني تعلمتُ منه الكثير، وأنجزتُ دوري في الوقت المحدد. مع ذلك، لم يتمكن زميلي من إنجازه، لذا كان العمل غير متقن من جانبه.


المحطة 7

المشاريع التي تمت مراجعتها

  • المشروع الأول

https://www.mortakaz.com/projects/691172dd0954c2682eb139d2?tab=reviews

  • المشروع الثاني

https://www.mortakaz.com/projects/6985c7ae76d5a85c6107f577?tab=reviews

سبب الاختيار

  • المشروع الأول يتوافق مع اهتمامي بالخصوصية وجمع البيانات.
  • المشروع الثاني قدم إطار عمل عربي واعد استحق التجربة وإبداء الرأي.

المحطة 8

تم رفع ملف PDF تفصيلي في نفس المستودع


المحطة 9

نظرة عامة

قمت بربط سكربت نموذج اللغة الخاص بي مع سكربت البحث الخاص بمحرك مثال.

آلية العمل:

  1. توليد أفكار بحثية.
  2. تنفيذ عدة عمليات بحث.
  3. جمع أفضل النتائج.
  4. تنظيمها داخل تقرير نصي.

المستودع

رابط المستودع للمحطة التاسعة

ما تعلمته

  • وجود العديد من الخدمات العربية غير المعروفة على نطاق واسع.
  • بناء تجربة استخدام تضاهي الشركات الكبرى يتطلب جهدًا أكبر بكثير مما يبدو للوهلة الأولى.

ملاحظات ختامية

جميع الآراء والملاحظات الواردة في هذا المستودع تعكس تجربتي الشخصية أثناء تنفيذ التحدي.