Buckets:
| # CA24: Multi-Agent Systems with Gemini API, LangChain, and RAG | |
| # اسکریپت اجرای سیستمهای چند عاملی با Gemini API، LangChain و RAG | |
| set -e # Exit on any error | |
| # Colors for output | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| BLUE='\033[0;34m' | |
| PURPLE='\033[0;35m' | |
| CYAN='\033[0;36m' | |
| NC='\033[0m' # No Color | |
| # Function to print colored output | |
| print_status() { | |
| echo -e "${BLUE}[INFO]${NC} $1" | |
| } | |
| print_success() { | |
| echo -e "${GREEN}[SUCCESS]${NC} $1" | |
| } | |
| print_warning() { | |
| echo -e "${YELLOW}[WARNING]${NC} $1" | |
| } | |
| print_error() { | |
| echo -e "${RED}[ERROR]${NC} $1" | |
| } | |
| print_gemini() { | |
| echo -e "${PURPLE}[GEMINI]${NC} $1" | |
| } | |
| print_rag() { | |
| echo -e "${CYAN}[RAG]${NC} $1" | |
| } | |
| # Banner | |
| print_banner() { | |
| echo -e "${PURPLE}" | |
| echo "╔══════════════════════════════════════════════════════════════╗" | |
| echo "║ CA24: Multi-Agent Systems ║" | |
| echo "║ با Gemini API، LangChain و RAG ║" | |
| echo "╚══════════════════════════════════════════════════════════════╝" | |
| echo -e "${NC}" | |
| } | |
| # Check if Python is installed | |
| check_python() { | |
| print_status "بررسی نصب Python..." | |
| if ! command -v python3 &> /dev/null; then | |
| print_error "Python 3 نصب نشده است. لطفاً Python 3.8 یا بالاتر نصب کنید." | |
| exit 1 | |
| fi | |
| python_version=$(python3 --version 2>&1 | cut -d' ' -f2) | |
| print_success "نسخه Python: $python_version" | |
| } | |
| # Check if virtual environment exists | |
| check_venv() { | |
| print_status "بررسی محیط مجازی..." | |
| if [ ! -d "venv" ]; then | |
| print_warning "محیط مجازی یافت نشد. در حال ایجاد..." | |
| python3 -m venv venv | |
| print_success "محیط مجازی ایجاد شد" | |
| else | |
| print_success "محیط مجازی یافت شد" | |
| fi | |
| } | |
| # Activate virtual environment | |
| activate_venv() { | |
| print_status "فعالسازی محیط مجازی..." | |
| source venv/bin/activate | |
| print_success "محیط مجازی فعال شد" | |
| } | |
| # Install dependencies | |
| install_dependencies() { | |
| print_status "نصب وابستگیها..." | |
| pip install --upgrade pip | |
| # Install core dependencies | |
| print_status "نصب کتابخانههای اصلی..." | |
| pip install numpy pandas matplotlib seaborn plotly | |
| # Install LangChain ecosystem | |
| print_status "نصب LangChain و RAG..." | |
| pip install langchain langchain-community langchain-core langchain-experimental | |
| pip install langchain-google-genai langchain-openai langchain-chroma | |
| pip install chromadb faiss-cpu sentence-transformers | |
| # Install Gemini API | |
| print_gemini "نصب Gemini API..." | |
| pip install google-generativeai google-cloud-aiplatform | |
| # Install additional dependencies | |
| print_status "نصب وابستگیهای اضافی..." | |
| pip install unstructured pypdf python-docx openpyxl | |
| pip install redis pika celery | |
| pip install pytest pytest-asyncio pytest-cov | |
| pip install jupyter ipywidgets nbconvert | |
| pip install streamlit gradio dash | |
| print_success "تمام وابستگیها نصب شدند" | |
| } | |
| # Check API keys | |
| check_api_keys() { | |
| print_status "بررسی کلیدهای API..." | |
| if [ -z "$GEMINI_API_KEY" ]; then | |
| print_warning "متغیر محیطی GEMINI_API_KEY تنظیم نشده است" | |
| print_warning "لطفاً کلید API خود را تنظیم کنید:" | |
| print_warning "export GEMINI_API_KEY='your_api_key_here'" | |
| print_warning "ادامه بدون کلید API (برخی ویژگیها ممکن است کار نکنند)" | |
| # Ask user if they want to set API key | |
| read -p "آیا میخواهید کلید API را الان تنظیم کنید؟ (y/n): " -n 1 -r | |
| echo | |
| if [[ $REPLY =~ ^[Yy]$ ]]; then | |
| read -p "کلید API خود را وارد کنید: " api_key | |
| export GEMINI_API_KEY="$api_key" | |
| print_success "کلید API تنظیم شد" | |
| fi | |
| else | |
| print_success "کلید Gemini API یافت شد" | |
| fi | |
| } | |
| # Create necessary directories | |
| create_directories() { | |
| print_status "ایجاد پوشههای مورد نیاز..." | |
| mkdir -p results/logs | |
| mkdir -p results/plots | |
| mkdir -p results/data | |
| mkdir -p sample_documents | |
| mkdir -p vector_store | |
| mkdir -p config | |
| mkdir -p src/core | |
| mkdir -p src/agents | |
| mkdir -p src/communication | |
| mkdir -p src/coordination | |
| print_success "پوشهها ایجاد شدند" | |
| } | |
| # Test Gemini API connection | |
| test_gemini_api() { | |
| if [ ! -z "$GEMINI_API_KEY" ]; then | |
| print_gemini "تست اتصال به Gemini API..." | |
| python3 -c " | |
| import os | |
| import google.generativeai as genai | |
| try: | |
| genai.configure(api_key=os.getenv('GEMINI_API_KEY')) | |
| model = genai.GenerativeModel('gemini-1.5-pro') | |
| response = model.generate_content('سلام! لطفاً خودت را معرفی کن.') | |
| print('✅ اتصال به Gemini API موفق بود') | |
| print(f'📝 پاسخ: {response.text[:100]}...') | |
| except Exception as e: | |
| print(f'❌ خطا در اتصال به Gemini API: {e}') | |
| " | |
| else | |
| print_warning "تست Gemini API رد شد - کلید API موجود نیست" | |
| fi | |
| } | |
| # Test RAG system | |
| test_rag_system() { | |
| print_rag "تست سیستم RAG..." | |
| python3 -c " | |
| import sys | |
| sys.path.append('./src') | |
| sys.path.append('./config') | |
| try: | |
| from config.gemini_config import GeminiConfig, GeminiManager | |
| from src.core.rag_system import RAGConfig, RAGSystem | |
| import os | |
| if os.getenv('GEMINI_API_KEY'): | |
| print('🔧 راهاندازی سیستم RAG...') | |
| # Create sample document | |
| with open('sample_documents/test.txt', 'w', encoding='utf-8') as f: | |
| f.write('این یک سند تست برای سیستم RAG است. هوش مصنوعی و یادگیری ماشین موضوعات مهمی هستند.') | |
| # Initialize RAG system | |
| rag_config = RAGConfig(chunk_size=100, top_k=2) | |
| rag_system = RAGSystem(rag_config, os.getenv('GEMINI_API_KEY')) | |
| # Load knowledge base | |
| rag_system.load_knowledge_base(['sample_documents/test.txt']) | |
| # Test query | |
| result = rag_system.query('هوش مصنوعی چیست؟') | |
| print('✅ سیستم RAG کار میکند') | |
| print(f'📝 پاسخ: {result[\"answer\"][:100]}...') | |
| else: | |
| print('⏭️ تست RAG رد شد - کلید API موجود نیست') | |
| except Exception as e: | |
| print(f'❌ خطا در تست RAG: {e}') | |
| " | |
| } | |
| # Run tests | |
| run_tests() { | |
| print_status "اجرای تستها..." | |
| if [ -d "tests" ]; then | |
| python -m pytest tests/ -v | |
| print_success "تستها تکمیل شدند" | |
| else | |
| print_warning "پوشه tests یافت نشد" | |
| fi | |
| } | |
| # Run main experiment | |
| run_experiment() { | |
| print_status "اجرای آزمایش اصلی..." | |
| # Check if Jupyter is available | |
| if command -v jupyter &> /dev/null; then | |
| print_status "شروع Jupyter notebook..." | |
| print_success "نوتبوک CA24.ipynb در حال اجرا است..." | |
| jupyter notebook CA24.ipynb | |
| else | |
| print_warning "Jupyter یافت نشد. اجرای اسکریپت Python..." | |
| python3 -c " | |
| import asyncio | |
| import sys | |
| import os | |
| sys.path.append('./src') | |
| sys.path.append('./config') | |
| async def main(): | |
| try: | |
| print('🚀 شروع سیستم چند عاملی...') | |
| if not os.getenv('GEMINI_API_KEY'): | |
| print('⚠️ کلید API تنظیم نشده است. برخی ویژگیها ممکن است کار نکنند.') | |
| return | |
| from config.gemini_config import GeminiConfig, GeminiManager | |
| from src.core.multi_agent_system import MultiAgentSystem | |
| # Initialize system | |
| config = GeminiConfig(api_key=os.getenv('GEMINI_API_KEY')) | |
| mas = MultiAgentSystem(config) | |
| await mas.initialize() | |
| print('✅ سیستم راهاندازی شد') | |
| # Run tests | |
| task_id = await mas.submit_task('research_topic', {'topic': 'هوش مصنوعی'}) | |
| print(f'📤 وظیفه ارسال شد: {task_id}') | |
| await asyncio.sleep(2) | |
| status = await mas.get_system_status() | |
| print(f'📊 وضعیت سیستم: {len(status[\"agent_statuses\"])} Agent فعال') | |
| await mas.shutdown() | |
| print('🔌 سیستم خاموش شد') | |
| except Exception as e: | |
| print(f'❌ خطا: {e}') | |
| print('لطفاً کلید API و وابستگیها را بررسی کنید') | |
| asyncio.run(main()) | |
| " | |
| fi | |
| } | |
| # Show system information | |
| show_system_info() { | |
| print_status "اطلاعات سیستم:" | |
| echo "==================" | |
| echo "🐍 Python: $(python3 --version)" | |
| echo "📦 Pip: $(pip --version | cut -d' ' -f2)" | |
| echo "🔑 Gemini API: $([ -z "$GEMINI_API_KEY" ] && echo "❌ تنظیم نشده" || echo "✅ تنظیم شده")" | |
| echo "📁 مسیر کاری: $(pwd)" | |
| echo "⏰ زمان: $(date)" | |
| echo "==================" | |
| } | |
| # Main execution | |
| main() { | |
| print_banner | |
| print_status "شروع CA24 سیستمهای چند عاملی..." | |
| echo "==================================" | |
| check_python | |
| check_venv | |
| activate_venv | |
| install_dependencies | |
| check_api_keys | |
| create_directories | |
| show_system_info | |
| test_gemini_api | |
| test_rag_system | |
| run_tests | |
| run_experiment | |
| print_success "اجرای CA24 سیستمهای چند عاملی تکمیل شد!" | |
| echo "" | |
| print_status "برای اجرای مجدد، دستور زیر را اجرا کنید:" | |
| echo "source venv/bin/activate && ./run.sh" | |
| } | |
| # Handle command line arguments | |
| case "${1:-}" in | |
| "test") | |
| print_status "اجرای تستها..." | |
| check_python | |
| check_venv | |
| activate_venv | |
| run_tests | |
| ;; | |
| "install") | |
| print_status "نصب وابستگیها..." | |
| check_python | |
| check_venv | |
| activate_venv | |
| install_dependencies | |
| ;; | |
| "clean") | |
| print_status "پاک کردن فایلهای موقت..." | |
| rm -rf venv | |
| rm -rf __pycache__ | |
| rm -rf .pytest_cache | |
| rm -rf vector_store | |
| print_success "فایلهای موقت پاک شدند" | |
| ;; | |
| *) | |
| main "$@" | |
| ;; | |
| esac |
Xet Storage Details
- Size:
- 10.9 kB
- Xet hash:
- e4bfce476c0cf57cfb7d1b225f7752b1cb8b6d085ddbd9584381f2b0b7b48667
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.