من النموذج اللغوي المحلي إلى الوكيل المستخدم للأدوات
تعلم كيفية تحويل نموذج لغة كبير محلي إلى وكيل قوي من خلال دمج أدوات خارجية مثل البحث على الويب وواجهات برمجة التطبيقات ومنفذي الأكواد، مما يتيح إنجاز المهام بشكل مستقل يتجاوز مجرد توليد النصوص البسيطة.
الوسوم
ملخص سريع
تعلم كيفية تحويل نموذج لغة كبير محلي إلى وكيل قوي من خلال دمج أدوات خارجية مثل البحث على الويب وواجهات برمجة التطبيقات ومنفذي الأكواد، مما يتيح إنجاز المهام بشكل مستقل يتجاوز مجرد توليد النصوص البسيطة.
من نموذج لغوي محلي إلى وكيل يستخدم الأدوات
الرحلة من تشغيل نموذج لغوي كبير (LLM) على أجهزتك الخاصة إلى بناء وكيل يستخدم الأدوات هي واحدة من أكثر التحولات الجوهرية في الذكاء الاصطناعي التطبيقي اليوم. بينما توفر النماذج اللغوية المحلية الخصوصية والتحكم والقدرات غير المتصلة بالإنترنت، فإنها تفتقر إلى القدرة على التفاعل مع الأنظمة الخارجية—قواعد البيانات، واجهات برمجة التطبيقات، أنظمة الملفات، أو خدمات الويب. بإضافة قدرات استخدام الأدوات، تحول النموذج الثابت إلى وكيل مستقل يمكنه استرجاع المعلومات وإجراء العمليات الحسابية وتنفيذ الإجراءات. تقدم هذه المقالة دليلاً عملياً خطوة بخطوة لسد هذه الفجوة.
لماذا الانتقال من نموذج لغوي محلي إلى وكيل؟
النماذج اللغوية المحلية، مثل تلك التي تعمل بتقنيات Llama أو Mistral أو Phi، ممتازة في توليد النصوص والتلخيص والإجابة على الأسئلة. ومع ذلك، فهي محدودة بحدود بيانات تدريبها وعدم قدرتها على الوصول إلى المعلومات في الوقت الفعلي أو الأدوات الخارجية. الوكيل الذي يستخدم الأدوات يوسع النموذج اللغوي بمجموعة من الوظائف التي يمكنه استدعاؤها—مثل محرك بحث أو آلة حاسبة أو أداة استعلام قاعدة بيانات—ويقرر متى يستخدمها بناءً على طلب المستخدم.
هذا النهج أساسي في تطوير الذكاء الاصطناعي الحديث. كما ورد في التحديثات الصناعية من OpenAI وMicrosoft، فإن الاتجاه نحو نماذج يمكنها التخطيط وتنفيذ مهام متعددة الخطوات باستخدام موارد خارجية. للنشر المحلي، هذا يعني أنه يمكنك بناء وكيل يعمل بالكامل على جهازك، ويحترم خصوصية بياناتك، ولا يزال يؤدي مهام معقدة تعتمد على البيانات.
المتطلبات
قبل البدء، تأكد من أن نظامك يلبي هذه المتطلبات:
- **الأجهزة**: جهاز كمبيوتر بذاكرة وصول عشوائي لا تقل عن 8 جيجابايف (16 جيجابايف موصى بها). بطاقة رسوميات بذاكرة فيديو 6 جيجابايف+ (مثل NVIDIA RTX 3060 أو أعلى) تسرع بشكل كبير استدلال النموذج اللغوي المحلي.
- **نظام التشغيل**: لينكس (Ubuntu 22.04+) أو ماك (Ventura+) أو ويندوز (مع WSL2 لأفضل توافق).
- **البرمجيات**:
- Python 3.10 أو أحدث
- pip (مدير حزم Python)
- Git
- بيئة تشغيل نموذج لغوي محلي (مثل Ollama أو llama.cpp أو LM Studio)
- إلمام أساسي بسطر الأوامر
التثبيت خطوة بخطوة
سنستخدم **Ollama** للنموذج اللغوي المحلي وإطار عمل Python يسمى **LangChain** لبناء الوكيل. يوفر LangChain واجهة بسيطة لتعريف الأدوات وربطها بالنموذج اللغوي.
1. تثبيت Ollama وتنزيل نموذج لغوي محلي
Ollama هي أداة سهلة الاستخدام لتشغيل النماذج اللغوية المحلية. أولاً، قم بتثبيتها:
# على لينكس أو ماك (باستخدام السكريبت الرسمي)
curl -fsSL https://ollama.com/install.sh | sh
# على ويندوز، قم بتنزيل المثبت من ollama.com وقم بتشغيلهبعد التثبيت، ابدأ خدمة Ollama:
ollama serveالآن قم بتنزيل نموذج قادر. لاستخدام الأدوات، نوصي بـ **Mistral 7B** أو **Llama 3.1 8B**:
# تنزيل Mistral 7B (حوالي 4 جيجابايف)
ollama pull mistral
# بدلاً من ذلك، تنزيل Llama 3.1 8B
ollama pull llama3.1تحقق من أن النموذج يعمل:
ollama run mistral "مرحباً، ما اسمك؟"يجب أن ترى رداً من النموذج.
2. إعداد بيئة Python
أنشئ دليلاً جديداً لمشروع الوكيل الخاص بك وقم بإعداد بيئة افتراضية:
mkdir local-agent
cd local-agent
python3 -m venv venv
source venv/bin/activate # على ويندوز: venv\Scripts\activateقم بتثبيت حزم Python المطلوبة:
pip install langchain langchain-community langchain-ollama requests- `langchain` — الإطار الأساسي لبناء الوكلاء
- `langchain-community` — تكاملات مدعومة من المجتمع
- `langchain-ollama` — تكامل مباشر مع Ollama
- `requests` — لإجراء استدعاءات HTTP (تستخدمها بعض الأدوات)
3. تعريف الأدوات
الأدوات هي وظائف يمكن للوكيل استدعاؤها. سننشئ ثلاث أدوات بسيطة: آلة حاسبة، ومحاكي بحث ويب (باستخدام مجموعة بيانات ثابتة)، وقارئ ملفات.
أنشئ ملفاً باسم `tools.py`:
# tools.py
import requests
import json
def calculator(expression: str) -> str:
"""
تقييم تعبير رياضي.
مثال للإدخال: "2 + 3 * 4"
"""
try:
result = eval(expression)
return str(result)
except Exception as e:
return f"خطأ: {e}"
def search_web(query: str) -> str:
"""
محاكاة بحث ويب. في الواقع، ستستخدم واجهة برمجة تطبيقات بحث.
هنا نعيد نتيجة ثابتة للتوضيح.
"""
# استبدل هذا باستدعاء API حقيقي (مثل DuckDuckGo، SerpAPI)
fake_results = {
"عدد سكان طوكيو": "يبلغ عدد سكان طوكيو حوالي 14 مليون نسمة (تقدير 2024).",
"الطقس في لندن": "الطقس الحالي في لندن: 15 درجة مئوية، غائم جزئياً.",
"إصدار Python": "Python 3.12 هو أحدث إصدار مستقر اعتباراً من 2025."
}
return fake_results.get(query.lower(), f"لا توجد نتائج لـ '{query}'.")
def read_file(file_path: str) -> str:
"""
قراءة محتويات ملف نصي.
"""
try:
with open(file_path, 'r') as f:
return f.read()
except Exception as e:
return f"خطأ في قراءة الملف: {e}"4. بناء الوكيل
الآن، أنشئ السكريبت الرئيسي للوكيل `agent.py`:
# agent.py
from langchain_ollama import ChatOllama
from langchain.agents import initialize_agent, Tool
from langchain.agents import AgentType
from tools import calculator, search_web, read_file
# تهيئة النموذج اللغوي المحلي
llm = ChatOllama(
model="mistral", # أو "llama3.1"
temperature=0.7,
num_predict=2048
)
# تعريف قائمة الأدوات
tools = [
Tool(
name="Calculator",
func=calculator,
description="مفيد لإجراء العمليات الحسابية الرياضية. يجب أن يكون الإدخال تعبيراً رياضياً."
),
Tool(
name="WebSearch",
func=search_web,
description="يبحث في الويب عن معلومات حالية. يجب أن يكون الإدخال سلسلة استعلام بحث."
),
Tool(
name="FileReader",
func=read_file,
description="يقرأ محتويات ملف. يجب أن يكون الإدخال مسار ملف صالح."
)
]
# تهيئة الوكيل
agent = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
handle_parsing_errors=True
)
# تشغيل استعلام بسيط
if __name__ == "__main__":
query = "ما هو عدد سكان طوكيو؟ أيضاً، احسب 15 * 23."
response = agent.run(query)
print(response)5. تشغيل الوكيل
قم بتنفيذ الوكيل:
python agent.pyيجب أن ترى عملية التفكير للوكيل (في الوضع المفصل) وإجابة نهائية تجمع بين نتيجة بحث الويب والحساب.
أمثلة الاستخدام
مثال 1: استعلام متعدد الأدوات
قم بتشغيل الوكيل باستعلام يتطلب حساباً وقراءة ملف:
# في agent.py، قم بتغيير الاستعلام
query = "اقرأ الملف 'notes.txt' ثم احسب عدد الأحرف فيه."
response = agent.run(query)سيؤدي هذا إلى قيام الوكيل باستدعاء `FileReader` أولاً، ثم `Calculator` على طول النص المرتجع.
مثال 2: أداة مخصصة — جلب الوقت الحالي
أضف أداة جديدة إلى `tools.py`:
import datetime
def current_time(format_string: str = "%Y-%m-%d %H:%M:%S") -> str:
"""إرجاع التاريخ والوقت الحاليين. يمكن تحديد تنسيق اختياري."""
return datetime.datetime.now().strftime(format_string)ثم سجلها في `agent.py`:
from tools import current_time
tools.append(
Tool(
name="CurrentTime",
func=current_time,
description="إرجاع التاريخ والوقت الحاليين. تنسيق الإدخال اختياري."
)
)الآن يمكنك أن تسأل: "كم الساعة الآن؟" وسيقوم الوكيل باستدعاء الأداة.
مثال 3: استخدام نموذج لغوي محلي مختلف
للتبديل إلى Llama 3.1، قم ببساطة بتغيير اسم النموذج في `agent.py`:
llm = ChatOllama(
model="llama3.1",
temperature=0.7
)تذكر تنزيل النموذج أولاً باستخدام `ollama pull llama3.1`.
كيف يعمل الوكيل تحت الغطاء
يستخدم الوكيل نمط **ReAct** (التفكير + العمل). عندما ترسل استعلاماً، يقوم النموذج اللغوي بما يلي:
1. **يفكر** في الأداة التي سيستخدمها ولماذا. 2. **يعمل** باستدعاء الأداة بالإدخال المناسب. 3. **يلاحظ** المخرجات من الأداة. 4. **يكرر** حتى يحصل على معلومات كافية للإجابة.
هذا واضح في المخرجات المفصلة. على سبيل المثال، قد ترى:
> دخول سلسلة وكيل جديدة...
فكرت: أحتاج إلى معرفة عدد سكان طوكيو وحساب 15*23. يمكنني استخدام WebSearch للأولى وCalculator للثانية.
إجراء: WebSearch
إدخال الإجراء: عدد سكان طوكيو
ملاحظة: يبلغ عدد سكان طوكيو حوالي 14 مليون نسمة (تقدير 2024).
فكرت: الآن أحتاج إلى حساب 15*23.
إجراء: Calculator
إدخال الإجراء: 15*23
ملاحظة: 345
فكرت: لدي كلا المعلومتين.
الإجابة النهائية: عدد سكان طوكيو حوالي 14 مليون نسمة، و15 * 23 يساوي 345.التوسع: من المحلي إلى الإنتاج
بينما يستخدم هذا المثال نموذجاً لغوياً محلياً وأدوات بسيطة، فإن نفس النمط يتوسع لبيئات الإنتاج. شركات مثل Microsoft وAnthropic أظهرت وكلاء يتكاملون مع قواعد البيانات وواجهات برمجة التطبيقات السحابية وأنظمة المؤسسات. الاختلافات الرئيسية هي:
- **حجم النموذج**: النماذج الأكبر (70B+ معلمة) غالباً ما تؤدي أداءً أفضل في اختيار الأدوات.
- **تعقيد الأداة**: الأدوات في العالم الحقيقي قد تتطلب مصادقة وتحديد معدل ومعالجة أخطاء.
- **الذاكرة**: الوكلاء في الإنتاج يستخدمون قواعد بيانات متجهة لتخزين تاريخ المحادثة والسياق المسترجع.
للنشر المحلي، يمكنك توسيع هذا الإعداد بأدوات لـ:
- استعلامات قاعدة بيانات SQL
- استدعاءات API لخدمات مثل الطقس أو أسعار الأسهم
- توليد الصور باستخدام نماذج محلية (مثل Stable Diffusion)
- إدارة الملفات (إنشاء، تعديل، حذف)
الخاتمة
تحويل نموذج لغوي محلي إلى وكيل يستخدم الأدوات يفتح مستوى جديداً من القدرات. ببضعة أسطر من Python ونموذج محلي، يمكنك بناء مساعد لا يولد النصوص فقط بل يحسب ويبحث ويتفاعل مع ملفاتك. هذا النهج يحترم خصوصيتك، ويعمل دون اتصال بالإنترنت، ويمنحك تحكماً كاملاً في الأدوات التي يمكن لوكيلك استخدامها.
المثال المقدم هنا هو نقطة بداية. بينما تضيف المزيد من الأدوات وتحسن مطالبات الوكيل، ستراه يتعامل مع مهام متزايدة التعقيد. مستقبل الذكاء الاصطناعي المحلي لا يقتصر فقط على تشغيل النماذج—بل يتعلق ببناء وكلاء يتصرفون نيابة عنك، بأمان واستقلالية.
المصادر
أسئلة شائعة
عن ماذا يتحدث هذا المقال؟
يتناول هذا المقال موضوع "من النموذج اللغوي المحلي إلى الوكيل المستخدم للأدوات" ضمن تصنيف وكلاء الذكاء الاصطناعي. تعلم كيفية تحويل نموذج لغة كبير محلي إلى وكيل قوي من خلال دمج أدوات خارجية مثل البحث على الويب وواجهات برمجة التطبيقات ومنفذي الأكواد، مما يتيح إنجاز المهام بشكل مستقل يتجاوز مجرد توليد النصوص البسيطة.
لمن يفيد هذا المقال؟
يفيد القراء المهتمين بفهم أدوات وتقنيات الذكاء الاصطناعي بطريقة عملية وواضحة.
ما الخطوة التالية؟
اقرأ المقال كاملاً، راجع المصادر المرفقة، ثم جرّب الأفكار المناسبة لاحتياجك بحذر.



