HyperAI
Back to Headlines

بناء أنظمة متعددة الوكلاء باستخدام AutoGen على Azure: من الفكرة إلى التطبيق العملي

منذ 2 أيام

بناء أنظمة وكالات متعددة مع AutoGen على Azure: من الفكرة إلى الواقع بعد أكثر من شهر ونصف من الانغماس العميق في عالم الذكاء الاصطناعي، عادت الأمور إلى طبيعتها وأنا حاضر الآن لمشاركة بعض الرؤى حول موضوع رئيسي في عملي حديثًا: بناء أنظمة وكالات متعددة قوية وآمنة وقابلة للتدرج باستخدام إطار عمل AutoGen من مايكروسوفت على منصة Azure. فهم AutoGen وأنظمة الوكالات المتعددة: AutoGen هو إطار عمل مفتوح المصدر طورته مايكروسوفت يبسط ترتيب وتحسين وتحقيق أتمتة الأعمال باستخدام نماذج اللغات الكبيرة (LLMs). يسمح هذا الإطار بتجهيز وكالات متعددة للتعاون معًا لحل المشكلات، مما يحقق مرونة، وقابلية للتدرج، ومتانة غير مسبوقة. يمكن تخيله كفريق عمل مثالي لكل مشروع معقد، حيث لكل وكالة مهارة محددة ودور واضح وطريقة سهلة للتواصل. قوة التعاون: لماذا تعد أنظمة الوكالات المتعددة نقطة تحول حاسمة: التعصيب والاختصاص: تتخصص كل وكالة في مهمة معينة، مما يؤدي إلى جودة أعلى وأكثر كفاءة في التطوير. القوة والمتانة: في حالة حدوث خطأ أو تعطل وكالة، يمكن للنظام إعادة توجيه المهام أو الاستعانة بوكالات أخرى للمساعدة، مما يضمن استمرارية العمل. القابلية للتدرج: يمكن تدرج الوكالات حسب الطلب، مما يعني عدم إهدار الموارد في أجزاء النظام التي ليست تحت الضغط. حل المشكلات المعقدة: يمكن لأنظمة الوكالات المتعددة تجزئة المشكلات الكبرى إلى مهام أصغر يمكن التعامل معها بكفاءة. دمج الإنسان في الحلقة: يدعم AutoGen التدخل البشري عند الحاجة، مما يجعله مثاليًا للمهام الحرجة التي تتطلب الحكم البشري. نهج AutoGen للعمل الجماعي: السر الخفي للنجاح يوفر AutoGen إطار عمل مرنة وقابلة للتوسع لتعريف هذه الأعمال التعاونية. تشمل المفاهيم الأساسية: الوكالات: الوحدات الأساسية للنظام، مثل وكالة مستخدم وكالة مساعدة. المحادثات: تبادل الرسائل بين الوكالات لتنفيذ المهام. الأدوات والوظائف: تمكين الوكالات من التفاعل مع النظم الخارجية، مثل تصفح الإنترنت وإدارة الملفات. تصميم الأنظمة للإنتاج: AutoGen على Azure بناء نظام وكالات متعددة جاهز للإنتاج يتطلب تصميم بنيتي قوية وأمنة وقابلة للتدرج. تقدم Azure حزمة شاملة من الخدمات التي تكمل AutoGen بشكل مثالي، مما يضمن نشر وإدارة تطبيقاتك بثقة. Azure OpenAI Service: يوفر نماذج اللغات الكبيرة بمستوى أمان وامتثال عاليين، مع القدرة على التدرج بثقة. Azure Kubernetes Service (AKS): يسمح بنشر وتدبير تطبيق AutoGen في حاويات قابلة للتدرج بشكل أوتوماتيكي. Azure Key Vault: يوفر إدارة آمنة للأسرار مثل مفاتيح API والبيانات الحساسة. Azure Monitor: يوفر مراقبة شاملة للنظام، مما يساعد في تحديد ومعالجة المشاكل قبل أن تتحول إلى مشكلات كبيرة. Azure Storage: يوفر خيارات متعددة لتخزين البيانات بشكل دائم مع أداء وتكلفة مختلفين. تطبيق متعدد الوكالات نموذجي: لنستعرض تطبيقًا بسيطًا يوضح كيفية تعاون وكالة مستخدم مع وكالة مساعدة تستخدم أدوات مخصصة لتصفح الإنترنت وإدارة الملفات. الهدف هو البحث عن معلومات حول موضوع ما، تلخيصها، ثم حفظ التلخيص في ملف. الهيكل الأساسي للتطبيق: - requirements.txt: يحدد الإضافات المطلوبة. - OAI_CONFIG_LIST.json: يحتوي على تفاصيل API لنماذج اللغات الكبيرة. - app.py: يعرّف الوكالات ويجهزها بالأدوات ويتحكم في تدفق المحادثات. الコード الأساسي لـ app.py: ```python autogen_sample_app/app.py import autogen تكوين الوكالات config_list = autogen.config_list_from_json( "OAI_CONFIG_LIST", filter_dict={ "model": ["gpt-4o"], }, ) إنشاء وكالة مستخدم user_proxy = autogen.UserProxyAgent( name="Admin", llm_config={"config_list": config_list, "model": "gpt-4o"}, system_message="مدير بشري. يتفاعل مع المساعد لحل المهام.", code_execution_config={"last_n_messages": 3, "work_dir": "coding", "use_docker": False}, is_termination_msg=lambda x: str(x.get("content", "")).rstrip().endswith("TERMINATE"), human_input_mode="NEVER", ) إنشاء وكالة مساعدة assistant = autogen.AssistantAgent( name="Assistant", llm_config={"config_list": config_list, "model": "gpt-4o"}, system_message="مساعد ذكي. يمكنه كتابة تنفيذ الكود واستخدام أدوات تصفح الإنترنت وإدارة الملفات.", ) تعريف أدوات تصفح الإنترنت وإدارة الملفات def browse_web(query: str) -> str: """يمثل تصفح الإنترنت ويعيد نتائج البحث.""" return f"محاكاة بحث عبر الإنترنت لـ: {query}." def read_file_content(file_path: str) -> str: """قراءة محتوى الملف من المسار المحدد.""" try: with open(file_path, "r") as f: content = f.read() return f"محتوى {file_path}:\n{content}" except FileNotFoundError: return f"خطأ: لم يتم العثور على الملف في المسار {file_path}" def write_file_content(file_path: str, content: str) -> str: """كتابة محتوى إلى المسار المحدد. يحل محل الملف إذا كان موجودًا.""" try: with open(file_path, "w") as f: f.write(content) return f"تم كتابة المحتوى بنجاح إلى {file_path}" except Exception as e: return f"خطأ في الكتابة إلى الملف {file_path}: {e}" تسجيل الأدوات مع المساعد assistant.register_for_llm(name="browse_web", description="يمثل تصفح الإنترنت.")(browse_web) assistant.register_for_llm(name="read_file_content", description="يقرأ محتوى الملف.")(read_file_content) assistant.register_for_llm(name="write_file_content", description="يكتب محتوى الملف.")(write_file_content) تشغيل المحادثة def run_conversation(): user_proxy.initiate_chat( assistant, message=""" الرجاء تنفيذ المهام التالية: 1. ابحث في الإنترنت عن "أحدث الاتجاهات في أمن الذكاء الاصطناعي". 2. أنشئ ملفًا باسم 'ai_security_notes.txt' واكتب ملخصًا للنتائج فيه. 3. اقرأ محتوى 'ai_security_notes.txt' وعرضه. """ ) if name == "main": run_conversation() ``` التشغيل والمراقبة: للتشغيل، تأكد من تثبيت Python وpip، ثم قم بتثبيت الإضافات المطلوبة وتنفيذ النص البرمجي: sh pip install -r requirements.txt python app.py عند التشغيل، ستلاحظ تفاعلًا ديناميكيًا بين وكالة المستخدم ووكالة المساعد، حيث تستخدم الأخيرة أدوات تصفح الإنترنت وإدارة الملفات لإكمال المهام. نشر التطبيق على Azure: من المحلي إلى الإنتاج التغليف باستخدام Docker: قم بإنشاء ملف Dockerfile يحدد البيئة والاعتمادات اللازمة للتطبيق. ```Dockerfile # استخدام Python 3.11 كصورة أساسية FROM python:3.11-slim # تحديد المجلد العامل WORKDIR /app # نسخ متطلبات الإضافات أولاً لتحسين التخزين المؤقت COPY requirements.txt . # تثبيت الإضافات RUN pip install --no-cache-dir -r requirements.txt # نسخ ملفات التطبيق COPY app.py . COPY OAI_CONFIG_LIST . # إنشاء مجلد للعمل RUN mkdir -p coding # فتح المنفذ (إذا كان مطلوبًا لواجهة الويب في المستقبل) EXPOSE 8000 # تشغيل التطبيق CMD ["python", "app.py"] ``` نشر Kubernetes: قم بإنشاء ملف تكوين Kubernetes لضبط التكرارات وتوصيل الأسرار. yaml apiVersion: apps/v1 kind: Deployment metadata: name: autogen-multi-agent labels: app: autogen-multi-agent spec: replicas: 3 selector: matchLabels: app: autogen-multi-agent template: metadata: labels: app: autogen-multi-agent spec: containers: - name: autogen-app image: your-acr-name.azurecr.io/autogen-multi-agent:latest ports: - containerPort: 8000 env: - name: AZURE_OPENAI_API_KEY valueFrom: secretKeyRef: name: azure-openai-secret key: api-key - name: AZURE_OPENAI_ENDPOINT valueFrom: secretKeyRef: name: azure-openai-secret key: endpoint resources: requests: memory: "512Mi" cpu: "250m" limits: memory: "1Gi" cpu: "500m" livenessProbe: httpGet: path: /health port: 8000 initialDelaySeconds: 30 periodSeconds: 10 readinessProbe: httpGet: path: /ready port: 8000 initialDelaySeconds: 5 periodSeconds: 5 الاعتبارات الأمنية: حماية الخصوصية والحوكمة: استخدم Azure OpenAI لضمان بقاء البيانات داخل بيئة Azure. اتبع قاعدة تقليل البيانات: جمع ومعالجة البيانات الضرورية فقط. تشفير البيانات في الراحة أثناء النقل. التحكم في الوصول والتحقق من الهوية: اتبع مبدأ الأدنى لحقوق الوصول. استخدم الهويات المدارة في Azure. ادمج Azure Key Vault لإدارة الأسرار. تحقق من صحة المدخلات وتنقيتها: ضع حدودًا للنماذج اللغوية الكبيرة لمنع الهجمات والمضامين غير المرغوب فيها. تنقية المدخلات قبل استخدامها في الأدوات الخارجية. المراقبة والتدقيق: سجل جميع تفاعلات الوكالات ومكالمات الأدوات. ضع تنبيهات للأنشطة المشبوهة. حافظ على مسارات التدقيق الواضحة. القابلية للتدرج والأداء: التدرج الأفقي باستخدام AKS: استخدم الحاويات لتوفير استمرارية وتدرج. عين قواعد تدرج أوتوماتيكي بناءً على مؤشرات الأداء. اعتمد على معمارية المخدمات الصغيرة لعزل الوكالات وتوزيع الموارد. استغلال Azure OpenAI لقابلية تدرج النماذج اللغوية الكبيرة: قم بتوفير وحدات مرور مخصصة لضمان الأداء المستقر. نشر الموارد في المناطق الجغرافية القريبة من المستخدمين لتقليل زمن الاستجابة. تحسين تعاون الوكالات: قلل عدد رسائل التواصل بين الوكالات. استخدم آليات التخزين المؤقت لبيانات الوصول المتكررة. تصميم الوكالات لتنفيذ المهام بطريقة غير متزامنة. مراقبة نقاط التقييد الأدائية: استخدم Azure Monitor وApplication Insights لمراقبة الأداء. قم بإجراء اختبارات الحمل قبل النشر لتحديد نقاط التقييد المبكرة. الخلاصة: بناء أنظمة وكالات متعددة آمنة وجاهزة للإنتاج وقابلة للتدرج باستخدام AutoGen على Azure قد يبدو أمرًا مرهقًا في البداية، لكن من خلال تقسيم التحدي إلى مكونات قابلة للإدارة والاستفادة من قدرات AutoGen وAzure، يمكن تحقيق ذلك بسهولة وبشكل مجزٍ. هذه الرحلة من الفكرة إلى الواقع هي أكثر من مجرد ممارسة تقنية؛ فهي تعني تبني نموذج جديد في تطوير الذكاء الاصطناعي، حيث يتجاوز الأمر الروبوتات المنفردة لخلق أنظمة معقدة ومرنة وذكية تكمل القدرات البشرية وتحل المشكلات بمستوى غير مسبوق. تقييم الخبراء: يتفق الخبراء في مجال الذكاء الاصطناعي على أن أنظمة الوكالات المتعددة تمثل تطورًا أساسيًا في كيفية التعامل مع المشكلات المعقدة. AutoGen وAzure يقدمان البنية التحتية اللازمة لتحقيق هذا التطور بشكل آمن وكفء، مما يفتح الأبواب أمام تطبيقات الذكاء الاصطناعي المستقبلية التي يمكنها التعامل مع مهام متعددة ومتدرجة بشكل ديناميكي. نبذة تعريفية عن AutoGen: AutoGen هو إطار عمل مفتوح المصدر طورته مايكروسوفت يبسط ترتيب وتحسين وتحقيق أتمتة الأعمال باستخدام نماذج اللغات الكبيرة. يوفر آلية تعاونية بين الوكالات المتعددة، مما يجعله مثاليًا لبناء تطبيقات ذكية ومرنة في بيئات الإنتاج.

Related Links