بناء أدوات ذكاء اصطناعي مخصصة لوكلاء الذكاء الاصطناعي: دمج التعلم الآلي والتحليل الإحصائي

يُعد بناء أدوات مخصصة أمرًا بالغ الأهمية لتطوير وكلاء ذكاء اصطناعي قابلين للتخصيص. يوضح هذا البرنامج التعليمي كيفية إنشاء أداة تحليل بيانات قوية وذكية باستخدام بايثون، يمكن دمجها في وكلاء ذكاء اصطناعي مدعومين بـ LangChain. من خلال تحديد مخطط مُبَنيّ لمدخلات المستخدم وتنفيذ وظائف رئيسية مثل تحليل الارتباط، والتجميع، والكشف عن القيم الشاذة، وتحديد سمات متغير الهدف، تُحوّل هذه الأداة البيانات الجدولية الخام إلى رؤى عملية. باستغلال قابلية LangChain’s BaseTool للتقسيم إلى وحدات، يوضح التنفيذ كيفية قيام المطورين بتغليف المنطق الخاص بمجال معين وبناء مكونات قابلة لإعادة الاستخدام، مما يعزز القدرات التحليلية لأنظمة الذكاء الاصطناعي المستقلة.

تثبيت الحزم اللازمة وتهيئة بيئة العمل

نقوم أولاً بتثبيت حزم بايثون الأساسية للتحليل، والتصور، والتعلم الآلي، وتطوير أدوات LangChain:

pip install langchain langchain-core pandas numpy matplotlib seaborn scikit-learn

ثم نقوم باستيراد المكتبات الرئيسية، بما في ذلك pandas و numpy و scikit-learn و langchain_core، لإعداد بيئة العمل لبناء أداة ذكية مخصصة لوكلاء الذكاء الاصطناعي:

import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
from typing import Dict, List, Tuple, Optional, Any
from langchain_core.tools import BaseTool
from langchain_core.tools.base import ToolException
from pydantic import BaseModel, Field
import json

توفر هذه المكتبات الأساس لمعالجة البيانات قبل التحليل، والتجميع، والتقييم، ودمج الأدوات.

تعريف مخطط مدخلات الأداة

نحدد مخطط مدخلات الأداة المُخصّصة باستخدام Pydantic's BaseModel:

class DataAnalysisInput(BaseModel):
    data: List[Dict[str, Any]] = Field(description="List of data records as dictionaries")
    analysis_type: str = Field(default="comprehensive", description="Type of analysis: 'comprehensive', 'clustering', 'correlation', 'outlier'")
    target_column: Optional[str] = Field(default=None, description="Target column for focused analysis")
    max_clusters: int = Field(default=5, description="Maximum clusters for clustering analysis")

تضمن فئة DataAnalysisInput أن تتبع البيانات الواردة تنسيقًا مُبَنّى، مما يسمح للمستخدمين بتحديد مجموعة البيانات، ونوع التحليل، وعمود الهدف الاختياري، والحد الأقصى لعدد المجموعات في مهام التجميع. وهي بمثابة واجهة نظيفة للتحقق من صحة المدخلات قبل بدء التحليل.

بناء أداة IntelligentDataAnalyzer

class IntelligentDataAnalyzer(BaseTool):
    name: str = "intelligent_data_analyzer"
    description: str = "Advanced data analysis tool that performs statistical analysis, machine learning clustering, outlier detection, correlation analysis, and generates visualizations with actionable insights."
    args_schema: type[BaseModel] = DataAnalysisInput
    response_format: str = "content_and_artifact"

    # ... (rest of the code as provided in the original post) ...

فئة IntelligentDataAnalyzer هي أداة مخصصة مبنية باستخدام LangChain’s BaseTool. تُدمج هذه الأداة أساليب تحليلية متعددة، بما في ذلك توليد مصفوفة الارتباط، وتجميع K-Means مع تقييم silhouette، والكشف عن القيم الشاذة باستخدام IQR و z-score، والإحصائيات الوصفية على عمود الهدف، في خط أنابيب موحد. لا تستخرج الأداة رؤى قيّمة فحسب، بل تُنشئ أيضًا توصيات وتقريرًا موجزًا، مما يجعلها مفيدة للغاية لبناء وكلاء ذكاء اصطناعي يحتاجون إلى قدرات دعم القرار القائمة على البيانات.

مثال على استخدام الأداة

data_analyzer = IntelligentDataAnalyzer()
sample_data = [
    {"age": 25, "income": 50000, "education": "Bachelor", "satisfaction": 7},
    {"age": 35, "income": 75000, "education": "Master", "satisfaction": 8},
    # ... more sample data ...
]
result = data_analyzer.invoke({
    "data": sample_data,
    "analysis_type": "comprehensive",
    "target_column": "satisfaction"
})
print("Analysis Summary:")
print(result)

في هذا المثال، نقوم بتهيئة أداة IntelligentDataAnalyzer وإدخال مجموعة بيانات عينة تتضمن بيانات ديموغرافية وبيانات الرضا. من خلال تحديد نوع التحليل على أنه “شمولي” وتعيين “الرضا” كعمود الهدف، تقوم الأداة بإجراء مجموعة كاملة من التحليلات، بما في ذلك تحديد الخصائص الإحصائية، والتحقق من الارتباط، والتجميع، والكشف عن القيم الشاذة، وتحليل توزيع الهدف. المخرجات النهائية هي ملخص يمكن قراءته من قبل الإنسان ورؤى مُبَنّىة تُظهر كيف يمكن لوكيل ذكاء اصطناعي معالجة البيانات الجدولية في العالم الحقيقي وتفسيرها تلقائيًا.

الخلاصة

لقد قمنا بإنشاء أداة مخصصة متقدمة لدمجها مع وكيل الذكاء الاصطناعي. تتعامل فئة IntelligentDataAnalyzer مع مجموعة متنوعة من المهام التحليلية، بدءًا من تحديد الخصائص الإحصائية وحتى التجميع القائم على التعلم الآلي، كما تقدم رؤى في مخرجات مُبَنّىة مع توصيات واضحة. يُبرز هذا النهج كيف يمكن لأدوات LangChain المخصصة سد الفجوة بين علوم البيانات والذكاء الاصطناعي التفاعلي، مما يجعل الوكلاء أكثر وعيًا بالسياق وقادرين على اتخاذ قرارات غنية قائمة على البيانات.

المصدر: MarkTechPost