tahamajs's picture
download
raw
6.14 kB
"""
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.