بناء تطبيقات ذكاء اصطناعي معمارية باستخدام LangGraph وواجهة برمجة تطبيقات Claude
يوفر هذا البرنامج التعليمي دليلًا عمليًا لتنفيذ LangGraph، وهو إطار عمل مبسط قائم على الرسم البياني لتنسيق تطبيقات الذكاء الاصطناعي، مدمج بسلاسة مع واجهة برمجة تطبيقات Claude من Anthropic. من خلال التعليمات البرمجية القابلة للتنفيذ والمُحسّنة لـ Google Colab، سيتعلم المطورون كيفية بناء وتصور سير عمل الذكاء الاصطناعي كعقد مترابطة تؤدي مهامًا متميزة، مثل توليد إجابات موجزة، وتحليل الاستجابات بشكل نقدي، وتأليف محتوى مدونة تقنية تلقائيًا.
مقدمة إلى LangGraph
يبرز هذا التنفيذ المدمج لـ LangGraph بنيته المبتكرة القائمة على عقد الرسم البياني. يمكنه إدارة تسلسلات معقدة من مهام معالجة اللغة الطبيعية التي تعمل بفضل Claude، بدءًا من سيناريوهات الأسئلة والأجوبة الأساسية وحتى خطوط أنابيب إنشاء المحتوى المتقدمة.
بيئة العمل و المكتبات اللازمة
تثبيت المكتبات
سنبدأ بتثبيت المكتبات الضرورية لبناء وتصور سير عمل الذكاء الاصطناعي المُنظّم. تتضمن هذه المكتبات:
getpass
: لإدخال مفتاح واجهة برمجة التطبيقات بشكل آمن.os
: للتفاعل مع نظام التشغيل.json
: لمعالجة البيانات بتنسيق JSON.requests
: لإجراء طلبات HTTP.typing
: لإضافة تعليقات الأنواع لتحسين الوضوح والصيانة.dataclasses
: لإنشاء فئات البيانات بسهولة.networkx
: لإنشاء وتلاعب بالرسوم البيانية.matplotlib
: لعرض الرسوم البيانية.IPython.display
: لعرض المخرجات التفاعلية في Google Colab.anthropic
: للتفاعل مع واجهة برمجة تطبيقات Claude.
يمكن تثبيت هذه المكتبات باستخدام الأمر التالي في Google Colab:
!pip install getpass os json requests typing dataclasses networkx matplotlib ipython anthropic
إعداد مفتاح واجهة برمجة التطبيقات
يجب عليك إدخال مفتاح واجهة برمجة تطبيقات Anthropic الخاص بك. سيتم تخزين هذا المفتاح كمتغير بيئي لحمايته:
from getpass import getpass
import os
anthropic_key = getpass("أدخل مفتاح واجهة برمجة تطبيقات Anthropic الخاص بك: ")
os.environ["ANTHROPIC_API_KEY"] = anthropic_key
print("تم تعيين المفتاح:", "ANTHROPIC_API_KEY" in os.environ)
تعريف بنية العقدة (Node)
نحدد بنية كل عقدة في سير عمل LangGraph باستخدام فئة بيانات NodeConfig
:
from dataclasses import dataclass, field
from typing import Dict, List, Any, Callable
@dataclass
class NodeConfig:
name: str
function: Callable
inputs: List[str] = field(default_factory=list)
outputs: List[str] = field(default_factory=list)
config: Dict[str, Any] = field(default_factory=dict)
فئة LangGraph
تُنفذ فئة LangGraph
إطار عمل خفيف الوزن لبناء وتنفيذ سير عمل الذكاء الاصطناعي القائم على الرسم البياني باستخدام Claude من Anthropic. تسمح هذه الفئة للمستخدمين بتعريف عقد مُدمجة، سواء كانت عبارات مُعتمدة على Claude أو دوال تحويل مخصصة، وربطها عبر التبعيات، وتصور خط الأنابيب بأكمله، وتنفيذها بترتيب طوبولوجي.
إضافة عقدة
تسمح هذه الدالة بإضافة عقدة جديدة إلى الرسم البياني:
def add_node(self, node_config: NodeConfig):
self.nodes[node_config.name] = node_config
self.graph.add_node(node_config.name)
for input_node in node_config.inputs:
if input_node in self.nodes:
self.graph.add_edge(input_node, node_config.name)
return self
إنشاء عقدة Claude
تُسهّل هذه الدالة إنشاء عقدة تتفاعل مع نموذج Claude:
def claude_node(self, name: str, prompt_template: str, model: str = "claude-3-7-sonnet-20250219", inputs: List[str] = None, outputs: List[str] = None, system_prompt: str = None):
# ... (الكود هنا) ...
إنشاء عقدة تحويل
تسمح هذه الدالة بإضافة عقدة تقوم بتحويل البيانات:
def transform_node(self, name: str, transform_fn: Callable, inputs: List[str] = None, outputs: List[str] = None):
# ... (الكود هنا) ...
عرض الرسم البياني
تستخدم هذه الدالة matplotlib
لعرض الرسم البياني:
def visualize(self):
# ... (الكود هنا) ...
تنفيذ الرسم البياني
تُنفّذ هذه الدالة الرسم البياني بترتيب طوبولوجي:
def execute(self, initial_state: Dict[str, Any] = None):
# ... (الكود هنا) ...
أمثلة
مثال بسيط: الأسئلة والأجوبة
يوضح هذا المثال كيفية استخدام LangGraph للرد على الأسئلة:
def run_example(question="ما هي الفوائد الرئيسية لاستخدام بنية قائمة على الرسم البياني لتطبيقات الذكاء الاصطناعي؟"):
# ... (الكود هنا) ...
مثال متقدم: توليد مدونة
يوضح هذا المثال كيفية استخدام LangGraph لتوليد محتوى مدونة:
def run_advanced_example():
# ... (الكود هنا) ...
الخاتمة
يُظهر هذا البرنامج التعليمي كيفية استخدام LangGraph وواجهة برمجة تطبيقات Claude لبناء تطبيقات ذكاء اصطناعي معمارية. من خلال تصور تدفق المهام وفصل المسؤوليات بين العقد، مثل معالجة الأسئلة، والتقييم التحليلي، وتخطيط المحتوى، والتجميع، يكتسب المطورون خبرة عملية في بناء أنظمة ذكاء اصطناعي قابلة للصيانة وقابلة للتطوير. توفر التبعيات الواضحة للعقد وقدرات Claude المتطورة في معالجة اللغة حلاً فعالاً لتنسيق عمليات الذكاء الاصطناعي المعقدة، خاصةً بالنسبة للنماذج الأولية السريعة والتنفيذ في بيئات مثل Google Colab.
اترك تعليقاً