TR2 / README.md
danicor's picture
Update README.md
7a79e2a verified
metadata
license: mit
sdk: docker
colorTo: blue

🌍 سرویس ترجمه چندزبانه M2M100

سرویس ترجمه پیشرفته مبتنی بر FastAPI که از مدل M2M100 فیسبوک برای ترجمه بین بیش از 100 زبان مختلف استفاده می‌کند.

✨ ویژگی‌ها

  • ترجمه چندزبانه: پشتیبانی از بیش از 100 زبان
  • کش هوشمند: ذخیره نتایج ترجمه برای بهبود سرعت
  • تقسیم متن: پردازش خودکار متون طولانی
  • پردازش پس‌زمینه: ترجمه متون سنگین در پس‌زمینه
  • پیگیری پیشرفت: مشاهده وضعیت ترجمه به صورت real-time
  • یکپارچگی WordPress: سازگار با سیستم‌های مدیریت محتوا
  • GPU/CPU: پشتیبانی از هر دو حالت

🚀 راه‌اندازی سریع

روش 1: Hugging Face Spaces

  1. فایل‌ها را در یک Space جدید قرار دهید
  2. Space به صورت خودکار راه‌اندازی می‌شود

روش 2: محلی

# کلون کردن پروژه
git clone [repository-url]
cd multilingual-translator

# نصب وابستگی‌ها
pip install -r requirements.txt

# اجرای سرویس
python app.py

روش 3: Docker

docker build -t multilingual-translator .
docker run -p 7860:7860 multilingual-translator

📋 API Endpoints

🏠 اصلی

  • GET / - صفحه اصلی و راهنما
  • GET /api/health - وضعیت سلامت سرویس
  • GET /api/server-status - وضعیت کلی سرور

🔄 ترجمه

  • POST /api/translate - ترجمه همزمان
  • POST /api/translate/form - ترجمه از فرم
  • POST /api/translate/heavy - ترجمه سنگین در پس‌زمینه
  • POST /api/translate/session - ترجمه با session

📊 پیگیری وضعیت

  • GET /api/progress/{session_id} - پیشرفت ترجمه
  • GET /api/status/{session_id} - وضعیت session
  • POST /api/check-completion - بررسی تکمیل
  • POST /api/check-translation-status - وضعیت ترجمه

🌐 زبان‌ها و آمار

  • GET /api/languages - لیست زبان‌های پشتیبانی شده
  • GET /api/stats - آمار کلی
  • GET /api/cache/stats - آمار کش

⚙️ مدیریت

  • POST /api/cache/clear - پاک کردن کش
  • POST /api/webhook/wordpress - Webhook وردپرس
  • POST /api/check-auto-charge-status - وضعیت کسر اعتبار

📝 نحوه استفاده

ترجمه ساده

import requests

url = "https://your-space-url/api/translate"
data = {
    "text": "Hello, how are you?",
    "source_lang": "English",
    "target_lang": "Persian"
}

response = requests.post(url, json=data)
result = response.json()
print(result["translated_text"])

ترجمه با پیگیری پیشرفت

# شروع ترجمه با session
response = requests.post("https://your-space-url/api/translate/session", json={
    "text": "متن طولانی برای ترجمه...",
    "source_lang": "Persian",
    "target_lang": "English"
})

session_id = response.json()["session_id"]

# پیگیری پیشرفت
progress_response = requests.get(f"https://your-space-url/api/progress/{session_id}")
progress = progress_response.json()
print(f"پیشرفت: {progress['progress']}%")

ترجمه پس‌زمینه

# شروع ترجمه سنگین
response = requests.post("https://your-space-url/api/translate/heavy", json={
    "text": "متن بسیار طولانی...",
    "source_lang": "English",
    "target_lang": "Persian",
    "auto_charge": True
})

request_id = response.json()["request_id"]

# بررسی وضعیت
status_response = requests.post("https://your-space-url/api/check-translation-status", json={
    "request_id": request_id
})

🌍 زبان‌های پشتیبانی شده

سرویس از بیش از 100 زبان پشتیبانی می‌کند از جمله:

اروپایی: انگلیسی، اسپانیایی، فرانسوی، آلمانی، ایتالیایی، پرتغالی، روسی، لهستانی، چکی، مجارستانی، رومانیایی، یونانی، هلندی، سوئدی، نروژی، دانمارکی، فنلاندی

آسیایی: فارسی، عربی، چینی، ژاپنی، کره‌ای، هندی، تایلندی، ویتنامی، اندونزیایی، مالایی، تامیل، بنگالی، اردو

آفریقایی: سواحیلی، امهری، یوروبا، ایگبو، هوسا، سومالی، آفریکانس، زولو، خوسا

و بسیاری زبان‌های دیگر...

⚡ عملکرد

  • سرعت: ترجمه متون کوتاه در کمتر از 2 ثانیه
  • کش: استفاده مجدد از ترجمه‌های قبلی
  • موازی‌سازی: پردازش همزمان چندین درخواست
  • GPU: استفاده خودکار از GPU در صورت وجود

🔧 پیکربندی

متغیرهای محیطی

PORT=7860                           # پورت سرویس
WORDPRESS_NOTIFICATION_URL=...      # URL اطلاع‌رسانی WordPress
MODEL_CACHE_DIR=./models           # مسیر ذخیره مدل

تنظیمات داخلی

MODEL_NAME = "facebook/m2m100_418M"  # مدل M2M100
CACHE_EXPIRY = 3600                  # مدت انقضا کش (ثانیه)
MAX_CHUNK_SIZE = 350                 # حداکثر اندازه بخش
MAX_WORKERS = 3                      # تعداد worker

🛠️ توسعه

ساختار پروژه

├── app.py              # فایل اصلی
├── requirements.txt    # وابستگی‌ها
├── Dockerfile         # تنظیمات Docker
├── README.md          # مستندات
└── models/            # مدل‌های ذخیره شده

کلاس‌های اصلی

  • MultilingualTranslator: مدیریت ترجمه
  • TranslationCache: کش نتایج
  • TextChunker: تقسیم متن
  • TranslationQueue: صف وظایف

🤝 مشارکت

  1. Fork کنید
  2. شاخه جدید بسازید (git checkout -b feature/amazing-feature)
  3. تغییرات را commit کنید (git commit -m 'Add amazing feature')
  4. Push کنید (git push origin feature/amazing-feature)
  5. Pull Request بسازید

📄 لایسنس

این پروژه تحت لایسنس MIT منتشر شده است.

🙏 تشکر

📞 پشتیبانی

برای گزارش مشکلات یا درخواست ویژگی جدید، لطفاً یک Issue ایجاد کنید.


ساخته شده با ❤️ برای جامعه متن‌باز