tahamajs's picture
download
raw
6.97 kB
#!/bin/bash
# اسکریپت اجرایی برای پروژه 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.