⏱ وقت القراءة: 31 دقائق📝 6,376 كلمة📊 المستوى: متقدم📅 2026-05-05
💡 النقاط الرئيسية:
- قبل ما نبدأ بالتقنيات والكود
- قبل ما تبدأ تبني AI خاص فيك
- هلأ بنبدأ بالعملي
- هلأ بعد ما جربت Ollama وشغلت أول نموذج
- هلأ عندك AI يشتغل وعنده واجهة حلوة
- RAG ممتاز لما بدك الـ AI يجاوب من بيانات معينة
كيف تنشئ ذكاء اصطناعي خاص فيك خطوة بخطوة 2026 — من الصفر للاحتراف
💡 النقاط الرئيسية:
- قبل ما نبدأ بالتقنيات والكود
- قبل ما تبدأ تبني AI خاص فيك
- هلأ بنبدأ بالعملي
- هلأ بعد ما جربت Ollama وشغلت أول نموذج
- هلأ عندك AI يشتغل وعنده واجهة حلوة
- RAG ممتاز لما بدك الـ AI يجاوب من بيانات معينة
في 2026، خليني أقولك شغلة مهمة: ما عاد تحتاج تكون عالم بيانات أو تشتغل بـ Google أو OpenAI عشان تبني ذكاء اصطناعي خاص فيك. الموضوع تغير بشكل جذري عن قبل سنتين. اليوم أي شخص عنده لابتوب محترم وإنترنت بقدر يشغّل نموذج AI على جهازه، يدربه على بياناته، ويستخدمه بدون ما يدفع ولا قرش لأي شركة. يعني الذكاء الاصطناعي صار ملكك — مش ملك شركات التكنولوجيا الكبيرة.
النماذج مفتوحة المصدر مثل Llama 3.1 من Meta، وMistral، وQwen 2.5 من Alibaba وصلت لمستوى خرافي — بعض هاي النماذج بتنافس GPT-4 بمهام كثيرة، وبتقدر تشغلها على لابتوبك بدون إنترنت حتى. يعني تخيل: نفس التكنولوجيا اللي كانت حكر على شركات بمليارات الدولارات، هلأ بين إيديك مجاناً. والأحلى إنك بتقدر تدربها على بياناتك الخاصة وتخليها تفهم مجالك بالضبط.
هاد المقال رح يعلمك كيف تبني chatbot خاص فيك من الصفر، تشغل نماذج AI على جهازك، تدربه على بياناتك باستخدام RAG و Fine-tuning، تبني AI Agents ذكية، وتنشر كل شيء على الإنترنت — كل خطوة بالكود وبالتفصيل. سواء كنت مبرمج مبتدئ أو محترف، هاد الدليل رح يوديك من الصفر للاحتراف. جهز حالك لأنه الرحلة طويلة بس ممتعة!
ليش تبني AI خاص فيك بدل ما تستخدم ChatGPT؟
قبل ما نبدأ بالتقنيات والكود، خليني أجاوبك على سؤال مهم: ليش أصلاً أتعب حالي وأبني AI خاص وأنا بقدر أستخدم ChatGPT أو Claude أو Gemini؟ الجواب بسيط: لأنه في أشياء ما بتقدر تسويها مع الخدمات الجاهزة، وفي مزايا ما رح تحصلها إلا لما يكون الـ AI ملكك بالكامل.
1. الخصوصية الكاملة
لما تستخدم ChatGPT، كل محادثاتك بتروح على سيرفرات OpenAI. كل سؤال بتسأله، كل ملف بترفعه، كل فكرة بتشاركها — كلها مخزنة عندهم. بس لما تشغل AI محلي على جهازك، بياناتك ما بتطلع من جهازك أبداً. هاد الشيء حاسم لو بتشتغل على مشاريع سرية، بيانات عملاء، أو أي معلومات حساسة.
2. التخصيص الكامل
بتقدر تدرب النموذج على مجالك بالضبط. يعني لو أنت طبيب، بتدربه على كتب طبية. لو أنت محامي، بتدربه على القوانين. لو أنت مبرمج، بتدربه على الكود تبعك. النتيجة: AI بفهم شغلك أحسن من أي نموذج عام.
3. التكلفة صفر بعد الإعداد
ChatGPT Plus بكلفك $20 شهرياً، Claude Pro بكلفك $20 شهرياً، يعني $240 بالسنة على الأقل. بس AI المحلي بعد ما تعمل الإعداد الأولي — مجاني للأبد. بتستخدمه قد ما بدك بدون حدود وبدون اشتراكات.
4. السيطرة الكاملة — بدون فلاتر أو قيود
النماذج التجارية عندها فلاتر وقيود كثيرة. أحياناً بترفض تجاوبك على أسئلة بسيطة. بس لما يكون النموذج عندك، أنت اللي بتحدد القواعد. بتتحكم بكل شيء من الـ system prompt لحد طريقة الرد.
5. الاستقلالية
ما بتعتمد على شركة ممكن تغير سياساتها بكرة، أو ترفع الأسعار، أو توقف الخدمة. الـ AI تبعك يشتغل حتى لو انقطع الإنترنت. وما في خطر إنه يوم من الأيام تفتح الموقع وتلاقي رسالة "تم إيقاف الخدمة" أو "تم تغيير الأسعار".
| المقارنة | ChatGPT / Claude | AI محلي خاص فيك |
|---|---|---|
| الخصوصية | بياناتك على سيرفراتهم | بياناتك على جهازك فقط |
| التكلفة | $20+/شهر | مجاني بعد الإعداد |
| التخصيص | محدود (Custom GPTs) | كامل — تدريب على بياناتك |
| القيود | فلاتر وسياسات صارمة | أنت تحدد القواعد |
| الإنترنت | مطلوب دائماً | يشتغل بدون إنترنت |
| السرعة | يعتمد على السيرفر والضغط | يعتمد على جهازك — ثابت |
| حدود الاستخدام | محدود بعدد الرسائل | بلا حدود |
المتطلبات — شو بتحتاج عشان تبدأ؟
قبل ما تبدأ تبني AI خاص فيك، لازم تعرف شو المتطلبات. الخبر الحلو إنك ما بتحتاج جهاز خارق — حتى لابتوب متوسط بقدر يشغل نماذج AI صغيرة. بس طبعاً كل ما كان جهازك أقوى، كل ما كانت النتائج أسرع والنماذج أكبر. خليني أفصلك المتطلبات بالضبط عشان تعرف وين أنت واقف.
المتطلبات التقنية (Hardware)
الحد الأدنى: 16GB RAM + أي كرت شاشة NVIDIA (حتى GTX 1060 6GB). هاد بخليك تشغل نماذج 7B-8B parameters بشكل مقبول. لو ما عندك GPU، بتقدر تشغل على CPU بس رح يكون أبطأ بكثير.
المثالي: 32GB RAM + RTX 3060 12GB أو RTX 4070 أو أعلى. هاد بخليك تشغل نماذج 13B-70B (مع quantization) بسرعة ممتازة وتعمل fine-tuning على نماذج صغيرة.
بدون GPU: ممكن تشغل AI على المعالج (CPU) باستخدام llama.cpp — بس رح يكون أبطأ 5-10 مرات. مناسب للتجربة والتعلم مش للاستخدام اليومي المكثف.
Cloud Option: لو جهازك ضعيف، استخدم Google Colab (مجاني مع T4 GPU) أو RunPod (GPU بالساعة — يبدأ من $0.2/ساعة). هاي أفضل خيار للتدريب والـ fine-tuning.
المتطلبات البرمجية (Software)
هاي البرامج الأساسية اللي لازم تكون مثبتة على جهازك قبل ما تبدأ:
# Python 3.10 or higher python --version # Should be 3.10+ # Git (for cloning repos) git --version # CUDA Toolkit (for NVIDIA GPU users only) nvcc --version # Should be 12.x # pip (Python package manager) pip --version # Docker (optional - for Open WebUI) docker --version
| المواصفات | الحد الأدنى | المثالي | Cloud |
|---|---|---|---|
| RAM | 16GB | 32GB+ | حسب الخطة |
| GPU VRAM | 6GB (GTX 1060) | 12GB+ (RTX 3060) | 16GB (T4/A100) |
| مساحة تخزين | 50GB فاضي | 200GB+ SSD | حسب الخطة |
| النماذج المدعومة | 7B-8B | 13B-70B | حتى 405B |
| سرعة التوليد | 5-10 tokens/sec | 30-60 tokens/sec | 50-100 tokens/sec |
تنبيه مهم: لو عندك كرت شاشة AMD، الدعم موجود بس أقل استقراراً من NVIDIA — استخدم ROCm بدل CUDA. ولو عندك Mac مع Apple Silicon (M1/M2/M3/M4)، الأداء ممتاز جداً مع Ollama لأنه بستخدم Metal GPU والـ unified memory.
الخطوة الأولى — تشغيل أول نموذج AI على جهازك (Ollama)
هلأ بنبدأ بالعملي! أسهل وأسرع طريقة تشغل AI محلي على جهازك هي باستخدام Ollama. هاي أداة مجانية ومفتوحة المصدر بتخليك تحمل وتشغل نماذج AI بأمر واحد — بدون إعدادات معقدة أو تثبيت مكتبات كثيرة. فكر فيها مثل Docker بس للـ AI models. بتدعم Windows و Mac و Linux، وبتشتغل مع أغلب النماذج المفتوحة.
تثبيت Ollama على جهازك
# ===== Windows ===== # حمل المثبت من: https://ollama.com/download/windows # شغل الملف واتبع الخطوات - بيثبت تلقائياً # ===== macOS ===== brew install ollama # أو حمل من: https://ollama.com/download/mac # ===== Linux (Ubuntu/Debian) ===== curl -fsSL https://ollama.com/install.sh | sh # ===== تأكد من التثبيت ===== ollama --version # Output: ollama version 0.5.x
بعد التثبيت، Ollama بيشتغل كـ background service تلقائياً. على Windows بتلاقي أيقونته بجانب الساعة. تأكد إنه شغال قبل ما تكمل.
تحميل وتشغيل أول نموذج (Llama 3.1 8B)
هلأ الخطوة الأهم — بنحمل نموذج Llama 3.1 8B. هاد من أقوى النماذج المفتوحة من Meta، حجمه حوالي 4.7GB بعد الضغط (quantized). أول مرة بتشغله رح يحمله من الإنترنت — بعدها بيشتغل فوراً بدون إنترنت:
# تحميل وتشغيل Llama 3.1 8B (أول مرة بياخد وقت للتحميل) ollama run llama3.1 # لو بدك نسخة أخف (أسرع بس أقل دقة): ollama run llama3.1:8b-instruct-q4_0 # نماذج ثانية ممكن تجربها: ollama run mistral # Mistral 7B - سريع وذكي ollama run qwen2.5:7b # Qwen 2.5 7B - ممتاز بالعربي ollama run codellama # CodeLlama - متخصص بالبرمجة ollama run phi3 # Phi-3 Mini - صغير (3.8B) بس قوي ollama run gemma2:9b # Gemma 2 9B - من Google # شوف كل النماذج المحملة عندك: ollama list # احذف نموذج ما بتحتاجه: ollama rm mistral
بعد ما يحمل النموذج، رح يفتحلك chat مباشرة بالتيرمنال. جرب اسأله أي سؤال وشوف السحر:
>>> مرحبا! اشرحلي شو هو الذكاء الاصطناعي بجملتين الذكاء الاصطناعي هو مجال في علوم الحاسوب يهدف لإنشاء أنظمة قادرة على محاكاة الذكاء البشري في التعلم والتفكير واتخاذ القرارات. يشمل تقنيات مثل التعلم العميق ومعالجة اللغة الطبيعية. >>> اكتبلي كود Python يطبع الأعداد الأولية من 1 لـ 100 >>> /bye # للخروج من المحادثة
استخدام Ollama من كود Python
القوة الحقيقية لـ Ollama إنك بتقدر تستخدمه من كود Python عشان تبني تطبيقات كاملة. Ollama بيشغل API server على http://localhost:11434 — يعني بتقدر تتواصل معه من أي لغة:
# تثبيت مكتبة Ollama لـ Python
# pip install ollama
import ollama
# === محادثة بسيطة ===
response = ollama.chat(model='llama3.1', messages=[
{
'role': 'system',
'content': 'أنت مساعد ذكي باللغة العربية. أجب بشكل مختصر ومفيد.'
},
{
'role': 'user',
'content': 'اشرحلي شو هو Python بجملة وحدة'
}
])
print(response['message']['content'])
# === Streaming - الرد كلمة كلمة (زي ChatGPT) ===
stream = ollama.chat(
model='llama3.1',
messages=[{'role': 'user', 'content': 'اكتبلي قصيدة قصيرة عن البرمجة'}],
stream=True
)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)
# === محادثة متعددة الرسائل (مع ذاكرة) ===
messages = [
{'role': 'system', 'content': 'أنت خبير برمجة Python.'},
{'role': 'user', 'content': 'شو هي الـ list comprehension؟'},
]
response = ollama.chat(model='llama3.1', messages=messages)
print(response['message']['content'])
# أضف رد الـ AI للمحادثة عشان يتذكر
messages.append(response['message'])
messages.append({'role': 'user', 'content': 'اعطيني مثال عملي عليها'})
response2 = ollama.chat(model='llama3.1', messages=messages)
print(response2['message']['content'])
نصيحة: Ollama بيدعم أيضاً OpenAI-compatible API — يعني أي كود مكتوب لـ OpenAI API بتقدر تشغله مع Ollama بتغيير الـ base_url فقط لـ http://localhost:11434/v1. هاد بسهل عليك الانتقال من ChatGPT API لنموذج محلي.
النماذج المفتوحة المصدر — أيها تختار؟
هلأ بعد ما جربت Ollama وشغلت أول نموذج، السؤال المهم: أي نموذج أختار؟ في عشرات النماذج المفتوحة المصدر، وكل واحد عنده نقاط قوة مختلفة. خليني أعطيك نظرة شاملة على أهم النماذج المتاحة في 2026 عشان تختار اللي يناسب احتياجاتك.
Llama 3.1 (Meta)
أقوى عائلة نماذج مفتوحة المصدر حالياً. متوفر بثلاث أحجام: 8B (للأجهزة العادية)، 70B (للأجهزة القوية أو Cloud)، و405B (أقوى نموذج مفتوح — بحتاج سيرفر). النسخة 8B بتشتغل ممتاز على أي GPU بـ 6GB+ VRAM. ممتاز بالإنجليزي وجيد بالعربي.
Mistral / Mixtral (Mistral AI)
شركة فرنسية عملت نماذج سريعة وذكية جداً. Mistral 7B أسرع من Llama بنفس الحجم. Mixtral 8x7B بستخدم تقنية Mixture of Experts — يعني بيشغل جزء من النموذج بس لكل سؤال، فبيكون سريع رغم حجمه الكبير. ممتاز للمهام اللي بتحتاج سرعة.
Qwen 2.5 (Alibaba)
هاد النموذج من Alibaba Cloud وهو أفضل نموذج مفتوح للعربي حالياً. مدرب على بيانات عربية كثيرة وبفهم اللهجات. متوفر بأحجام من 0.5B لحد 72B. لو شغلك الأساسي بالعربي، هاد خيارك الأول.
Gemma 2 (Google)
من Google، خفيف وفعال. متوفر بحجم 2B و 9B و 27B. النسخة 9B بتعطي أداء قريب من نماذج أكبر بكثير. مناسب لو بدك نموذج سريع ما بياخد موارد كثيرة.
Phi-3 / Phi-4 (Microsoft)
نماذج صغيرة بس قوية جداً بالنسبة لحجمها. Phi-3 Mini (3.8B) بينافس نماذج 7B بكثير من المهام. مثالي لو جهازك ضعيف أو بدك سرعة عالية جداً.
DeepSeek Coder / CodeLlama
لو هدفك الأساسي البرمجة، هاي النماذج متخصصة بكتابة الكود. DeepSeek Coder بالذات ممتاز — بينافس GPT-4 بمهام البرمجة وهو مجاني ومفتوح.
| النموذج | الحجم | RAM/VRAM المطلوب | التخصص | الأداء بالعربي |
|---|---|---|---|---|
| Llama 3.1 8B | 4.7GB | 6GB VRAM | عام | جيد |
| Llama 3.1 70B | 40GB | 48GB+ VRAM | عام (قوي جداً) | جيد جداً |
| Mistral 7B | 4.1GB | 6GB VRAM | عام (سريع) | متوسط |
| Qwen 2.5 7B | 4.4GB | 6GB VRAM | عام + عربي | ممتاز |
| Gemma 2 9B | 5.4GB | 8GB VRAM | عام (خفيف) | جيد |
| Phi-3 Mini | 2.3GB | 4GB VRAM | عام (صغير) | ضعيف |
| DeepSeek Coder 6.7B | 3.8GB | 6GB VRAM | برمجة | ضعيف |
كيف تختار؟ لو بدك نموذج عام وقوي: Llama 3.1 8B. لو بدك أداء ممتاز بالعربي: Qwen 2.5. لو بدك سرعة: Mistral. لو بدك برمجة: DeepSeek Coder. لو جهازك ضعيف: Phi-3 Mini. جرب أكثر من نموذج وشوف أيهم بناسب شغلك — مع Ollama التبديل بينهم سهل جداً.
بناء Chatbot كامل بواجهة ويب (Open WebUI)
تمام، هلأ عندك AI يشتغل على جهازك من التيرمنال. بس مين بده يكتب بالتيرمنال كل مرة؟ خلينا نبنيله واجهة حلوة زي ChatGPT — وهون بيجي دور Open WebUI. هاي واجهة ويب مفتوحة المصدر بتشتغل محلياً وبتعطيك تجربة مطابقة لـ ChatGPT — بس كل شيء على جهازك.
شو بتوفرلك Open WebUI؟
واجهة جميلة وسهلة الاستخدام، دعم محادثات متعددة، حفظ تاريخ المحادثات، رفع ملفات، دعم RAG مدمج، إدارة نماذج متعددة، ودعم مستخدمين متعددين. يعني بتقدر تشاركها مع فريقك أو عائلتك.
التثبيت باستخدام Docker
أسهل طريقة تثبت Open WebUI هي باستخدام Docker. لو ما عندك Docker، حمله من docker.com أولاً.
# === الطريقة السريعة (أمر واحد) === docker run -d -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main # بعدها افتح المتصفح على: http://localhost:3000
Docker Compose (الطريقة الأفضل)
لو بدك تحكم أكثر، استخدم Docker Compose. اعمل ملف docker-compose.yml:
# docker-compose.yml
version: '3.8'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
volumes:
- open-webui-data:/app/backend/data
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- WEBUI_AUTH=true
- WEBUI_NAME=Shadow AI
restart: always
volumes:
open-webui-data:
# شغل الخدمة docker compose up -d # شوف اللوقات docker compose logs -f open-webui # أوقف الخدمة docker compose down
الإعداد الأولي
بعد ما تفتح http://localhost:3000 بالمتصفح:
1. سجل حساب جديد (أول حساب بيكون Admin تلقائياً)
2. اختار النموذج من القائمة (رح يظهرلك كل النماذج المحملة بـ Ollama)
3. ابدأ محادثة جديدة — مبروك! عندك ChatGPT خاص فيك
إضافة System Prompt مخصص
بتقدر تعمل "شخصيات" مختلفة للـ AI. روح على Settings → Models → اختار النموذج → System Prompt:
# مثال System Prompt لمساعد برمجة: أنت مساعد برمجة خبير اسمك "Shadow AI". - أجب دائماً باللغة العربية (لهجة أردنية/فلسطينية) - اكتب كود نظيف مع شرح لكل سطر - لو السؤال مش واضح، اسأل قبل ما تجاوب - استخدم أمثلة عملية دائماً - لو في خطأ بالكود، وضح الخطأ وكيف تصلحه
بديل بدون Docker: لو ما بدك تستخدم Docker، بتقدر تثبت Open WebUI مباشرة بـ pip: pip install open-webui && open-webui serve. بس Docker أسهل للتحديث والإدارة.
تدريب AI على بياناتك الخاصة (RAG — Retrieval Augmented Generation)
هلأ عندك AI يشتغل وعنده واجهة حلوة. بس المشكلة: هاد النموذج بيعرف معلومات عامة بس — ما بيعرف شيء عن شغلك أو ملفاتك أو بياناتك الخاصة. الحل؟ RAG (Retrieval Augmented Generation) — وهاي أهم تقنية لازم تتعلمها لأنها بتخلي الـ AI يجاوب من بياناتك بدون ما تحتاج تدربه من جديد.
شو هو RAG وكيف يشتغل؟
RAG فكرته بسيطة: بدل ما تدرب النموذج على بياناتك (اللي بياخد وقت وموارد)، بتعطيه بياناتك كـ "مرجع" يبحث فيه قبل ما يجاوب. الخطوات:
1. تحميل البيانات: بتاخد ملفاتك (PDF, Word, TXT, أي شيء) وبتقسمها لقطع صغيرة (chunks)
2. Embeddings: كل قطعة بتتحول لـ vector (أرقام) بتمثل معناها
3. Vector Database: بتخزن هاي الـ vectors بقاعدة بيانات خاصة (ChromaDB مثلاً)
4. البحث: لما تسأل سؤال، النظام بيبحث عن أقرب قطع لسؤالك
5. التوليد: بيعطي القطع المناسبة للـ AI مع سؤالك، والـ AI بيجاوب بناءً عليها
ليش RAG أفضل من Fine-tuning للمبتدئين؟ لأنه أسرع (دقائق مش ساعات)، ما بحتاج GPU قوي، بتقدر تحدث البيانات بسهولة، وما في خطر إنك "تخرب" النموذج. Fine-tuning بنستخدمه لما نبدنا نغير شخصية أو أسلوب النموذج — رح نحكي عنه بالقسم الجاي.
مثال عملي: AI يجاوب من ملفات PDF خاصة فيك
هلأ بنبني نظام RAG كامل بـ Python. رح نستخدم LangChain + ChromaDB + Ollama:
# تثبيت المكتبات المطلوبة
# pip install langchain langchain-community chromadb
# pip install pypdf sentence-transformers
from langchain_community.document_loaders import PyPDFLoader, DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate
# === الخطوة 1: تحميل ملفات PDF ===
# حط ملفاتك بمجلد "documents"
loader = DirectoryLoader(
'./documents',
glob="**/*.pdf",
loader_cls=PyPDFLoader
)
documents = loader.load()
print(f"تم تحميل {len(documents)} صفحة")
# === الخطوة 2: تقسيم النصوص لقطع صغيرة ===
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, # حجم كل قطعة (حروف)
chunk_overlap=200, # تداخل بين القطع
length_function=len
)
chunks = text_splitter.split_documents(documents)
print(f"تم إنشاء {len(chunks)} قطعة نصية")
# === الخطوة 3: إنشاء Embeddings وتخزينها ===
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2"
)
# تخزين في ChromaDB (بيتحفظ على القرص)
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=embeddings,
persist_directory="./chroma_db" # مجلد التخزين
)
print("تم إنشاء قاعدة البيانات بنجاح!")
# === الخطوة 4: إعداد سلسلة السؤال والجواب ===
llm = Ollama(model="llama3.1", temperature=0.3)
# Prompt مخصص بالعربي
prompt_template = """استخدم المعلومات التالية للإجابة على السؤال.
لو ما لقيت الجواب بالمعلومات المتوفرة، قول "ما لقيت معلومات عن هاد الموضوع بالملفات".
لا تخترع معلومات من عندك.
المعلومات المتوفرة:
{context}
السؤال: {question}
الجواب:"""
PROMPT = PromptTemplate(
template=prompt_template,
input_variables=["context", "question"]
)
# إنشاء سلسلة RAG
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever(search_kwargs={"k": 4}),
chain_type_kwargs={"prompt": PROMPT},
return_source_documents=True
)
# === الخطوة 5: اسأل أسئلة! ===
question = "شو هي أهم النقاط بالملف؟"
result = qa_chain({"query": question})
print(f"\nالسؤال: {question}")
print(f"\nالجواب: {result['result']}")
print(f"\nالمصادر:")
for doc in result['source_documents']:
print(f" - صفحة {doc.metadata.get('page', '?')} من {doc.metadata.get('source', '?')}")
تشغيل النظام كـ Chat Loop
# === Chat Loop - محادثة مستمرة مع بياناتك ===
print("=" * 50)
print("مرحباً! اسألني أي سؤال عن ملفاتك")
print("اكتب 'خروج' للإنهاء")
print("=" * 50)
while True:
question = input("\n🔍 سؤالك: ")
if question.strip() in ['خروج', 'exit', 'quit']:
print("مع السلامة!")
break
result = qa_chain({"query": question})
print(f"\n🤖 الجواب: {result['result']}")
# اعرض المصادر
sources = set()
for doc in result['source_documents']:
src = doc.metadata.get('source', 'unknown')
page = doc.metadata.get('page', '?')
sources.add(f"{src} (صفحة {page})")
if sources:
print(f"\n📄 المصادر: {', '.join(sources)}")
نصيحة مهمة: جودة RAG بتعتمد بشكل كبير على حجم الـ chunks وطريقة التقسيم. لو الإجابات مش دقيقة، جرب تغير chunk_size (جرب 500 أو 1500) وزود الـ overlap. كمان، النموذج اللي بتستخدمه للـ embeddings مهم — all-MiniLM-L6-v2 ممتاز للإنجليزي، بس للعربي جرب sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2.
Fine-Tuning — تدريب النموذج على أسلوبك
RAG ممتاز لما بدك الـ AI يجاوب من بيانات معينة. بس شو لو بدك تغير شخصية النموذج نفسه؟ تخليه يحكي بأسلوبك، يفهم مصطلحات مجالك، أو يتصرف بطريقة معينة؟ هون بيجي دور Fine-tuning — يعني إعادة تدريب النموذج على بيانات جديدة عشان يتعلم أشياء ما كان يعرفها.
الفرق بين RAG و Fine-tuning
| المقارنة | RAG | Fine-tuning |
|---|---|---|
| الهدف | إضافة معرفة جديدة | تغيير سلوك/أسلوب النموذج |
| الوقت | دقائق | ساعات |
| GPU مطلوب | لا (CPU كافي) | نعم (12GB+ VRAM) |
| تحديث البيانات | سهل — أضف ملفات جديدة | لازم تعيد التدريب |
| الاستخدام المثالي | Q&A من مستندات | تغيير شخصية/لغة/أسلوب |
متى تحتاج Fine-tuning؟
استخدم Fine-tuning لما بدك:
- تخلي النموذج يحكي بلهجة معينة (أردني، مصري، خليجي)
- تدربه على مهمة محددة (تلخيص، ترجمة، كتابة كود بأسلوب معين)
- تغير شخصيته بالكامل (مثلاً: مساعد طبي متخصص)
- تحسن أداءه بمجال معين (مثلاً: يفهم مصطلحات قانونية)
الأدوات: Unsloth — أسرع وأسهل طريقة للـ Fine-tuning
Unsloth هي مكتبة بتسرّع عملية Fine-tuning بـ 2-5 مرات وبتقلل استهلاك الذاكرة بـ 60%. بتدعم LoRA و QLoRA — يعني بتدرب جزء صغير من النموذج بدل كله، وهاد بوفر وقت وموارد كثيرة. بتشتغل ممتاز على Google Colab المجاني.
تحضير بيانات التدريب
بيانات التدريب لازم تكون بصيغة محددة. الصيغة الأشهر هي instruction/input/output:
# training_data.json - مثال على بيانات التدريب
[
{
"instruction": "اشرح المفهوم التالي بأسلوب بسيط وباللهجة الأردنية",
"input": "ما هو الـ API؟",
"output": "الـ API هو زي النادل بالمطعم — أنت بتطلب أكلة (request)، النادل بيوصل طلبك للمطبخ (server)، وبيرجعلك بالأكل (response). يعني هو الوسيط بين برنامجك والسيرفر."
},
{
"instruction": "اشرح المفهوم التالي بأسلوب بسيط وباللهجة الأردنية",
"input": "ما هو الـ Docker؟",
"output": "Docker هو زي صندوق شحن — بتحط فيه برنامجك مع كل اللي بحتاجه (مكتبات، إعدادات)، وبتقدر تشغله على أي جهاز بدون مشاكل. يعني بتحل مشكلة 'عندي بيشتغل بس عندك لأ'."
},
{
"instruction": "اكتب كود Python للمهمة التالية",
"input": "اكتب function بتحسب المضروب (factorial)",
"output": "# Function لحساب المضروب\ndef factorial(n):\n if n <= 1:\n return 1\n return n * factorial(n - 1)\n\n# مثال\nprint(factorial(5)) # Output: 120"
}
]
كم بيانات بتحتاج؟ للنتائج الأولية: 50-100 مثال كافي. للنتائج الممتازة: 500-1000 مثال. للنتائج الاحترافية: 5000+ مثال. النوعية أهم من الكمية — 100 مثال ممتاز أفضل من 1000 مثال سيء.
كود كامل: Fine-tune Llama 3.1 8B مع Unsloth على Google Colab
هاد الكود بتقدر تشغله مباشرة على Google Colab (اختار Runtime → T4 GPU). رح ندرب Llama 3.1 8B على بياناتنا باستخدام QLoRA:
# === الخطوة 1: تثبيت Unsloth ===
!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
!pip install --no-deps trl peft accelerate bitsandbytes
# === الخطوة 2: تحميل النموذج ===
from unsloth import FastLanguageModel
import torch
max_seq_length = 2048
dtype = None # Auto-detect
load_in_4bit = True # QLoRA - بيقلل استهلاك الذاكرة
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit",
max_seq_length=max_seq_length,
dtype=dtype,
load_in_4bit=load_in_4bit,
)
# === الخطوة 3: إعداد LoRA ===
model = FastLanguageModel.get_peft_model(
model,
r=16, # LoRA rank
target_modules=["q_proj", "k_proj", "v_proj",
"o_proj", "gate_proj", "up_proj", "down_proj"],
lora_alpha=16,
lora_dropout=0,
bias="none",
use_gradient_checkpointing="unsloth", # بيوفر 60% ذاكرة
random_state=3407,
)
print("تم تحميل النموذج وإعداد LoRA بنجاح!")
# === الخطوة 4: تحضير بيانات التدريب ===
from datasets import Dataset
import json
# حمل بياناتك (أو استخدم dataset من Hugging Face)
# مثال: تحميل من ملف JSON
with open('training_data.json', 'r', encoding='utf-8') as f:
raw_data = json.load(f)
# تحويل لصيغة المحادثة (Llama 3.1 chat format)
def format_instruction(sample):
return f"""<|begin_of_text|><|start_header_id|>system<|end_header_id|>
أنت مساعد ذكي باللهجة الأردنية. أجب بشكل مفيد وعملي.<|eot_id|>
<|start_header_id|>user<|end_header_id|>
{sample['instruction']}
{sample['input']}<|eot_id|>
<|start_header_id|>assistant<|end_header_id|>
{sample['output']}<|eot_id|>"""
# تطبيق التنسيق
formatted_data = [{"text": format_instruction(item)} for item in raw_data]
dataset = Dataset.from_list(formatted_data)
print(f"عدد أمثلة التدريب: {len(dataset)}")
print(f"\nمثال:\n{dataset[0]['text'][:300]}...")
# === الخطوة 5: بدء التدريب ===
from trl import SFTTrainer
from transformers import TrainingArguments
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset,
dataset_text_field="text",
max_seq_length=max_seq_length,
dataset_num_proc=2,
packing=False,
args=TrainingArguments(
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
warmup_steps=5,
num_train_epochs=3, # عدد مرات المرور على البيانات
learning_rate=2e-4,
fp16=not torch.cuda.is_bf16_supported(),
bf16=torch.cuda.is_bf16_supported(),
logging_steps=1,
optim="adamw_8bit",
weight_decay=0.01,
lr_scheduler_type="linear",
seed=3407,
output_dir="outputs",
),
)
# بدء التدريب!
print("بدء التدريب... هاد ممكن ياخد 10-30 دقيقة حسب حجم البيانات")
trainer_stats = trainer.train()
print(f"\nانتهى التدريب! الوقت: {trainer_stats.metrics['train_runtime']:.0f} ثانية")
# === الخطوة 6: تجربة النموذج المدرب ===
FastLanguageModel.for_inference(model)
messages = [
{"role": "system", "content": "أنت مساعد ذكي باللهجة الأردنية."},
{"role": "user", "content": "اشرحلي شو هو الـ Machine Learning"}
]
inputs = tokenizer.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True,
return_tensors="pt"
).to("cuda")
outputs = model.generate(
input_ids=inputs, max_new_tokens=256,
temperature=0.7, top_p=0.9
)
response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True)
print(f"الجواب: {response}")
# === الخطوة 7: حفظ النموذج ===
# حفظ بصيغة LoRA (حجم صغير ~50MB)
model.save_pretrained("my-finetuned-model-lora")
tokenizer.save_pretrained("my-finetuned-model-lora")
# حفظ بصيغة GGUF (لاستخدامه مع Ollama)
model.save_pretrained_gguf(
"my-finetuned-model-gguf",
tokenizer,
quantization_method="q4_k_m" # ضغط ممتاز (حجم صغير + جودة عالية)
)
print("تم حفظ النموذج! بتقدر تستخدمه مع Ollama هلأ")
استخدام النموذج المدرب مع Ollama
بعد ما تحفظ النموذج بصيغة GGUF، بتقدر تستخدمه مع Ollama بسهولة:
# اعمل ملف Modelfile # Modelfile FROM ./my-finetuned-model-gguf/unsloth.Q4_K_M.gguf PARAMETER temperature 0.7 PARAMETER top_p 0.9 SYSTEM """أنت مساعد ذكي باللهجة الأردنية. أجب بشكل مفيد وعملي.""" # سجل النموذج بـ Ollama ollama create my-custom-ai -f Modelfile # شغله! ollama run my-custom-ai
تحذير: Fine-tuning ممكن "يخرب" النموذج لو البيانات سيئة أو التدريب طويل جداً (overfitting). دائماً احفظ نسخة من النموذج الأصلي، وجرب النموذج المدرب على أسئلة متنوعة قبل ما تعتمد عليه. لو لاحظت إنه صار يكرر نفسه أو يعطي إجابات غريبة، قلل عدد الـ epochs أو زود البيانات.
بالقسم الجاي: رح نتعلم كيف نبني AI Agents — يعني AI بقدر ياخد قرارات ويستخدم أدوات (يبحث بالإنترنت، يشغل كود، يتعامل مع APIs) بشكل مستقل. وبعدها رح ننشر كل شيء على الإنترنت عشان أي حدا يقدر يستخدمه. تابع معنا!
بناء AI Agent — ذكاء اصطناعي بيتصرف لحاله
لحد هلأ، كل اللي بنيناه كان chatbot — يعني بتسأله وبيجاوبك. بس شو لو بدك AI بياخد قرارات لحاله وينفذ مهام بدون ما تقوله كل خطوة؟ هون بنحكي عن AI Agents — وهاد المستوى الجاي من الذكاء الاصطناعي. الـ Agent مش بس بيجاوب أسئلة، هو بيفكر، بيخطط، بيستخدم أدوات (يبحث بالإنترنت، يقرأ ملفات، يشغل كود)، وبياخد قرارات بناءً على النتائج.
تخيل إنك بتقوله: "ابحثلي عن آخر أخبار الذكاء الاصطناعي اليوم ولخصها بالعربي واحفظها بملف" — الـ Agent بيعمل كل هاد لحاله: بيبحث بالإنترنت، بيقرأ المقالات، بيلخصها، وبيحفظ النتيجة. كل هاد بدون ما تتدخل بكل خطوة.
أدوات بناء AI Agents
| الأداة | الوصف | المميزات |
|---|---|---|
| CrewAI | فريق من AI Agents بيشتغلوا مع بعض | سهل، مرن، بيدعم Ollama |
| AutoGen | من Microsoft — محادثات بين agents | قوي للمهام المعقدة |
| LangGraph | من LangChain — بناء workflows معقدة | تحكم كامل بالـ flow |
مثال عملي: AI Agent يبحث بالإنترنت ويلخص النتائج
هلأ بنبني Agent باستخدام CrewAI بيبحث عن موضوع معين وبيلخص النتائج. الـ Agent عنده "أدوات" بيستخدمها — بهاد المثال أداة البحث بالإنترنت:
# pip install crewai crewai-tools langchain-community
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool # أداة البحث
from langchain_community.llms import Ollama
# إعداد النموذج المحلي
llm = Ollama(model="llama3.1", base_url="http://localhost:11434")
# أداة البحث بالإنترنت (بتحتاج API key مجاني من serper.dev)
search_tool = SerperDevTool()
# === تعريف الـ Agent ===
researcher = Agent(
role="باحث أخبار التكنولوجيا",
goal="البحث عن آخر أخبار الذكاء الاصطناعي وجمع المعلومات المهمة",
backstory="أنت باحث متخصص بأخبار التكنولوجيا والذكاء الاصطناعي. بتبحث بدقة وبتجمع المعلومات من مصادر موثوقة.",
tools=[search_tool],
llm=llm,
verbose=True
)
summarizer = Agent(
role="ملخص محتوى",
goal="تلخيص المعلومات بشكل واضح ومفيد باللغة العربية",
backstory="أنت كاتب محتوى محترف بتقدر تلخص المعلومات المعقدة بأسلوب بسيط وواضح باللهجة الأردنية.",
llm=llm,
verbose=True
)
# === تعريف المهام ===
research_task = Task(
description="ابحث عن آخر 5 أخبار مهمة عن الذكاء الاصطناعي لهاد الأسبوع. ركز على الأخبار العملية اللي بتأثر على المطورين.",
expected_output="قائمة بـ 5 أخبار مع رابط ووصف مختصر لكل خبر",
agent=researcher
)
summary_task = Task(
description="خذ نتائج البحث ولخصها بمقال قصير باللغة العربية (لهجة أردنية). كل خبر بفقرة وحدة مع رأيك فيه.",
expected_output="مقال ملخص بالعربي فيه 5 فقرات — فقرة لكل خبر",
agent=summarizer
)
# === تشغيل الفريق ===
crew = Crew(
agents=[researcher, summarizer],
tasks=[research_task, summary_task],
process=Process.sequential, # المهام بالترتيب
verbose=True
)
# شغل!
result = crew.kickoff()
print("
" + "=" * 50)
print("النتيجة النهائية:")
print("=" * 50)
print(result)
نصيحة: بتقدر تضيف أدوات ثانية للـ Agent مثل: قراءة ملفات، تشغيل كود Python، إرسال إيميلات، التعامل مع APIs، وحتى التحكم بالمتصفح. كل ما أعطيته أدوات أكثر، كل ما صار أقوى. بس انتبه — كل ما زادت الأدوات، كل ما احتجت نموذج أذكى عشان يعرف يختار الأداة الصح.
بناء AI للصور — Stable Diffusion محلي
الذكاء الاصطناعي مش بس نصوص — كمان بيقدر يولد صور مذهلة! نماذج مثل Stable Diffusion XL و Flux بتقدر تشغلها على جهازك وتولد صور احترافية بأي أسلوب تتخيله — من صور واقعية لرسومات أنمي لتصاميم جرافيك. وأحلى شيء إنك بتقدر تدربها على صورك الشخصية عشان تولد صور إلك بأي ستايل.
الأدوات: ComfyUI vs Automatic1111
في واجهتين رئيسيتين لتشغيل Stable Diffusion محلياً:
- ComfyUI: واجهة node-based (زي Blender nodes) — أقوى وأمرن، بتعطيك تحكم كامل بكل خطوة من عملية التوليد. مناسبة للمحترفين.
- Automatic1111 (A1111): واجهة ويب بسيطة — أسهل للمبتدئين. بتكتب الوصف وبتضغط Generate وخلص.
تثبيت ComfyUI وتشغيل أول صورة
# === تثبيت ComfyUI === git clone https://github.com/comfyanonymous/ComfyUI.git cd ComfyUI # تثبيت المتطلبات (NVIDIA GPU) pip install -r requirements.txt pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 # حمل نموذج SDXL (حوالي 6.5GB) # حط الملف بمجلد: ComfyUI/models/checkpoints/ # حمل من: https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 # تشغيل ComfyUI python main.py # افتح المتصفح: http://127.0.0.1:8188
توليد صور من كود Python
# pip install diffusers transformers accelerate torch
from diffusers import StableDiffusionXLPipeline
import torch
# تحميل النموذج
pipe = StableDiffusionXLPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0",
torch_dtype=torch.float16,
variant="fp16"
).to("cuda")
# توليد صورة
prompt = "A futuristic cyberpunk city at night, neon lights, rain, ultra detailed, 8k"
negative_prompt = "blurry, low quality, distorted, ugly"
image = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
num_inference_steps=30,
guidance_scale=7.5,
width=1024,
height=1024
).images[0]
image.save("my_ai_image.png")
print("تم توليد الصورة بنجاح!")
Fine-tune على صورك الشخصية (LoRA Training)
بتقدر تدرب النموذج على صورك الشخصية (15-20 صورة كافي) عشان يولد صور إلك بأي ستايل. هاد اسمه LoRA training وبياخد حوالي 30 دقيقة على GPU:
# pip install kohya-ss-sd-scripts # أو استخدم واجهة: https://github.com/bmaltais/kohya_ss # الخطوات: # 1. جهز 15-20 صورة واضحة لوجهك (خلفيات مختلفة، إضاءات مختلفة) # 2. حط الصور بمجلد واحد # 3. اعمل ملف نصي لكل صورة فيه وصف (مثلاً: "photo of sks person, smiling") # 4. شغل التدريب: accelerate launch train_network.py --pretrained_model_name_or_path="stabilityai/stable-diffusion-xl-base-1.0" --train_data_dir="./my_photos" --output_dir="./my_lora_model" --resolution=1024 --train_batch_size=1 --max_train_epochs=10 --learning_rate=1e-4 --network_module=networks.lora --network_dim=32 # بعد التدريب، استخدم الـ LoRA مع أي prompt: # "photo of sks person as a superhero, cinematic lighting"
متطلبات مهمة: توليد الصور بحتاج GPU بـ 8GB VRAM على الأقل (RTX 3060 أو أعلى). لو جهازك ما بيدعم، استخدم Google Colab أو RunPod. النموذج SDXL بياخد حوالي 6.5GB من الـ VRAM.
بناء AI للصوت — Text-to-Speech و Speech-to-Text
الصوت هو الواجهة الطبيعية للتواصل مع AI. تخيل إنك بتحكي مع الـ AI تبعك بصوتك وهو بيرد عليك بصوت طبيعي — مش صوت روبوت. هاد ممكن تسويه محلياً على جهازك باستخدام نماذج مفتوحة المصدر. بنحكي عن شغلتين: تحويل الصوت لنص (Speech-to-Text) وتحويل النص لصوت (Text-to-Speech).
Whisper — تحويل صوت لنص (أفضل نموذج مجاني)
Whisper من OpenAI هو أفضل نموذج مجاني لتحويل الصوت لنص. بيدعم أكثر من 99 لغة (بما فيها العربي)، وبيشتغل محلياً على جهازك بدون إنترنت. دقته عالية جداً حتى مع اللهجات والضوضاء.
# pip install openai-whisper torch
import whisper
# تحميل النموذج (أول مرة بيحمل من الإنترنت)
# الأحجام: tiny, base, small, medium, large-v3
model = whisper.load_model("medium") # medium ممتاز للعربي
# تحويل ملف صوتي لنص
result = model.transcribe("my_audio.mp3", language="ar")
print("النص:")
print(result["text"])
# مع timestamps (مفيد للترجمة)
for segment in result["segments"]:
start = segment["start"]
end = segment["end"]
text = segment["text"]
print(f"[{start:.1f}s - {end:.1f}s]: {text}")
# === Faster Whisper (أسرع 4x) ===
# pip install faster-whisper
from faster_whisper import WhisperModel
model = WhisperModel("medium", device="cuda", compute_type="float16")
segments, info = model.transcribe("my_audio.mp3", language="ar")
print(f"اللغة المكتشفة: {info.language} (احتمال: {info.language_probability:.0%})")
for segment in segments:
print(f"[{segment.start:.1f}s - {segment.end:.1f}s] {segment.text}")
XTTS — تحويل نص لصوت واستنساخ الأصوات
Coqui XTTS هو نموذج مفتوح المصدر بيحول النص لصوت طبيعي جداً. الأحلى إنه بيدعم voice cloning — يعني بتعطيه عينة صوتية (10 ثواني كافي) وبيتكلم بنفس الصوت! بيدعم العربي كمان.
# pip install TTS torch
from TTS.api import TTS
import torch
# تحميل نموذج XTTS v2 (متعدد اللغات + voice cloning)
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to("cuda")
# === تحويل نص لصوت بصوت افتراضي ===
tts.tts_to_file(
text="مرحبا! أنا ذكاء اصطناعي محلي وبتكلم عربي.",
language="ar",
file_path="output_default.wav"
)
# === Voice Cloning - استنساخ صوتك! ===
# جهز ملف صوتي واضح (10-30 ثانية) بصوتك
tts.tts_to_file(
text="هاد النص رح ينقال بصوتي الشخصي. الذكاء الاصطناعي بيقلد صوتي بدقة.",
speaker_wav="my_voice_sample.wav", # عينة من صوتك
language="ar",
file_path="output_my_voice.wav"
)
print("تم توليد الصوت بنجاح!")
# === Real-time TTS (للمحادثات المباشرة) ===
import sounddevice as sd
import numpy as np
# توليد وتشغيل مباشرة
wav = tts.tts(
text="مرحبا، كيف بقدر أساعدك اليوم؟",
speaker_wav="my_voice_sample.wav",
language="ar"
)
# تشغيل الصوت مباشرة
sd.play(np.array(wav), samplerate=22050)
sd.wait()
مشروع متكامل: بتقدر تجمع Whisper + Ollama + XTTS عشان تبني مساعد صوتي كامل: بتحكيله بصوتك (Whisper يحول لنص) → النص بيروح للـ AI (Ollama يولد الرد) → الرد بيتحول لصوت (XTTS ينطقه بصوتك). كل هاد محلي وبدون إنترنت!
نشر AI الخاص فيك — من جهازك للعالم
تمام، بنيت AI خاص فيك وبيشتغل على جهازك. بس شو لو بدك ناس ثانية تستخدمه؟ أو بدك تعمله API عشان تربطه بتطبيقك؟ هون بنحكي عن النشر (Deployment) — كيف تاخد الـ AI من جهازك وتحطه على الإنترنت عشان أي حدا يقدر يوصله.
خيار 1: نشر على سيرفر خاص (VPS) مع Docker
أفضل خيار لو بدك تحكم كامل. استأجر VPS مع GPU من RunPod أو Vast.ai أو Hetzner، وشغل Ollama + Open WebUI بـ Docker Compose. نفس الإعداد اللي عملناه محلياً بيشتغل على السيرفر.
خيار 2: نشر على Hugging Face Spaces (مجاني)
Hugging Face Spaces بيعطيك hosting مجاني لتطبيقات AI. بتقدر تنشر تطبيق Gradio أو Streamlit بدون ما تدفع شيء. مناسب للمشاريع الصغيرة والـ demos.
خيار 3: بناء API مع FastAPI (الأكثر مرونة)
لو بدك تربط الـ AI بتطبيق موبايل أو موقع ويب أو أي نظام ثاني، أفضل طريقة هي بناء API. FastAPI هو أسرع وأسهل framework لبناء APIs بـ Python:
# pip install fastapi uvicorn ollama pydantic
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
import ollama
from typing import Optional
app = FastAPI(title="Shadow AI API", version="1.0")
# السماح بالوصول من أي مكان (CORS)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
# === Models ===
class ChatRequest(BaseModel):
message: str
model: str = "llama3.1"
system_prompt: Optional[str] = "أنت مساعد ذكي باللغة العربية."
temperature: float = 0.7
class ChatResponse(BaseModel):
response: str
model: str
tokens_used: int
# === Endpoints ===
@app.get("/")
def root():
return {"status": "running", "message": "Shadow AI API is live!"}
@app.get("/models")
def list_models():
"""عرض النماذج المتاحة"""
models = ollama.list()
return {"models": [m["name"] for m in models["models"]]}
@app.post("/chat", response_model=ChatResponse)
def chat(request: ChatRequest):
"""محادثة مع AI"""
try:
response = ollama.chat(
model=request.model,
messages=[
{"role": "system", "content": request.system_prompt},
{"role": "user", "content": request.message}
],
options={"temperature": request.temperature}
)
return ChatResponse(
response=response["message"]["content"],
model=request.model,
tokens_used=response.get("eval_count", 0)
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
@app.post("/summarize")
def summarize(text: str):
"""تلخيص نص"""
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "system", "content": "لخص النص التالي بـ 3 جمل باللغة العربية."},
{"role": "user", "content": text}
]
)
return {"summary": response["message"]["content"]}
# === تشغيل السيرفر ===
# uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# الـ API docs: http://localhost:8000/docs
خيار 4: تطبيق ويب مع Gradio (أسهل طريقة)
# pip install gradio ollama
import gradio as gr
import ollama
def chat_with_ai(message, history):
"""دالة المحادثة"""
messages = [{"role": "system", "content": "أنت مساعد ذكي باللهجة الأردنية."}]
# إضافة تاريخ المحادثة
for human, assistant in history:
messages.append({"role": "user", "content": human})
messages.append({"role": "assistant", "content": assistant})
messages.append({"role": "user", "content": message})
response = ollama.chat(model="llama3.1", messages=messages)
return response["message"]["content"]
# إنشاء الواجهة
demo = gr.ChatInterface(
fn=chat_with_ai,
title="Shadow AI - مساعد ذكي بالعربي",
description="اسألني أي سؤال وبجاوبك باللهجة الأردنية!",
theme=gr.themes.Soft(),
examples=["شو هو الذكاء الاصطناعي؟", "اكتبلي كود Python", "لخصلي هاد الموضوع"]
)
# تشغيل محلي
demo.launch(server_name="0.0.0.0", server_port=7860)
# نشر على Hugging Face Spaces (مجاني):
# demo.launch(share=True) # بيعطيك رابط عام مؤقت
Dockerfile جاهز للنشر: لو بدك تنشر على أي سيرفر، اعمل Dockerfile بسيط: FROM python:3.11-slim → ثبت المتطلبات → شغل FastAPI بـ uvicorn. أو استخدم Railway.app أو Render للنشر بضغطة زر.
مشاريع عملية — أفكار تبنيها بـ AI الخاص فيك
هلأ عندك كل الأدوات والمعرفة. السؤال: شو تبني؟ خليني أعطيك أفكار مشاريع عملية بتقدر تبنيها بالأدوات اللي تعلمناها. كل مشروع من هدول ممكن يكون منتج تبيعه أو أداة تستخدمها بشغلك اليومي.
1. مساعد شخصي ذكي
AI بيعرف جدولك ومهامك وملاحظاتك. بتقوله "شو عندي بكرة؟" أو "ذكرني أبعث الإيميل الساعة 3" وبينفذ. استخدم RAG على ملفات الكالندر والملاحظات + AI Agent عشان ينفذ المهام.
2. AI لخدمة العملاء
بوت بيجاوب على أسئلة العملاء من قاعدة معرفة شركتك. استخدم RAG على مستندات الشركة (FAQ, سياسات، منتجات) + واجهة Gradio أو API. بيوفر عليك ساعات من الرد على نفس الأسئلة المتكررة.
3. مترجم فوري بأسلوبك
AI مدرب على أسلوبك بالترجمة. Fine-tune نموذج على ترجماتك السابقة عشان يترجم بنفس أسلوبك ومصطلحاتك. مفيد جداً للمترجمين المحترفين اللي بدهم يسرعوا شغلهم.
4. AI لتلخيص الأخبار اليومية
Agent بيجمع أخبار من مصادر محددة كل يوم، بيلخصها بالعربي، وبيبعثلك ملخص على التيليجرام أو الإيميل. استخدم CrewAI + أداة بحث + أداة إرسال رسائل.
5. AI لكتابة المحتوى
نموذج مدرب على أسلوبك بالكتابة. Fine-tune على مقالاتك أو بوستاتك السابقة، وبعدها بيكتب محتوى جديد بنفس أسلوبك. مفيد لكتاب المحتوى والمدونين.
6. AI لتحليل البيانات
AI بيقرأ ملفات Excel و CSV وبيعطيك insights وتحليلات. بتسأله "شو أكثر منتج مبيعاً هاد الشهر؟" وبيحلل البيانات ويجاوبك. استخدم LangChain مع pandas agent.
7. Bot تيليجرام ذكي
بوت تيليجرام مربوط بالـ AI تبعك. أي حدا بيبعثله رسالة بيجاوبه الـ AI. بتقدر تخصصه لمجال معين (دعم فني، استشارات، تعليم). استخدم python-telegram-bot + Ollama API:
# pip install python-telegram-bot ollama
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters
import ollama
TOKEN = "YOUR_BOT_TOKEN" # من @BotFather
async def chat(update: Update, context):
user_message = update.message.text
response = ollama.chat(
model="llama3.1",
messages=[
{"role": "system", "content": "أنت مساعد ذكي على تيليجرام. أجب باختصار وباللهجة الأردنية."},
{"role": "user", "content": user_message}
]
)
await update.message.reply_text(response["message"]["content"])
app = Application.builder().token(TOKEN).build()
app.add_handler(MessageHandler(filters.TEXT, chat))
app.run_polling()
نصيحة ذهبية: ابدأ بمشروع واحد بسيط وكمله 100% قبل ما تنتقل لمشروع ثاني. أفضل مشروع تبدأ فيه هو اللي بيحل مشكلة عندك شخصياً — لأنك رح تكون أكثر حماس تكمله ورح تعرف بالضبط شو بدك منه.
ملخص — خارطة الطريق الكاملة
وصلنا لنهاية هاد الدليل الشامل! خليني ألخصلك خارطة الطريق الكاملة من الصفر للاحتراف. اتبع هاي الخطوات بالترتيب وخذ وقتك بكل مرحلة:
خطة من 10 خطوات للمبتدئ
| الخطوة | المهمة | الوقت المتوقع |
|---|---|---|
| 1 | تثبيت Ollama وتشغيل أول نموذج | 30 دقيقة |
| 2 | تجربة 3-4 نماذج مختلفة ومقارنتها | ساعة |
| 3 | تثبيت Open WebUI وإعداد الواجهة | ساعة |
| 4 | بناء نظام RAG على ملفاتك | 2-3 ساعات |
| 5 | تعلم أساسيات Fine-tuning مع Unsloth | يوم كامل |
| 6 | بناء AI Agent بسيط مع CrewAI | 2-3 ساعات |
| 7 | تجربة توليد الصور مع Stable Diffusion | 3-4 ساعات |
| 8 | إضافة الصوت (Whisper + TTS) | 2-3 ساعات |
| 9 | بناء API ونشر المشروع | يوم كامل |
| 10 | بناء مشروع متكامل خاص فيك | أسبوع |
Timeline الكامل: لو بتشتغل ساعتين يومياً، بتقدر تخلص كل الخطوات بـ 2-3 أسابيع. لو عندك وقت أكثر، ممكن تخلص بأسبوع مكثف. المهم تطبق عملي مش بس تقرأ.
موارد مجانية للتعلم
هاي أفضل المصادر المجانية عشان تكمل رحلتك:
- DeepLearning.AI Short Courses — كورسات قصيرة مجانية من Andrew Ng عن LangChain, RAG, Agents
- Hugging Face Course — كورس شامل عن NLP والنماذج المفتوحة
- Matthew Berman (YouTube) — شروحات عملية عن AI المحلي والنماذج الجديدة
- AI Jason (YouTube) — tutorials عن AI Agents و RAG
- Ollama Blog — آخر التحديثات والنماذج الجديدة
- Project-Based Learning (GitHub) — مشاريع عملية للتعلم
كلمة أخيرة: عالم الـ AI بيتغير بسرعة جنونية. كل أسبوع في نماذج جديدة وأدوات جديدة. أهم شيء تبني أساس قوي (اللي تعلمناه بهاد المقال) وبعدها تتابع الجديد. الأساسيات ما بتتغير — بس الأدوات بتتحسن. ابدأ اليوم ولا تستنى — أفضل وقت تبني AI خاص فيك هو هلأ!
🔥 مواضيع ذات صلة من Shadow Hacker:
- prompts كاملة للذكاء الاصطناعي مخصصة للاختراق والهكر 2026
- موقع يعطيك 200$ مجاناً بذكاء اصطناعي AgentRouter Claude
- أقوى تخطي برومبت جديد لذكاء الأصطناعي جيميناي ChatGPT
- كيف تهكر الذكاء الأصطناعي | How to HACK with kimi CHATGPT 5
- كيف تتخطى قيود Gemini و Grok وتحوّلها لأدوات خارقة Hacker
- أفضل إضافة ذكاء اصطناعي في أمن المعلومات NanoBrowser
Shadow Hacker
مؤسس ومحرر المدونة | خبير أمن معلومات وتقنية
متخصص في الأمن السيبراني واختبار الاختراق وتحليل الثغرات. بشارك معكم كل جديد في عالم التقنية والأمن المعلوماتي بأسلوب عملي ومبسط.
🔔 لا تفوتك مواضيعنا الجديدة!
تابعنا عشان توصلك أحدث المقالات في عالم الأمن والتقنية مباشرة
📢 شارك المقال مع أصدقائك:
الأسئلة الشائعة (FAQ)
هل أحتاج GPU غالي عشان أشغل AI محلي؟
لا مش شرط. بتقدر تشغل نماذج صغيرة (7B-8B) على CPU بس رح يكون أبطأ. GPU بـ 6GB VRAM (مثل GTX 1060) كافي للبداية. لو عندك Mac مع Apple Silicon (M1/M2/M3)، الأداء ممتاز بدون GPU خارجي لأنه بستخدم الـ unified memory. وكمان بتقدر تستخدم Google Colab المجاني لو جهازك ضعيف.
هل النماذج المفتوحة بنفس قوة ChatGPT؟
النماذج الكبيرة (70B+) مثل Llama 3.1 70B بتنافس GPT-4 بكثير من المهام. النماذج الصغيرة (7B-8B) أضعف من GPT-4 بس ممتازة للمهام المحددة — خصوصاً بعد Fine-tuning. بشكل عام، لو بدك نموذج لمهمة محددة (مش عام)، النماذج المفتوحة بعد التدريب ممكن تتفوق على GPT-4 بهاي المهمة بالذات.
هل بقدر أبني AI بالعربي؟
أكيد! نموذج Qwen 2.5 من Alibaba هو أفضل خيار للعربي حالياً — مدرب على بيانات عربية كثيرة وبيفهم اللهجات. Llama 3.1 كمان جيد بالعربي. وبتقدر تحسن أي نموذج بالعربي عن طريق Fine-tuning على بيانات عربية. Whisper كمان بيدعم العربي بدقة عالية للصوت.
كم وقت بياخد تدريب نموذج AI؟
يعتمد على حجم البيانات والنموذج. Fine-tuning نموذج 8B على 500 مثال بياخد 15-30 دقيقة على Google Colab (T4 GPU). على 5000 مثال ممكن ياخد 2-3 ساعات. RAG ما بحتاج تدريب — بس دقائق لتحميل الملفات. التدريب من الصفر (pre-training) بياخد أسابيع وملايين الدولارات — بس إحنا ما بنحتاج نسوي هاد.
هل Ollama مجاني بالكامل؟
نعم، Ollama مجاني 100% ومفتوح المصدر. ما في اشتراكات، ما في حدود استخدام، وما في بيانات بتنبعث لأي سيرفر. بتحمله وبتستخدمه قد ما بدك. النماذج كمان مجانية (Llama, Mistral, Qwen, etc.) — كلها مفتوحة المصدر ومرخصة للاستخدام التجاري.
شو الفرق بين RAG و Fine-tuning؟
RAG = بتعطي النموذج معلومات يبحث فيها وقت السؤال (زي ما تعطي طالب كتاب يرجعله). Fine-tuning = بتغير النموذج نفسه عشان يتعلم أشياء جديدة (زي ما تعلم الطالب مادة جديدة). استخدم RAG لما بدك الـ AI يجاوب من مستندات محددة. استخدم Fine-tuning لما بدك تغير أسلوبه أو تخصصه بمجال معين.
هل بقدر أبيع AI اللي بنيته؟
نعم! أغلب النماذج المفتوحة (Llama 3.1, Mistral, Qwen) مرخصة للاستخدام التجاري. بتقدر تبني منتج أو خدمة وتبيعها. بس تأكد من رخصة كل نموذج — بعض النماذج عندها شروط (مثلاً Llama بتطلب ما يكون عندك أكثر من 700 مليون مستخدم). الـ Fine-tuned model تبعك ملكك بالكامل.
هل بحتاج أعرف برمجة عشان أبني AI؟
للبداية: لا. Ollama + Open WebUI بتقدر تثبتهم وتستخدمهم بدون سطر كود واحد. بس لو بدك تبني مشاريع متقدمة (RAG, Agents, API)، لازم تعرف أساسيات Python. الخبر الحلو إنك ما بتحتاج تكون خبير — أساسيات Python (متغيرات، functions، loops) كافية للبداية. وبتقدر تستخدم الـ AI نفسه يساعدك تتعلم!
شو أفضل نموذج للمبتدئين؟
Llama 3.1 8B هو أفضل نموذج للبداية — متوازن بين الحجم والأداء وبيشتغل على أغلب الأجهزة. لو بدك أداء أفضل بالعربي، جرب Qwen 2.5 7B. لو جهازك ضعيف، جرب Phi-3 Mini (3.8B). ابدأ بنموذج صغير وبعدين جرب الأكبر لما تحتاج.
هل AI المحلي آمن للبيانات الحساسة؟
نعم، هاي أهم ميزة! لما تشغل AI محلياً، بياناتك ما بتطلع من جهازك أبداً. ما في سيرفرات خارجية، ما في تسجيل محادثات، وما في خطر تسريب. هاد بيخليه مثالي للبيانات الطبية، القانونية، المالية، أو أي معلومات سرية. بس تأكد إنك ما تستخدم خدمات cloud للـ embeddings — استخدم نماذج محلية لكل شيء.

