بناء سير عمل متطور للذكاء الاصطناعي متعدد الوكلاء باستخدام AutoGen و Semantic Kernel

يقدم هذا البرنامج التعليمي شرحًا تفصيليًا لكيفية دمج AutoGen و Semantic Kernel بسلاسة مع نموذج Gemini Flash من جوجل. سنبدأ بإعداد فئات GeminiWrapper و SemanticKernelGeminiPlugin لربط القوة التوليدية لـ Gemini مع آلية الوكلاء المتعددة في AutoGen. من هناك، سنقوم بتكوين وكلاء متخصصين، بدءًا من مراجعي التعليمات البرمجية وصولًا إلى المحللين المبدعين، مع توضيح كيفية الاستفادة من واجهة برمجة التطبيقات ConversableAgent الخاصة بـ AutoGen جنبًا إلى جنب مع الدوال المزينة في Semantic Kernel لتحليل النصوص، والتلخيص، ومراجعة التعليمات البرمجية، وحل المشكلات الإبداعية. من خلال الجمع بين إطار عمل الوكلاء القوي في AutoGen ونهج الدوال القائم على الوظائف في Semantic Kernel، سننشئ مساعد ذكاء اصطناعي متطورًا يتكيف مع مجموعة متنوعة من المهام مع رؤى منظمة وقابلة للتنفيذ.

1. إعداد بيئة العمل وتثبيت المكتبات

نبدأ بتثبيت التبعيات الأساسية: pyautogen, semantic-kernel, google-generativeai, و python-dotenv، للتأكد من أن لدينا جميع المكتبات اللازمة لإعداد الوكلاء المتعددين والوظائف الدلالية. ثم نقوم باستيراد الوحدات الأساسية في بايثون (os, asyncio, typing) بالإضافة إلى autogen لتنسيق الوكلاء، و genai للوصول إلى واجهة برمجة تطبيقات Gemini، وفئات Semantic Kernel والزخارف لتحديد وظائف الذكاء الاصطناعي الخاصة بنا.

pip install pyautogen semantic-kernel google-generativeai python-dotenv
import os
import asyncio
from typing import Dict, Any, List
import autogen
import google.generativeai as genai
from semantic_kernel import Kernel
from semantic_kernel.functions import KernelArguments
from semantic_kernel.functions.kernel_function_decorator import kernel_function

2. تهيئة Gemini API

نقوم بتعريف GEMINI_API_KEY ثم تهيئة عميل genai لكي تكون جميع مكالمات Gemini اللاحقة مُصادقة. ثم نبني config_list التي تحتوي على إعدادات نموذج Gemini Flash، واسم النموذج، ومفتاح API، ونوع نقطة النهاية، وعنوان URL الأساسي، والتي سنمررها إلى وكلائنا للتفاعلات مع LLM.

GEMINI_API_KEY = "Use Your API Key Here"  # استبدل هذا بمفتاح API الخاص بك
genai.configure(api_key=GEMINI_API_KEY)
config_list = [
    {
        "model": "gemini-1.5-flash",
        "api_key": GEMINI_API_KEY,
        "api_type": "google",
        "api_base": "https://generativelanguage.googleapis.com/v1beta",
    }
]

3. فئة GeminiWrapper

نقوم بتغليف جميع تفاعلات Gemini Flash في فئة GeminiWrapper، حيث نقوم بتهيئة GenerativeModel للنموذج الذي اخترناه ونعرض طريقة generate_response البسيطة. في هذه الطريقة، نقوم بتمرير المطالبة ودرجة الحرارة إلى واجهة برمجة تطبيقات generate_content الخاصة بـ Gemini (محددة بحد أقصى 2048 رمزًا) وإرجاع النص الخام أو خطأ مُنسق.

class GeminiWrapper:
    """Wrapper for Gemini API to work with AutoGen"""
    def __init__(self, model_name="gemini-1.5-flash"):
        self.model = genai.GenerativeModel(model_name)

    def generate_response(self, prompt: str, temperature: float = 0.7) -> str:
        """Generate response using Gemini"""
        try:
            response = self.model.generate_content(
                prompt,
                generation_config=genai.types.GenerationConfig(
                    temperature=temperature, max_output_tokens=2048
                ),
            )
            return response.text
        except Exception as e:
            return f"Gemini API Error: {str(e)}"

4. فئة SemanticKernelGeminiPlugin

نقوم بتغليف منطق Semantic Kernel الخاص بنا في SemanticKernelGeminiPlugin، حيث نقوم بتهيئة كل من Kernel و GeminiWrapper لتشغيل وظائف الذكاء الاصطناعي المخصصة. باستخدام زخرفة @kernel_function، نقوم بإعلان طرق مثل analyze_text, generate_summary, code_analysis, و creative_solution، كل منها ينشئ مطالبة منظمة ويفوض المهمة الشاقة إلى Gemini Flash. يسمح لنا هذا البرنامج المساعد بتسجيل واستدعاء عمليات الذكاء الاصطناعي المتقدمة بسلاسة داخل بيئة Semantic Kernel الخاصة بنا.

class SemanticKernelGeminiPlugin:
    # ... (كود الفئة كما هو موجود في النص الأصلي) ...

5. فئة AdvancedGeminiAgent

نضيف آلية تنسيق الذكاء الاصطناعي الشاملة الخاصة بنا في فئة AdvancedGeminiAgent، حيث نقوم بتهيئة برنامج Semantic Kernel الخاص بنا، ولفافة Gemini، وتكوين مجموعة من وكلاء AutoGen المتخصصين (مساعد، مراجع كود، محلل إبداعي، متخصص بيانات، ووكيل مستخدم). باستخدام طرق بسيطة لربط Semantic Kernel، والتعاون بين الوكلاء المتعددين، ومكالمات Gemini المباشرة، فإننا نتيح خط أنابيب تحليل سلسًا وشاملًا لأي استعلام من المستخدم.

class AdvancedGeminiAgent:
    # ... (كود الفئة كما هو موجود في النص الأصلي) ...

6. الدالة الرئيسية (main)

أخيرًا، نقوم بتشغيل الدالة الرئيسية التي تقوم بتهيئة AdvancedGeminiAgent، وطباعة رسائل الحالة، والتكرار عبر مجموعة من استعلامات العرض التوضيحي. أثناء تشغيل كل استعلام، نقوم بجمع وعرض النتائج من تحليلات Semantic Kernel، والتعاون بين الوكلاء المتعددين، والاستجابات المباشرة من Gemini، مما يضمن عرضًا واضحًا خطوة بخطوة لسير عمل الذكاء الاصطناعي متعدد الوكلاء.

def main():
    # ... (كود الدالة كما هو موجود في النص الأصلي) ...

7. الخلاصة

لقد أظهرنا كيف يكمل كل من AutoGen و Semantic Kernel بعضهما البعض لإنتاج نظام ذكاء اصطناعي متعدد الوكلاء متعدد الاستخدامات مدعوم بـ Gemini Flash. لقد سلطنا الضوء على كيف يبسط AutoGen تنسيق وكلاء الخبراء المتنوعين، بينما يوفر Semantic Kernel طبقة نظيفة وواضحة لتعريف واستدعاء وظائف الذكاء الاصطناعي المتقدمة. من خلال توحيد هذه الأدوات في دفتر ملاحظات Colab، فقد مكّنا التجريب السريع وإنشاء نماذج أولية لسير العمل المعقدة للذكاء الاصطناعي دون التضحية بالوضوح أو التحكم.

المصدر: MarkTechPost