بناء سير عمل متطور للذكاء الاصطناعي متعدد الوكلاء باستخدام 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، فقد مكّنا التجريب السريع وإنشاء نماذج أولية لسير العمل المعقدة للذكاء الاصطناعي دون التضحية بالوضوح أو التحكم.
اترك تعليقاً