Buckets:
tahamajs/Sysmem2_in_AI / ComputerAssignments /CA6_systematic_generalization /scripts /run_experiment.sh
| # اسکریپت اجرایی برای پروژه Systematic Generalization | |
| # Execution script for Systematic Generalization project | |
| set -e # توقف در صورت خطا | |
| # رنگها برای نمایش | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| BLUE='\033[0;34m' | |
| NC='\033[0m' # No Color | |
| # تابع نمایش پیام | |
| print_message() { | |
| 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" | |
| } | |
| # تابع نمایش راهنما | |
| show_help() { | |
| echo "🔧 راهنمای استفاده از پروژه Systematic Generalization" | |
| echo "" | |
| echo "📋 دستورات موجود:" | |
| echo " ./run_experiment.sh setup # نصب و راهاندازی" | |
| echo " ./run_experiment.sh test # تست سریع" | |
| echo " ./run_experiment.sh basic # اجرای تستهای پایه" | |
| echo " ./run_experiment.sh comprehensive # اجرای ارزیابی جامع" | |
| echo " ./run_experiment.sh full # اجرای آزمایش کامل" | |
| echo " ./run_experiment.sh notebook # اجرای نوتبوک" | |
| echo " ./run_experiment.sh clean # پاکسازی فایلها" | |
| echo " ./run_experiment.sh help # نمایش این راهنما" | |
| echo "" | |
| echo "⚙️ تنظیمات:" | |
| echo " export GEMINI_API_KEY=\"your-gemini-api-key-here\"" | |
| echo "" | |
| echo "📦 نصب:" | |
| echo " pip install -r requirements_gemini.txt" | |
| } | |
| # تابع بررسی پیشنیازها | |
| check_prerequisites() { | |
| print_message "بررسی پیشنیازها..." | |
| # بررسی Python | |
| if ! command -v python3 &> /dev/null; then | |
| print_error "Python 3 نصب نشده است" | |
| exit 1 | |
| fi | |
| python_version=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))') | |
| print_success "Python $python_version موجود است" | |
| # بررسی pip | |
| if ! command -v pip3 &> /dev/null; then | |
| print_error "pip3 نصب نشده است" | |
| exit 1 | |
| fi | |
| print_success "pip3 موجود است" | |
| # بررسی API Key | |
| if [ -z "$GEMINI_API_KEY" ]; then | |
| print_warning "متغیر محیطی GEMINI_API_KEY تنظیم نشده است" | |
| print_message "لطفاً API Key خود را تنظیم کنید:" | |
| print_message "export GEMINI_API_KEY=\"your-gemini-api-key-here\"" | |
| return 1 | |
| fi | |
| print_success "API Key تنظیم شده است" | |
| return 0 | |
| } | |
| # تابع نصب و راهاندازی | |
| setup_project() { | |
| print_message "شروع نصب و راهاندازی پروژه..." | |
| # ایجاد دایرکتوریهای مورد نیاز | |
| mkdir -p data experimental_results models logs vector_store | |
| # نصب کتابخانهها | |
| if [ -f "requirements_gemini.txt" ]; then | |
| print_message "نصب کتابخانهها از requirements_gemini.txt..." | |
| pip3 install -r requirements_gemini.txt | |
| else | |
| print_warning "فایل requirements_gemini.txt موجود نیست" | |
| print_message "نصب کتابخانههای اصلی..." | |
| pip3 install google-generativeai langchain langchain-google-genai torch transformers sentence-transformers | |
| fi | |
| # کپی فایل env نمونه | |
| if [ ! -f ".env" ] && [ -f "env_example.txt" ]; then | |
| cp env_example.txt .env | |
| print_message "فایل .env از نمونه ایجاد شد" | |
| fi | |
| print_success "نصب و راهاندازی تکمیل شد" | |
| } | |
| # تابع تست سریع | |
| run_quick_test() { | |
| print_message "اجرای تست سریع..." | |
| if [ -f "quick_test.py" ]; then | |
| python3 quick_test.py | |
| else | |
| print_error "فایل quick_test.py موجود نیست" | |
| exit 1 | |
| fi | |
| } | |
| # تابع اجرای تستهای پایه | |
| run_basic_tests() { | |
| print_message "اجرای تستهای پایه..." | |
| if [ -f "main_experimental.py" ]; then | |
| python3 main_experimental.py --mode basic | |
| else | |
| print_error "فایل main_experimental.py موجود نیست" | |
| exit 1 | |
| fi | |
| } | |
| # تابع اجرای ارزیابی جامع | |
| run_comprehensive_evaluation() { | |
| print_message "اجرای ارزیابی جامع..." | |
| if [ -f "main_experimental.py" ]; then | |
| python3 main_experimental.py --mode comprehensive | |
| else | |
| print_error "فایل main_experimental.py موجود نیست" | |
| exit 1 | |
| fi | |
| } | |
| # تابع اجرای آزمایش کامل | |
| run_full_experiment() { | |
| print_message "اجرای آزمایش کامل..." | |
| if [ -f "main_experimental.py" ]; then | |
| python3 main_experimental.py --mode full | |
| else | |
| print_error "فایل main_experimental.py موجود نیست" | |
| exit 1 | |
| fi | |
| } | |
| # تابع اجرای نوتبوک | |
| run_notebook() { | |
| print_message "اجرای نوتبوک..." | |
| if [ -f "CA6_Experimental_Notebook.ipynb" ]; then | |
| if command -v jupyter &> /dev/null; then | |
| jupyter notebook CA6_Experimental_Notebook.ipynb | |
| else | |
| print_error "Jupyter نصب نشده است" | |
| print_message "برای نصب: pip install jupyter" | |
| exit 1 | |
| fi | |
| else | |
| print_error "فایل CA6_Experimental_Notebook.ipynb موجود نیست" | |
| exit 1 | |
| fi | |
| } | |
| # تابع پاکسازی | |
| clean_project() { | |
| print_message "پاکسازی فایلهای موقت..." | |
| # حذف فایلهای cache | |
| find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true | |
| find . -type f -name "*.pyc" -delete 2>/dev/null || true | |
| # حذف فایلهای موقت | |
| rm -f .env | |
| rm -rf vector_store/* | |
| rm -rf experimental_results/* | |
| rm -rf logs/* | |
| print_success "پاکسازی تکمیل شد" | |
| } | |
| # تابع اصلی | |
| main() { | |
| case "${1:-help}" in | |
| "setup") | |
| check_prerequisites | |
| setup_project | |
| ;; | |
| "test") | |
| check_prerequisites | |
| run_quick_test | |
| ;; | |
| "basic") | |
| check_prerequisites | |
| run_basic_tests | |
| ;; | |
| "comprehensive") | |
| check_prerequisites | |
| run_comprehensive_evaluation | |
| ;; | |
| "full") | |
| check_prerequisites | |
| run_full_experiment | |
| ;; | |
| "notebook") | |
| check_prerequisites | |
| run_notebook | |
| ;; | |
| "clean") | |
| clean_project | |
| ;; | |
| "help"|"--help"|"-h") | |
| show_help | |
| ;; | |
| *) | |
| print_error "دستور نامعتبر: $1" | |
| echo "" | |
| show_help | |
| exit 1 | |
| ;; | |
| esac | |
| } | |
| # اجرای تابع اصلی | |
| main "$@" | |
Xet Storage Details
- Size:
- 6.97 kB
- Xet hash:
- cdcf68e314856d682f6c4980d76746b6fdbc7bc14ec6de7290db17ccc7d00889
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.