Upload files to "/"
هذا الالتزام موجود في:
299
README.ar.md
Normal file
299
README.ar.md
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
# رحلة التقني العربي (The Arab Technician's Journey)
|
||||||
|
|
||||||
|
🌐 اللغة: [English](README.md) | **العربية**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## معلومات التقديم
|
||||||
|
|
||||||
|
هذا المستودع يمثل مشاركتي في مسابقة Arabic Tech Quest.
|
||||||
|
|
||||||
|
يوثق هذا المستودع تقدمي وملاحظاتي وأكوادي ونتائجي وتسليماتي عبر جميع محطات التحدي.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## جدول المحتويات
|
||||||
|
|
||||||
|
- [المحطة 1](#المحطة-1)
|
||||||
|
- [المحطة 2](#المحطة-2)
|
||||||
|
- [المحطة 3](#المحطة-3)
|
||||||
|
- [المحطة 4](#المحطة-4)
|
||||||
|
- [المحطة 5](#المحطة-5)
|
||||||
|
- [المحطة 6](#المحطة-6)
|
||||||
|
- [المحطة 7](#المحطة-7)
|
||||||
|
- [المحطة 8](#المحطة-8)
|
||||||
|
- [المحطة 9](#المحطة-9)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# المحطة 1
|
||||||
|
|
||||||
|
## الحساب والمنشورات
|
||||||
|
|
||||||
|
-[ملفي الشخصي على Qabilah](https://qabilah.com/profile/bilal-alasha/professional-profile)
|
||||||
|
|
||||||
|
-[أول منشور](https://qabilah.com/posts/%D8%A8%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D8%B9%D8%B4%D8%A7-%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%81%D9%8A-%D8%A3%D8%A8%D8%AD%D8%A7%D8%AB-saif-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A2%D9%84%D9%8A~254541840693334016)
|
||||||
|
|
||||||
|
## مراجعة المنصة
|
||||||
|
|
||||||
|
### ما أعجبني
|
||||||
|
|
||||||
|
- التصميم العام جيد وسهل الاستخدام.
|
||||||
|
- فكرة القبائل ممتازة.
|
||||||
|
- التصنيف التلقائي للمحتوى يعمل بشكل جيد جدًا.
|
||||||
|
- تشجيع التفاعل الحقيقي وتقليل المحتوى المزعج أو المقرصن.
|
||||||
|
- إمكانية الدفع بمبلغ بسيط لدعم المنصة فكرة صريحة وأقدرها.
|
||||||
|
|
||||||
|
### ما يمكن تحسينه
|
||||||
|
|
||||||
|
- عداد الهاكاثون أثناء التصفح كان مشتتًا للانتباه.
|
||||||
|
- عدم وجود ملفات شخصية ثنائية اللغة.
|
||||||
|
- النشاط الحالي منخفض نسبيًا.
|
||||||
|
- الخطة المدفوعة لا تقدم قيمة إضافية كبيرة.
|
||||||
|
- الاستدامة على المدى الطويل قد تصبح تحديًا خصوصًا مع إضافة الفيديو.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# المحطة 2
|
||||||
|
|
||||||
|
## الموقع
|
||||||
|
|
||||||
|
[رابط الموقع المنشور](https://docker-9d275c9c-web-38fb60c3.hosted.cumin.dev/)
|
||||||
|
|
||||||
|
### تجربة النشر
|
||||||
|
|
||||||
|
كانت عملية النشر على غيمة سهلة جدًا، وربما سهلة أكثر من اللازم. على سبيل المثال لم يُطلب مني تأكيد البريد الإلكتروني قبل نشر الموقع، وهو أمر يمكن إساءة استخدامه.
|
||||||
|
|
||||||
|
**تحديث:** بعد أكثر من 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 التالي :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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 محادقات في نفس الوقت وحاليا الطريقة الوحيدة لحذف المحاثات القديمة هو من الواجهة الرسمية ولكن يمكن اعادة استخدام محادثة قديمة بمجرد استخدان رقم المعرف الخاص بها والذي يتم تسجيله بكل الحوال في السكريبت.
|
||||||
|
|
||||||
|
تمكنت من:
|
||||||
|
|
||||||
|
- إنشاء محادثات جديدة.
|
||||||
|
- إعادة استخدام معرفات المحادثات.
|
||||||
|
- الحفاظ على سياق المحادثة.
|
||||||
|
|
||||||
|
### الموجه الابتدائي
|
||||||
|
|
||||||
|
تم استخدام النموذج كمساعد متخصص في البحث والتطوير واقتراح أفكار بحثية جديدة باللغة العربية.
|
||||||
|
|
||||||
|
```text
|
||||||
|
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.
|
||||||
|
```
|
||||||
|
|
||||||
|
[بوت مقترح أفكار بحثية](https://app.gitpasha.com/Bilal_Alasha/R-D_Bot)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# المحطة 5
|
||||||
|
|
||||||
|
## وكيل aiXplain
|
||||||
|
|
||||||
|
تم إنشاء وكيل واختباره بنجاح.
|
||||||
|
|
||||||
|
[رابط العميل](https://studio.aixplain.com/browse/agent/6a2698e71ea81106dbbaca0d?by=67117)
|
||||||
|
|
||||||
|
رقم العميل : 6a2698e71ea81106dbbaca0d
|
||||||
|
|
||||||
|
## نظرة عامة على MCP
|
||||||
|
|
||||||
|
يسمح MCP بربط الأدوات والنماذج والخدمات المختلفة من خلال واجهة موحدة.
|
||||||
|
|
||||||
|
### طرق التكامل
|
||||||
|
|
||||||
|
1. ربط الخدمات مباشرة من Studio.
|
||||||
|
2. إضافة أدوات مخصصة عبر SDK.
|
||||||
|
|
||||||
|
### القيود
|
||||||
|
|
||||||
|
لم أتمكن من إنشاء مفتاح API بسبب الحاجة إلى رصيد مدفوع، لذلك اعتمدت على الواجهة الرسومية.
|
||||||
|
|
||||||
|
بعدما توجهت إلى قسم العملاء في الموقع قررت تسمية العميل ب (Weather & Info Assistant) اسم بسيط لوظيفة مفيدة , بشكل أساسي كل ما كان علي فعله هو اضافة mcp server يدويا الى العميل ونموذج الllm الموجود مسبقا , الخطوة التالية كانت محاولتي لاستخدام MCP متاح للعام من الانترنت ولكن لم اتمكن من ايجاد احدهم مجاني وما زالي يعمل فكان الخيار التالي لدي هو تشغيله يدويا علة جهازي وايجاد طريقة ما لربطه بالعميل على الموقع
|
||||||
|
|
||||||
|
## إعداد خادم MCP محلي
|
||||||
|
|
||||||
|
### سيرفر للوقت
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mcp-proxy --port 3000 uvx mcp-server-time
|
||||||
|
```
|
||||||
|
|
||||||
|
كان هذا السيرفر هو تجربتي الاولى فقط لانه كان اسهل ايجاد شرح لتشغيله ثم لاحقا قمت لتبديله بسيرفر للطقس , ولكن عندما حاولت تشغيله اكتشفت أن ويندوز لا يتوافر فيه بشكل افتراضي شيئ يدعى uvx علما أنه لا علم لي ما هو بالظبط ولكن ببحث سريع اكتشفت انه يمكن حل هذه المشكلة بتشغيل الأمر التالي :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
||||||
|
```
|
||||||
|
|
||||||
|
### الوصول للسيرفر عبر الانترنت
|
||||||
|
|
||||||
|
وبعد تشغيل الأمر السابق أصبح يمكنني الوصول له بشكل محل ولكن لكي يتمكن العميل من التواصل معه عليه أن يمر عبر شبكة الانترنت وهنى بعد بحث سريع تعرفت على اداة جديدة علي اسمها ngrok والتي تسمح باعطاء عنوان عام لسيرفر ما يعمل بشكل محلي فقمت بانشاء حسب وتفعيله وثم محليا قمت بتشغيل السيرفر عبر الامر التالي :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ngrok config add-authtoken "<YOUR_AUTHTOKEN>"
|
||||||
|
ngrok http 3000
|
||||||
|
```
|
||||||
|
|
||||||
|
### خدمة الطقس
|
||||||
|
|
||||||
|
وأخير كل شيئ أصبح يعمل بشكل مثالي وكل ما علي فعله هو ربط العميل محليا بالmcp الخاص بس عبر الرابط "https://compel-reemerge-june.ngrok-free.dev/mcp" الذي قام ngrok بتوليده وبما ان هذا العميل اصبح يعمل كل ما علي فعله هو تشغيل عميل الطقس بدلا من الوقت عبر الأمر التالي :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mcp-proxy --port 3000 uvx casual-mcp-server-weather --transport streamablehttp
|
||||||
|
```
|
||||||
|
|
||||||
|
وهكذا أصبح يمكن للعميل الحصول على معلومات الطقس والتوقعات الجوية وجودة الهواء أيضا
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# المحطة 6
|
||||||
|
|
||||||
|
## ملاحظات
|
||||||
|
|
||||||
|
كما هو الحال مع غيمة، أرى أن التحقق من البريد الإلكتروني يجب أن يكون إلزاميًا.
|
||||||
|
|
||||||
|
كما واجهت بعض المشاكل عند رفع عدد كبير من الملفات دفعة واحدة عبر الواجهة.
|
||||||
|
|
||||||
|
## المشروع المختار
|
||||||
|
|
||||||
|
مشروع تصنيف أمراض أوراق النباتات وتقدير الثقة باستخدام الشبكات العصبية والمنطق الضبابي.
|
||||||
|
|
||||||
|
[رابط المشروع المستضاف على المنصة](https://app.gitpasha.com/Bilal_Alasha/Plant-Leaf-Disease-Classification-and-confedence-Estimation-using-Neural-Networks-with-Fuzzy-Logic/src/branch/main/)
|
||||||
|
|
||||||
|
### سبب الاختيار
|
||||||
|
|
||||||
|
بصراحة، ليس لديّ الكثير من المشاريع الجيدة. لو أردتُ اختيار مشروع واحد بناءً على مدى تأثيرعلي معنويا ، لاخترتُ مشروعًا آخر، لكن المشروع الآخر كان سيئًا للغاية. في ذلك المشروع، قمتُ بمحاكاة خوارزمية 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. تنظيمها داخل تقرير نصي.
|
||||||
|
|
||||||
|
### المستودع
|
||||||
|
|
||||||
|
[رابط المستودع للمحطة التاسعة](https://app.gitpasha.com/Bilal_Alasha/Station_9_finale-version)
|
||||||
|
|
||||||
|
### ما تعلمته
|
||||||
|
|
||||||
|
- وجود العديد من الخدمات العربية غير المعروفة على نطاق واسع.
|
||||||
|
- بناء تجربة استخدام تضاهي الشركات الكبرى يتطلب جهدًا أكبر بكثير مما يبدو للوهلة الأولى.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ملاحظات ختامية
|
||||||
|
|
||||||
|
جميع الآراء والملاحظات الواردة في هذا المستودع تعكس تجربتي الشخصية أثناء تنفيذ التحدي.
|
||||||
298
README.md
Normal file
298
README.md
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
# The Arab Technician's Journey (رحلة التقني العربي)
|
||||||
|
|
||||||
|
🌐 Language: **English** | [العربية](README.ar.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Submission Information
|
||||||
|
|
||||||
|
Submission for the Arabic Tech Quest Contest.
|
||||||
|
|
||||||
|
This repository documents my progress, findings, code, observations, and deliverables across all stations of the challenge.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [Station 1](#station-1)
|
||||||
|
- [Station 2](#station-2)
|
||||||
|
- [Station 3](#station-3)
|
||||||
|
- [Station 4](#station-4)
|
||||||
|
- [Station 5](#station-5)
|
||||||
|
- [Station 6](#station-6)
|
||||||
|
- [Station 7](#station-7)
|
||||||
|
- [Station 8](#station-8)
|
||||||
|
- [Station 9](#station-9)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 1
|
||||||
|
|
||||||
|
## Account & Posts
|
||||||
|
|
||||||
|
- [Qabilah Profile](https://qabilah.com/profile/bilal-alasha/professional-profile)
|
||||||
|
- [First Post](https://qabilah.com/posts/%D8%A8%D9%84%D8%A7%D9%84-%D8%A7%D9%84%D8%B9%D8%B4%D8%A7-%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D9%81%D9%8A-%D8%A3%D8%A8%D8%AD%D8%A7%D8%AB-saif-%D9%88%D8%A7%D9%84%D8%AA%D8%B9%D9%84%D9%85-%D8%A7%D9%84%D8%A2%D9%84%D9%8A~254541840693334016)
|
||||||
|
|
||||||
|
## Platform Review
|
||||||
|
|
||||||
|
### What I Liked
|
||||||
|
|
||||||
|
- Overall design is good and easy to navigate.
|
||||||
|
- The `قبائل` (Tribes) concept is excellent.
|
||||||
|
- Auto-tagging works impressively; even a simple post was categorized correctly.
|
||||||
|
- Genuine interactions are encouraged while spam and pirated content are discouraged.
|
||||||
|
- The ability to contribute as little as $1 feels like an honest donation model.
|
||||||
|
|
||||||
|
### What Could Be Improved
|
||||||
|
|
||||||
|
- The hackathon countdown shown during browsing felt distracting.
|
||||||
|
- Missing bilingual profiles (Arabic + English names).
|
||||||
|
- Very low traffic currently.
|
||||||
|
- The paid plan offers limited practical value.
|
||||||
|
- Long-term sustainability may become challenging, especially if video uploads are added.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 2
|
||||||
|
|
||||||
|
## Website
|
||||||
|
|
||||||
|
[Live Website](https://docker-9d275c9c-web-38fb60c3.hosted.cumin.dev/)
|
||||||
|
|
||||||
|
### Deployment Experience
|
||||||
|
|
||||||
|
The deployment process on Ghaymah was extremely easy—perhaps too easy. For example, I did not need to verify my email before deploying a website, which could potentially be abused for spam.
|
||||||
|
|
||||||
|
**Update:** After more than 12 hours, the website was still not active. I double-checked my setup and contacted support.
|
||||||
|
|
||||||
|
**Update 2:** Support never responded. Eventually, the person who assigned the tasks helped me identify the issue. The problem was on my side: I zipped the entire folder instead of placing `index.html` correctly in the root directory.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 3
|
||||||
|
|
||||||
|
## Part A – Mithal Search Evaluation
|
||||||
|
|
||||||
|
I chose browser automation using Playwright (Python) to execute 100 diverse Arabic queries on Mithal.
|
||||||
|
|
||||||
|
The script:
|
||||||
|
|
||||||
|
- Generated 100 topics covering science, history, culture, technology, and daily life.
|
||||||
|
- Opened each search URL with a 2-second delay.
|
||||||
|
- Captured a full-page screenshot for every SERP.
|
||||||
|
- Extracted structured data into a CSV file.
|
||||||
|
- Logged errors and retried failed queries up to two times.
|
||||||
|
|
||||||
|
> **DISCLAIMER:** I would not have been able to complete this script in such a short time without assistance from LLMs. Browser automation was completely new to me, so I had to learn the basics from scratch while guiding the model to generate the code.
|
||||||
|
|
||||||
|
### Results
|
||||||
|
|
||||||
|
[CSV Results](https://app.gitpasha.com/Bilal_Alasha/Search_Script_-_results)
|
||||||
|
|
||||||
|
### Observations
|
||||||
|
|
||||||
|
- The search engine appears heavily dependent on exact keyword matching.
|
||||||
|
- Context awareness is limited.
|
||||||
|
- English typo correction works better than Arabic typo correction.
|
||||||
|
- Only a single page of results is available.
|
||||||
|
- Video results are not supported.
|
||||||
|
- I like that the AI component is optional instead of being forced on the user.
|
||||||
|
- The UI feels outdated and could benefit from modernization.
|
||||||
|
|
||||||
|
## Part B – Agentic Mithal
|
||||||
|
|
||||||
|
The current way Mithal is working is just a very simple or average at best search engine. The only point going for it is the no-tracking policy, and to be honest it's more of a 'trust me bro' – nothing is solid or explained about it. There is also the Arabic-first approach, but it's not super realistic since people would want to search in other languages too all the time, so I don't really count that as a feature.
|
||||||
|
|
||||||
|
The question you are asking is how to evolve it into an agentic experience. Now this is much more interesting. For example, currently when a user asks "ما هو أفضل هاتف في الرياض لعام 2024", the engine simply matches words and shops and provides links. Yet if we use Agentic Mithal → it breaks down into sub‑tasks: search phone reviews, check current prices via API, filter by "available in Riyadh", then synthesizes a ranked answer with citations. That would also include stuff like currency converter, geolocation, and price APIs.
|
||||||
|
|
||||||
|
Now to do this without any problems would require a lot of APIs and work with the main stores, for example. And if we are Arabic-first, that shouldn't be super hard, but still a lot of work. As far as I know, currently AIs can't really do the 'browse like a human and get info' thing without messing something up. But having it implemented as a search engine is actually a good idea if it does not scrape websites and gets official APIs.
|
||||||
|
|
||||||
|
One of the problems you would be facing is personalization without tracking, since that would require on‑device profiles, session‑based memory, or user‑declared interests.
|
||||||
|
|
||||||
|
There is also the simple issue of Arabic language difficulties, such as: morphological richness (same root gives many meanings), dialects (Egyptian, Levantine, Gulf) – the agent must detect or ask. Right‑to‑left script and bidirectional text issues, and limited high‑quality Arabic datasets for training retrieval models.
|
||||||
|
|
||||||
|
So if I were to start with this engine, I would start with Modern Standard Arabic + limited dialect support, then expand.
|
||||||
|
|
||||||
|
Finally, the biggest problem is going to be hallucination & multi‑source synthesis. First of all, using something like RAG would help us avoid that, since the agent only answers from retrieved documents, never from "memory". As for multi‑source synthesis, I would prefer using official APIs from the sources for two main reasons: first, not eating away traffic from the official source, and also to avoid the scraping that would be annoying to do – both because of websites' security and the simple fact that it can get some stuff wrong. And of course, every claim must have a clickable source and a disclaimer that it's AI, and even with all of that it could still get something wrong.
|
||||||
|
|
||||||
|
Despite these challenges – hallucinations, Arabic language complexity, and the need for official API integrations – building an agentic Mithal is not only possible but necessary. If executed with transparency, clear citations, and a gradual expansion from Modern Standard Arabic to dialects, Mithal could evolve from a mediocre 'trust me bro' engine into a truly trustworthy, privacy‑first, Arabic‑centric assistant. That would be a search experience worth using.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 4
|
||||||
|
|
||||||
|
## Token Request
|
||||||
|
|
||||||
|
### Command Used
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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\"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
The endpoint returned both an ID and a token. However, using the same username and platform repeatedly still generated new IDs and tokens each time, so I was unsure about the purpose of that behavior.
|
||||||
|
|
||||||
|
## LLM Interaction Script
|
||||||
|
|
||||||
|
Instead of using the official UI, I built a Python script that interacts directly with the service.
|
||||||
|
|
||||||
|
Since there was no official API documentation, I inspected browser network requests and eventually managed to:
|
||||||
|
|
||||||
|
- Create new chats.
|
||||||
|
- Reuse existing chat IDs.
|
||||||
|
- Maintain conversations through the script.
|
||||||
|
|
||||||
|
### Initial Prompt
|
||||||
|
|
||||||
|
```text
|
||||||
|
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.
|
||||||
|
```
|
||||||
|
|
||||||
|
[R&D Bot Repository](https://app.gitpasha.com/Bilal_Alasha/R-D_Bot)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 5
|
||||||
|
|
||||||
|
## aiXplain Agent
|
||||||
|
|
||||||
|
[Agent Link](https://studio.aixplain.com/browse/agent/6a2698e71ea81106dbbaca0d?by=67117)
|
||||||
|
|
||||||
|
Agent ID:
|
||||||
|
|
||||||
|
```text
|
||||||
|
6a2698e71ea81106dbbaca0d
|
||||||
|
```
|
||||||
|
|
||||||
|
## MCP Overview
|
||||||
|
|
||||||
|
An MCP server can connect multiple tools, models, and agents through a single PAYG API key.
|
||||||
|
|
||||||
|
### Main Integration Methods
|
||||||
|
|
||||||
|
1. Connect external services through Studio.
|
||||||
|
2. Add external APIs as SDK tools.
|
||||||
|
|
||||||
|
### Limitation
|
||||||
|
|
||||||
|
I could not generate an API key because the feature required credit, so I continued using the UI only.
|
||||||
|
|
||||||
|
I went to create new agent I got our frind "Weather & Info Assistant" up and running , the the main Instruction I made sure it uses the MCP tool .
|
||||||
|
then to add an MCP server to the work flow of the agent I simply pressed the + button and searched for it ... too easy if you ask me . then I simply gave it a name , then at the start I tried using public MCP servers but it did not work since the ones I found seems to be offline so my only option was to run one localy from my machine .. so that's what I did
|
||||||
|
|
||||||
|
## Local MCP Setup
|
||||||
|
|
||||||
|
### Time Server
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mcp-proxy --port 3000 uvx mcp-server-time
|
||||||
|
```
|
||||||
|
|
||||||
|
but that did not work since uvx is not on windows by default ( I have no idea what that is I just wanted to be done with this so don't ask lol) so I had to run this command :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Exposing the Server
|
||||||
|
|
||||||
|
then finally I was able to run the server ... localy , now to be able to access it over the web I had to use some kinda tool and after some searching I found my good friend ngrok , so I went to there website and download it , and ofc .. they want me to sign up to get my auth key ... sure why not so I signed up .. then I had to run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ngrok config add-authtoken "<YOUR_AUTHTOKEN>"
|
||||||
|
ngrok http 3000
|
||||||
|
```
|
||||||
|
|
||||||
|
### Weather Server
|
||||||
|
|
||||||
|
and finally we are online up and running .. now going back to Xstudio where we connect the mcp server to :"https://compel-reemerge-june.ngrok-free.dev/mcp" and finally we have it up and running .
|
||||||
|
now we actually need to make it tell the weather since for now I just tested the time to do so we just re run the server using this command :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mcp-proxy --port 3000 uvx casual-mcp-server-weather --transport streamablehttp
|
||||||
|
```
|
||||||
|
|
||||||
|
After reconnecting through aiXplain Studio, I successfully accessed:
|
||||||
|
|
||||||
|
- Current weather.
|
||||||
|
- Forecasts.
|
||||||
|
- UV index.
|
||||||
|
- Air quality.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 6
|
||||||
|
|
||||||
|
## Feedback
|
||||||
|
|
||||||
|
Again, like Ghaymah, please use some kind of email verification. I was able to sign up without confirming anything.
|
||||||
|
|
||||||
|
I also noticed issues when uploading multiple files through the UI. Uploading more than five files at once often failed, while uploading files individually or through the command line worked reliably.
|
||||||
|
|
||||||
|
## Selected Project
|
||||||
|
|
||||||
|
[Plant Leaf Disease Classification and Confidence Estimation using Neural Networks with Fuzzy Logic](https://app.gitpasha.com/Bilal_Alasha/Plant-Leaf-Disease-Classification-and-confedence-Estimation-using-Neural-Networks-with-Fuzzy-Logic/src/branch/main/)
|
||||||
|
|
||||||
|
### Why This Project?
|
||||||
|
|
||||||
|
To be hounest I don't have many (good projects) , If I wanted to pick one from how inflinsul on it it was I would have picked another project but it was very bad in the other project I simulated the VFH algorithm with a robot , it was funny looking back at that time how little did I know about anything and tried to to that in 2 days only .
|
||||||
|
|
||||||
|
as for this project it kind of reminded me of that since we hade to do it a very short ammount of time with a lot going on , I am not statsifed with it not even a little from a sinctific stad point but I leaned a lot from it and actually done my part in the time we were givin , my co author was not able to do it tho so it's kinda janky from his part .
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 7
|
||||||
|
|
||||||
|
## Projects Reviewed
|
||||||
|
|
||||||
|
### Project 1
|
||||||
|
|
||||||
|
https://www.mortakaz.com/projects/691172dd0954c2682eb139d2?tab=reviews
|
||||||
|
|
||||||
|
### Project 2
|
||||||
|
|
||||||
|
https://www.mortakaz.com/projects/6985c7ae76d5a85c6107f577?tab=reviews
|
||||||
|
|
||||||
|
### Why I Chose Them
|
||||||
|
|
||||||
|
- Project 1 aligns with my strong interest in privacy, tracking, and data collection.
|
||||||
|
- Project 2 introduced an interesting new framework from an Arab developer and seemed promising enough to support with feedback.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 8
|
||||||
|
|
||||||
|
The detald PDF file have been uploaded to the same repo
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Station 9
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
|
||||||
|
I connected my LLM script with my Mithal search engine script.
|
||||||
|
|
||||||
|
The workflow:
|
||||||
|
|
||||||
|
1. Generate research directions.
|
||||||
|
2. Search Mithal using three different search terms.
|
||||||
|
3. Retrieve the top three results for each search.
|
||||||
|
4. Organize everything into a text report.
|
||||||
|
|
||||||
|
I chose this idea because my primary reason for applying was R&D, and I already had much of the required code available.
|
||||||
|
|
||||||
|
### Repository
|
||||||
|
|
||||||
|
[Station 9 Repository](https://app.gitpasha.com/Bilal_Alasha/Station_9_finale-version)
|
||||||
|
|
||||||
|
### What I Learned
|
||||||
|
|
||||||
|
- There are many Arabic services available that most people have never heard of.
|
||||||
|
- Building a polished experience comparable to major companies such as Google, Microsoft, or Amazon requires far more work than it initially appears.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
All opinions and observations included in this repository reflect my personal experience while completing the challenge.
|
||||||
المرجع في مشكلة جديدة
حظر مستخدم