metadata
license: mit
sdk: docker
colorTo: blue
🌍 سرویس ترجمه چندزبانه M2M100
سرویس ترجمه پیشرفته مبتنی بر FastAPI که از مدل M2M100 فیسبوک برای ترجمه بین بیش از 100 زبان مختلف استفاده میکند.
✨ ویژگیها
- ترجمه چندزبانه: پشتیبانی از بیش از 100 زبان
- کش هوشمند: ذخیره نتایج ترجمه برای بهبود سرعت
- تقسیم متن: پردازش خودکار متون طولانی
- پردازش پسزمینه: ترجمه متون سنگین در پسزمینه
- پیگیری پیشرفت: مشاهده وضعیت ترجمه به صورت real-time
- یکپارچگی WordPress: سازگار با سیستمهای مدیریت محتوا
- GPU/CPU: پشتیبانی از هر دو حالت
🚀 راهاندازی سریع
روش 1: Hugging Face Spaces
- فایلها را در یک Space جدید قرار دهید
- 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}- وضعیت sessionPOST /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: صف وظایف
🤝 مشارکت
- Fork کنید
- شاخه جدید بسازید (
git checkout -b feature/amazing-feature) - تغییرات را commit کنید (
git commit -m 'Add amazing feature') - Push کنید (
git push origin feature/amazing-feature) - Pull Request بسازید
📄 لایسنس
این پروژه تحت لایسنس MIT منتشر شده است.
🙏 تشکر
- Facebook M2M100 برای مدل ترجمه
- Hugging Face Transformers برای کتابخانه
- FastAPI برای فریمورک وب
📞 پشتیبانی
برای گزارش مشکلات یا درخواست ویژگی جدید، لطفاً یک Issue ایجاد کنید.
ساخته شده با ❤️ برای جامعه متنباز