بناء نظام بحث متعدد الوكلاء باستخدام وكلاء OpenAI: دليل شامل
يُقدم هذا الدليل الشامل طريقة عملية لبناء نظام بحث متعدد الوكلاء باستخدام وكلاء OpenAI، مع التركيز على استخدام أدوات الوظائف، وتسليم المهام بين الوكلاء، وذاكرة الجلسة. سنبدأ من الصفر، ونشرح كل خطوة بالتفصيل، مع توفير أمثلة برمجية قابلة للتطبيق.
إعداد بيئة العمل وتثبيت المكتبات
قبل البدء، نحتاج إلى إعداد بيئة العمل وتثبيت المكتبات اللازمة. سنستخدم Google Colab لتسهيل العملية:
-
تفعيل مفتاح API الخاص بـ OpenAI: قم بتعيين متغير البيئة
OPENAI_API_KEYبقيمة مفتاح API الخاص بك. هذا المفتاح ضروري للتواصل مع خدمات OpenAI. -
تثبيت مكتبة OpenAI Agents: استخدم الأمر التالي لتثبيت المكتبة:
pip install openai-agents python-dotenv -
استيراد المكتبات: سنحتاج إلى استيراد عدة مكتبات لبناء نظامنا، بما في ذلك:
import asyncio import json from datetime import datetime from agents import Agent, Runner, function_tool, SQLiteSession import os
تعريف أدوات الوظائف (Function Tools)
سنبدأ بتعريف ثلاث أدوات وظائف أساسية لوكلائنا:
البحث على الويب (web_search)
هذه الأداة تحاكي نتائج البحث على الويب:
@function_tool
def web_search(query: str, max_results: int = 3) -> str:
"""محاكاة لنتائج البحث على الويب لأغراض العرض التوضيحي."""
results = [
f"نتيجة 1 لـ '{query}': أحدث النتائج تُظهر تطورات كبيرة...",
f"نتيجة 2 لـ '{query}': تشير الأبحاث إلى أساليب جديدة في هذا المجال...",
f"نتيجة 3 لـ '{query}': يشير تحليل الخبراء إلى آثار مهمة..."
]
return f"نتائج البحث عن '{query}':n" + "n".join(results[:max_results])
تحليل البيانات (analyze_data)
هذه الأداة تقوم بتحليل البيانات المقدمة:
@function_tool
def analyze_data(data: str, analysis_type: str = "summary") -> str:
"""تحليل البيانات المقدمة بأنواع تحليل مختلفة."""
analyses = {
"summary": f"ملخص: تحتوي البيانات على {len(data.split())} نقاط رئيسية مع مواضيع رئيسية حول الابتكار والكفاءة.",
"detailed": f"تحليل مفصل: يكشف تفكيك {len(data)} حرف من البيانات عن أنماط في المنهجية والاستنتاجات.",
"trends": f"تحليل الاتجاهات: تشير البيانات الحالية إلى مسار تصاعدي مع تحديد 3 نقاط تحول رئيسية."
}
return analyses.get(analysis_type, "تم التحليل: تم إجراء التقييم القياسي.")
حفظ نتائج البحث (save_research)
هذه الأداة تقوم بحفظ نتائج البحث:
@function_tool
def save_research(title: str, content: str, category: str = "general") -> str:
"""حفظ نتائج البحث في تنسيق منظم."""
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
research_entry = {
"title": title,
"content": content,
"category": category,
"timestamp": timestamp,
"id": f"research_{len(content) % 1000}"
}
return f" تم حفظ البحث: '{title}' في التصنيف '{category}' في {timestamp}"
تعريف وكلاء OpenAI
سنُعرّف ثلاثة وكلاء OpenAI، كلٌّ منهم لديه دور محدد:
اختصاصي البحث (research_agent)
research_agent = Agent(
name="اختصاصي البحث",
instructions="""أنت باحث خبير يقوم بـ:
- إجراء عمليات بحث شاملة على الويب حول أي موضوع.
- تحليل المعلومات بشكل نقدي وموضوعي.
- تحديد الأفكار والأنماط الرئيسية.
- استخدام الأدوات دائمًا لجمع وتحليل البيانات قبل الاستجابة.""",
tools=[web_search, analyze_data]
)
محلل البيانات (analyst_agent)
analyst_agent = Agent(
name="محلل البيانات",
instructions="""أنت محلل بيانات كبير يقوم بـ:
- أخذ نتائج البحث وإجراء تحليل عميق.
- تحديد الاتجاهات والأنماط والرؤى القابلة للتنفيذ.
- إنشاء ملخصات وتوصيات منظمة.
- استخدام أدوات التحليل لتعزيز الفهم.""",
tools=[analyze_data, save_research]
)
منسق البحث (coordinator_agent)
coordinator_agent = Agent(
name="منسق البحث",
instructions="""أنت منسق بحث يقوم بـ:
- إدارة مشاريع البحث متعددة الخطوات.
- تفويض المهام إلى المتخصصين المناسبين.
- توليف النتائج من مصادر متعددة.
- اتخاذ القرارات النهائية بشأن اتجاه البحث.
- تسليم المهام إلى research_agent لجمع البيانات الأولية.
- تسليم المهام إلى analyst_agent للتحليل المفصل.""",
handoffs=[research_agent, analyst_agent],
tools=[save_research]
)
تنفيذ سير عمل البحث
سنُنفذ الآن سير عمل بحث متكامل باستخدام الوكلاء الثلاثة:
# ... (الكود الخاص بـ run_advanced_research_workflow و run_focused_analysis و quick_research_sync و main يضاف هنا) ...
(يجب إضافة الكود الكامل لباقي الوظائف هنا من الكود الأصلي، مع ترجمته وتنسيقه بشكل مناسب)
استنتاج
يُمكن لهذا النظام القائم على وكلاء OpenAI أن يُحسّن بشكل كبير عمليات البحث المعقدة، ويُمكن تخصيصه بسهولة لإجراء أنواع مختلفة من البحوث. يُشجّع هذا الدليل على التجربة والتعديل، مع إضافة أدوات جديدة وتكييف أدوار الوكلاء لتناسب احتياجاتك.






اترك تعليقاً