إطار عمل ذكاء اصطناعي متعدد العقد قائم على الرسوم البيانية لأتمتة المهام المعقدة
يوضح هذا البرنامج التعليمي كيفية تطوير إطار عمل متقدم لوكيل ذكاء اصطناعي قائم على الرسوم البيانية، مدعومًا بواجهة برمجة التطبيقات Gemini من جوجل. هدفنا هو بناء وكلاء ذكيين متعددي الخطوات يقومون بتنفيذ المهام من خلال هيكل رسومي محدد جيدًا من العقد المترابطة. تمثل كل عقدة وظيفة محددة، بدءًا من استقبال المدخلات، وإجراء المعالجة المنطقية، واتخاذ القرارات، وإنتاج المخرجات. سنستخدم لغة بايثون، وNetworkX لنمذجة الرسوم البيانية، وMatplotlib لإظهارها بيانياً. في النهاية، سنقوم بتنفيذ وتشغيل مثالين كاملين، مساعد بحث وحلّ مشكلات، لإظهار كيف يمكن للإطار التعامل بكفاءة مع سير العمل المعقدة في مجال الاستدلال.
تثبيت المكتبات وتكوين واجهة برمجة التطبيقات Gemini
نبدأ بتثبيت المكتبات الضرورية: google-generativeai
و networkx
و matplotlib
، لدعم إطار عمل الوكيل القائم على الرسوم البيانية. بعد استيراد الوحدات الأساسية، نقوم بتكوين واجهة برمجة التطبيقات Gemini باستخدام مفتاح واجهة برمجة التطبيقات الخاص بنا لتمكين إمكانيات توليد المحتوى القوية داخل نظام الوكيل.
pip install -q google-generativeai networkx matplotlib
import google.generativeai as genai
import networkx as nx
import matplotlib.pyplot as plt
from typing import Dict, List, Any, Callable
import json
import asyncio
from dataclasses import dataclass
from enum import Enum
API_KEY = "use your API key here" # استبدل هذا بمفتاح واجهة برمجة التطبيقات الخاص بك
genai.configure(api_key=API_KEY)
تعريف أنواع العقد و هيكلها
نعرف تعداد NodeType
لتصنيف أنواع مختلفة من عقد الوكيل: الإدخال، والمعالجة، واتخاذ القرار، والإخراج. ثم، باستخدام dataclass AgentNode
، نقوم بهيكلة كل عقدة بمعرف، ونوع، وموجه، ووظيفة اختيارية، وقائمة بالتبعيات، مما يسمح لنا ببناء رسم بياني للوكيل معياري ومرن.
class NodeType(Enum):
INPUT = "input"
PROCESS = "process"
DECISION = "decision"
OUTPUT = "output"
@dataclass
class AgentNode:
id: str
type: NodeType
prompt: str
function: Callable = None
dependencies: List[str] = None
إنشاء وكيل بحث
نقوم بإنشاء وكيل بحث عن طريق إضافة عقد متخصصة بشكل تسلسلي إلى الرسم البياني. بدءًا من إدخال الموضوع، نحدد تدفق عملية يتضمن التخطيط، ومراجعة الأدبيات، والتحليل. ثم يتخذ الوكيل قرارًا يتعلق بالجودة بناءً على الدراسة، وأخيرًا يولد تقرير بحث شامل، يلتقط دورة حياة كاملة لسير عمل بحث منظم.
def create_research_agent():
agent = GraphAgent() # افتراض وجود فئة GraphAgent تم تعريفها مسبقاً
# عقدة الإدخال
agent.add_node(AgentNode(
id="topic_input",
type=NodeType.INPUT,
prompt="Research topic input"
))
agent.add_node(AgentNode(
id="research_plan",
type=NodeType.PROCESS,
prompt="Create a comprehensive research plan for the topic. Include 3-5 key research questions and methodology.",
dependencies=["topic_input"]
))
agent.add_node(AgentNode(
id="literature_review",
type=NodeType.PROCESS,
prompt="Conduct a thorough literature review. Identify key papers, theories, and current gaps in knowledge.",
dependencies=["research_plan"]
))
agent.add_node(AgentNode(
id="analysis",
type=NodeType.PROCESS,
prompt="Analyze the research findings. Identify patterns, contradictions, and novel insights.",
dependencies=["literature_review"]
))
agent.add_node(AgentNode(
id="quality_check",
type=NodeType.DECISION,
prompt="Evaluate research quality. Is the analysis comprehensive? Are there missing perspectives? Return 'APPROVED' or 'NEEDS_REVISION' with reasons.",
dependencies=["analysis"]
))
agent.add_node(AgentNode(
id="final_report",
type=NodeType.OUTPUT,
prompt="Generate a comprehensive research report with executive summary, key findings, and recommendations.",
dependencies=["quality_check"]
))
return agent
إنشاء وكيل لحل المشكلات
نقوم ببناء وكيل لحل المشكلات عن طريق تحديد تسلسل منطقي للعقد، بدءًا من استقبال بيان المشكلة. يقوم الوكيل بتحليل المشكلة، ويولد عدة حلول، ويقيمها بناءً على الجدوى والفعالية، ويختتم بإنتاج خطة تنفيذ منظمة، مما يسمح بحل المشكلة تلقائيًا خطوة بخطوة.
def create_problem_solver():
agent = GraphAgent() # افتراض وجود فئة GraphAgent تم تعريفها مسبقاً
# ... (كود مشابه لإنشاء وكيل البحث، مع تغيير أسماء العقد والموجهات)
return agent
تشغيل نماذج تجريبية
نختتم البرنامج التعليمي بتشغيل وكيلين تجريبيين قويين، أحدهما للبحث والآخر لحل المشكلات. في كل حالة، نقوم بعرض الرسم البياني، وتهيئة الإدخال، وتشغيل عقد الوكيل عقدة تلو الأخرى باستخدام ترتيب طوبولوجي. مع توليد Gemini استجابات سياقية في كل خطوة، نلاحظ كيف يتقدم كل وكيل بشكل مستقل من خلال التخطيط، والتحليل، واتخاذ القرار، وتوليد الإخراج، مما يُظهر في النهاية الإمكانات الكاملة لإطار العمل القائم على الرسوم البيانية.
# ... (كود لتنفيذ وكلاء البحث وحل المشكلات، مع معالجة الاستثناءات وإظهار النتائج)
الخاتمة
لقد قمنا بنجاح بتطوير وتنفيذ وكلاء ذكيين يقسمون المهام ويحلوها خطوة بخطوة، باستخدام بنية مدفوعة بالرسوم البيانية. نرى كيف تعالج كل عقدة مطالبات تعتمد على السياق، وتستفيد من إمكانيات Gemini لتوليد المحتوى، وتمرر النتائج إلى العقد اللاحقة. هذا التصميم المعياري يعزز المرونة ويسمح لنا أيضًا بعرض تدفق المنطق بوضوح.
اترك تعليقاً