بناء وكيل سير عمل ذكاء اصطناعي تكراري باستخدام LangGraph و Gemini: دليل برمجي خطوة بخطوة
يوضح هذا البرنامج التعليمي كيفية بناء وكيل ذكي متعدد الخطوات لإدارة الاستفسارات باستخدام LangGraph و Gemini 1.5 Flash. تتمثل الفكرة الأساسية في هيكلة استنتاج الذكاء الاصطناعي كسير عمل ذي حالة، حيث يتم تمرير استعلام وارد عبر سلسلة من العقد ذات الأغراض المحددة: التوجيه، التحليل، البحث، توليد الاستجابة، والتحقق. تعمل كل عقدة ككتلة وظيفية ذات دور محدد جيدًا، مما يجعل الوكيل ليس فقط تفاعليًا بل واعيًا تحليليًا. باستخدام StateGraph من LangGraph، نقوم بتنسيق هذه العقد لإنشاء نظام حلقي يمكنه إعادة تحليل وتحسين مخرجاته حتى يتم التحقق من صحة الاستجابة على أنها كاملة أو يتم الوصول إلى حد أقصى للتكرارات.
1. التثبيت والإعدادات
أولاً، نقوم بتثبيت ثلاث حزم Python أساسية لبناء سير عمل الوكيل الذكي:
langgraph
: تمكّن التنسيق القائم على الرسم البياني لوكلاء الذكاء الاصطناعي.langchain-google-genai
: توفر التكامل مع نماذج Gemini من Google.python-dotenv
: يسمح بالتحميل الآمن لمتغيرات البيئة من ملفات.env
.
يمكن تثبيت هذه الحزم باستخدام الأمر التالي:
pip install langgraph langchain-google-genai python-dotenv
بعد ذلك، نقوم باستيراد الوحدات والكتب الأساسية لبناء سير عمل الوكيل، بما في ذلك ChatGoogleGenerativeAI
للتفاعل مع نماذج Gemini و StateGraph
لإدارة حالة المحادثة. يجب تعيين مفتاح API الخاص بك لـ Gemini في متغير بيئة:
import os
from typing import Dict, Any, List
from dataclasses import dataclass
from langgraph.graph import Graph, StateGraph, END
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.schema import HumanMessage, SystemMessage
import json
os.environ["GOOGLE_API_KEY"] = "Use Your API Key Here"
2. تعريف حالة الوكيل (AgentState
)
تحدد فئة البيانات AgentState
الحالة المشتركة التي تستمر عبر العقد المختلفة في سير عمل LangGraph. وهي تتبع الحقول الرئيسية، بما في ذلك استعلام المستخدم، والسياق المسترد، وأي تحليل تم إجراؤه، والاستجابة المُولدة، والإجراء التالي المُوصى به. كما تتضمن عداد تكرارات وحد أقصى للتكرارات للتحكم في عدد مرات تكرار سير العمل، مما يسمح بالاستنتاج أو اتخاذ القرارات التكراري من قبل الوكيل.
@dataclass
class AgentState:
"""State shared across all nodes in the graph"""
query: str = ""
context: str = ""
analysis: str = ""
response: str = ""
next_action: str = ""
iteration: int = 0
max_iterations: int = 3
3. بناء وكيل الذكاء الاصطناعي القائم على الرسم البياني (GraphAIAgent
)
تُعرّف فئة GraphAIAgent
سير عمل ذكاء اصطناعي قائم على LangGraph باستخدام نماذج Gemini لتحليل الاستعلامات، والبحث عنها، والرد عليها، والتحقق من صحتها بشكل تكراري. وهي تستخدم عقدًا نمطية، مثل الموجه، والمحلل، والباحث، والمسؤول عن الرد، والمدقق، للتفكير في المهام المعقدة، وصقل الاستجابات من خلال تكرارات مُتحكمة.
3.1. بناء الرسم البياني (_build_graph
)
تُنشئ هذه الدالة الرسم البياني لـ LangGraph، وتضيف العقد والحواف بينها.
def _build_graph(self) -> StateGraph:
"""Build the LangGraph workflow"""
# ... (Code to add nodes and edges to the graph) ...
3.2. وظائف العقد
تُعرّف الدوال التالية وظائف كل عقدة في الرسم البياني:
_router_node
: توجيه وتصنيف الاستعلام الوارد._analyzer_node
: تحليل الاستعلام وتحديد النهج._researcher_node
: إجراء بحث إضافي أو جمع معلومات._responder_node
: توليد الاستجابة النهائية._validator_node
: التحقق من جودة الاستجابة واكتمالها._decide_next_step
: تحديد ما إذا كان يجب البحث أو الرد مباشرة._should_continue
: تحديد ما إذا كان يجب الاستمرار في التكرار أو إنهاء العملية.
(سيتم وضع كود كل دالة هنا بشكل منفصل مع شرح مفصل لكل منها)
4. تشغيل الوكيل (run
)
تُشغّل دالة run
الوكيل باستخدام استعلام معين.
def run(self, query: str) -> str:
"""Run the agent with a query"""
initial_state = AgentState(query=query)
result = self.graph.invoke(initial_state)
return result["response"]
5. الدالة الرئيسية (main
)
تُنشئ الدالة الرئيسية main
مثيلًا لـ GraphAIAgent
وتشغّله على مجموعة من استعلامات الاختبار، وتطبع كل استعلام والاستجابة التي تم توليدها بواسطة الذكاء الاصطناعي.
def main():
agent = GraphAIAgent("Use Your API Key Here")
test_queries = [
"Explain quantum computing and its applications",
"What are the best practices for machine learning model deployment?",
"Create a story about a robot learning to paint"
]
# ... (Code to run the agent and print the results) ...
6. الخاتمة
يمثل هذا الوكيل، من خلال الجمع بين آلة الحالة المُهيكلة لـ LangGraph وقوة ذكاء المحادثة في Gemini، نموذجًا جديدًا في هندسة سير عمل الذكاء الاصطناعي، وهو نموذج يعكس دورات التفكير البشرية للاستفسار، والتحليل، والتحقق. يوفر البرنامج التعليمي قالبًا نمطيًا وقابلًا للتوسيع لتنمية وكلاء ذكاء اصطناعي متقدمين يمكنهم التعامل بشكل مستقل مع مهام متنوعة، بدءًا من الإجابة على الاستعلامات المعقدة وحتى توليد المحتوى الإبداعي.
اترك تعليقاً