Buckets:
| """ | |
| Main execution script for CA24 Multi-Agent Systems | |
| اسکریپت اصلی اجرای سیستمهای چند عاملی CA24 | |
| """ | |
| import asyncio | |
| import os | |
| import sys | |
| import json | |
| from datetime import datetime | |
| from pathlib import Path | |
| # Add paths | |
| sys.path.append("./src") | |
| sys.path.append("./config") | |
| def print_banner(): | |
| """نمایش بنر پروژه""" | |
| print("=" * 60) | |
| print("🤖 CA24: Multi-Agent Systems with Gemini API") | |
| print("🔗 LangChain, RAG, and Advanced Communication") | |
| print("=" * 60) | |
| print(f"📅 تاریخ اجرا: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") | |
| print(f"📁 مسیر کاری: {os.getcwd()}") | |
| print("=" * 60) | |
| async def main(): | |
| """تابع اصلی""" | |
| print_banner() | |
| # بررسی کلید API | |
| gemini_api_key = os.getenv("GEMINI_API_KEY") | |
| if not gemini_api_key: | |
| print("⚠️ متغیر محیطی GEMINI_API_KEY تنظیم نشده است") | |
| print("لطفاً کلید API خود را تنظیم کنید:") | |
| print("export GEMINI_API_KEY='your_api_key_here'") | |
| return | |
| try: | |
| # بارگذاری ماژولها | |
| print("📦 بارگذاری ماژولهای سیستم...") | |
| from config.gemini_config import GeminiConfig, GeminiManager | |
| from src.core.multi_agent_system import MultiAgentSystem | |
| from src.core.rag_system import RAGConfig, RAGSystem, RAGAgent | |
| from src.core.communication_system import CommunicationManager | |
| from src.core.coordination_system import ( | |
| CoordinationManager, | |
| CoordinationStrategy, | |
| ) | |
| print("✅ ماژولها بارگذاری شدند") | |
| # راهاندازی سیستم | |
| print("\n🚀 راهاندازی سیستم چند عاملی...") | |
| # پیکربندی Gemini | |
| gemini_config = GeminiConfig(api_key=gemini_api_key) | |
| gemini_manager = GeminiManager(gemini_config) | |
| # سیستم چند عاملی | |
| mas = MultiAgentSystem(gemini_config) | |
| await mas.initialize() | |
| print("✅ سیستم چند عاملی راهاندازی شد") | |
| # سیستم RAG | |
| print("\n🔧 راهاندازی سیستم RAG...") | |
| rag_config = RAGConfig(chunk_size=500, top_k=3) | |
| rag_system = RAGSystem(rag_config, gemini_api_key) | |
| rag_agent = RAGAgent("rag_agent_1", rag_system) | |
| # ایجاد اسناد نمونه | |
| sample_dir = Path("./sample_documents") | |
| sample_dir.mkdir(exist_ok=True) | |
| sample_content = """ | |
| هوش مصنوعی شاخهای از علوم کامپیوتر است که به ایجاد سیستمهایی میپردازد که قادر به انجام وظایفی هستند که معمولاً نیاز به هوش انسانی دارند. | |
| یادگیری ماشین زیرشاخهای از هوش مصنوعی است که به سیستمها امکان یادگیری از دادهها را بدون برنامهنویسی صریح میدهد. | |
| سیستمهای چند عاملی شامل مجموعهای از Agent های خودمختار هستند که با یکدیگر تعامل میکنند. | |
| """ | |
| with open(sample_dir / "ai_knowledge.txt", "w", encoding="utf-8") as f: | |
| f.write(sample_content) | |
| rag_system.load_knowledge_base([str(sample_dir / "ai_knowledge.txt")]) | |
| print("✅ سیستم RAG راهاندازی شد") | |
| # سیستم ارتباطی و هماهنگی | |
| print("\n🔗 راهاندازی سیستم ارتباطی...") | |
| comm_manager = CommunicationManager("memory") | |
| coord_manager = CoordinationManager( | |
| comm_manager, CoordinationStrategy.HIERARCHICAL | |
| ) | |
| await coord_manager.initialize() | |
| print("✅ سیستم ارتباطی راهاندازی شد") | |
| # اجرای آزمایشها | |
| print("\n🧪 اجرای آزمایشها...") | |
| # تست سیستم چند عاملی | |
| print("\n📋 تست سیستم چند عاملی:") | |
| task_id = await mas.submit_task( | |
| "research_topic", {"topic": "هوش مصنوعی و آینده"} | |
| ) | |
| print(f"✅ وظیفه ارسال شد: {task_id}") | |
| # تست سیستم RAG | |
| print("\n🔍 تست سیستم RAG:") | |
| rag_result = rag_agent.process_query("هوش مصنوعی چیست؟") | |
| print(f"✅ پاسخ RAG: {rag_result['answer'][:100]}...") | |
| # تست سیستم ارتباطی | |
| print("\n📨 تست سیستم ارتباطی:") | |
| await comm_manager.broadcast_message( | |
| sender="coordinator", | |
| message_type="test", | |
| content={"message": "تست سیستم ارتباطی"}, | |
| ) | |
| print("✅ پیام عمومی ارسال شد") | |
| # دریافت وضعیت سیستم | |
| print("\n📊 وضعیت سیستم:") | |
| system_status = await mas.get_system_status() | |
| print(f"🔢 تعداد Agent ها: {system_status['total_agents']}") | |
| print(f"🏃 وضعیت سیستم: {system_status['system_status']}") | |
| # آمار RAG | |
| rag_stats = rag_agent.get_knowledge_summary() | |
| print(f"📈 آمار RAG: {rag_stats['knowledge_stats']}") | |
| # خاموش کردن سیستمها | |
| print("\n🔌 خاموش کردن سیستمها...") | |
| await mas.shutdown() | |
| await coord_manager.shutdown() | |
| print("✅ سیستمها خاموش شدند") | |
| print("\n🎉 آزمایشها با موفقیت تکمیل شدند!") | |
| except ImportError as e: | |
| print(f"❌ خطا در بارگذاری ماژول: {e}") | |
| print("لطفاً مطمئن شوید که تمام فایلها در مسیر صحیح قرار دارند") | |
| except Exception as e: | |
| print(f"❌ خطا در اجرا: {e}") | |
| print("لطفاً کلید API و وابستگیها را بررسی کنید") | |
| if __name__ == "__main__": | |
| asyncio.run(main()) | |
Xet Storage Details
- Size:
- 6.14 kB
- Xet hash:
- 07bd55c6eea62ea7dccaf2ebff13af39e0424fa516f7de0fba57fc3988280aae
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.