TranslateBook with LLM: دليل شامل لترجمة الكتب باستخدام الذكاء الاصطناعي
⏱️ وقت القراءة المتوقع: 12 دقيقة
في عصر الأدوات المدعومة بالذكاء الاصطناعي، تطورت ترجمة المستندات بما يتجاوز التحويل البسيط كلمة بكلمة. TranslateBookWithLLM من hydropix هو تطبيق Python متطور يستفيد من نماذج اللغة الكبيرة (LLM) لتوفير ترجمات عالية الجودة مع مراعاة السياق للكتب وملفات EPUB وحتى ترجمات SRT.
على عكس خدمات الترجمة التقليدية التي تعالج النص بشكل خطي، تحافظ هذه الأداة على السياق عبر الأجزاء، وتحافظ على التنسيق، وتوفر خيارات نماذج LLM المحلية (Ollama) والسحابية (Google Gemini). سواء كنت باحثًا أو منشئ محتوى أو متحمسًا للغات، فسيرشدك هذا الدليل الشامل خلال كل ما تحتاج لمعرفته.
🎯 ما الذي يجعل TranslateBookWithLLM مميزًا؟
الميزات الرئيسية في لمحة
- موفرو LLM متعددون: يدعم نماذج Ollama المحلية وواجهة برمجة تطبيقات Google Gemini
- الحفاظ على التنسيق: يحافظ على التنسيق الأصلي لملفات EPUB وTXT وSRT
- ترجمة مدركة للسياق: يحافظ على المعنى عبر أجزاء النص مع الكشف الذكي عن الحدود
- واجهة ويب: واجهة مستخدم ودية مع تتبع التقدم في الوقت الفعلي
- دعم CLI: واجهة سطر الأوامر للأتمتة والنصوص البرمجية
- المعالجة اللاحقة: مرحلة تحسين اختيارية لجودة ترجمة محسنة
- تعليمات مخصصة: القدرة على توفير إرشادات ترجمة محددة
- دعم Docker: نشر محاوي للبيئات المتسقة
تنسيقات الملفات المدعومة
التنسيق | الوصف | حالات الاستخدام |
---|---|---|
TXT | ملفات نصية عادية | كتب، مقالات، وثائق |
EPUB | تنسيق الكتاب الإلكتروني | كتب رقمية، منشورات |
SRT | ملفات الترجمة | ترجمات الفيديو، التسميات التوضيحية |
🚀 البدء: التثبيت والإعداد
المتطلبات الأساسية
قبل البدء، تأكد من تثبيت ما يلي:
- Python 3.8+: يتطلب التطبيق Python 3.8 أو أحدث
- Git: لاستنساخ المستودع
- Ollama (لنماذج LLM المحلية): قم بالتنزيل من ollama.ai
- مفتاح واجهة برمجة تطبيقات Google Gemini (اختياري): للترجمة السحابية
الخطوة 1: الاستنساخ والإعداد
# استنساخ المستودع
git clone https://github.com/hydropix/TranslateBookWithLLM.git
cd TranslateBookWithLLM
# تثبيت التبعيات
pip install -r requirements.txt
# نسخ إعدادات البيئة
cp .env.example .env
الخطوة 2: تكوين متغيرات البيئة
قم بتحرير ملف .env
لتخصيص إعداداتك:
# إعدادات API
API_ENDPOINT=http://localhost:11434/api/generate
DEFAULT_MODEL=mistral-small:24b
# إعدادات الترجمة
MAIN_LINES_PER_CHUNK=25
REQUEST_TIMEOUT=60
MAX_ATTEMPTS=3
# واجهة الويب
PORT=5000
DEBUG=False
# Gemini API (اختياري)
GEMINI_API_KEY=your_api_key_here
الخطوة 3: إعداد Ollama (خيار LLM المحلي)
إذا كنت تفضل استخدام النماذج المحلية للخصوصية وفعالية التكلفة:
# تثبيت Ollama (macOS/Linux)
curl -fsSL https://ollama.ai/install.sh | sh
# بدء خدمة Ollama
ollama serve
# تثبيت نماذج محسّنة للترجمة
ollama pull mistral-small:24b # سريع وفعال
ollama pull llama3.1:8b # أداء متوازن
ollama pull codellama:34b # للمحتوى التقني
# التحقق من التثبيت
ollama list
🖥️ استخدام واجهة الويب
توفر واجهة الويب التجربة الأكثر سهولة للمستخدم لمهام الترجمة.
بدء خادم الويب
# بدء واجهة الويب
python translation_api.py
# أو مع منفذ مخصص
PORT=8080 python translation_api.py
انتقل إلى http://localhost:5000
في متصفحك.
جولة في واجهة الويب
1. اختيار المزود
اختر بين:
- Ollama: نماذج محلية (تركز على الخصوصية، لا يتطلب إنترنت)
- Google Gemini: نماذج سحابية (يتطلب مفتاح API، جودة أعلى عمومًا)
2. تكوين النموذج
- نماذج Ollama: اختر من النماذج المحلية المثبتة
- نماذج Gemini: اختر من
gemini-2.0-flash
أوgemini-1.5-pro
أوgemini-1.5-flash
3. إعدادات الترجمة
تكوين الخيارات المتقدمة:
حجم الجزء: 10-100 سطر لكل جزء
المهلة الزمنية: 30-600 ثانية
نافذة السياق: 1024-32768 رمز
المحاولات القصوى: 1-5 محاولة إعادة
4. رفع الملف والترجمة
- اختر ملف المصدر (TXT أو EPUB أو SRT)
- اختر اللغات المصدر والهدف
- اختياريًا أضف تعليمات مخصصة
- فعّل المعالجة اللاحقة للجودة المحسنة
- اضغط على “ترجمة” وراقب التقدم في الوقت الفعلي
الميزات المتقدمة
التعليمات المخصصة
قدم إرشادات محددة لترجمتك:
أمثلة:
- "حافظ على النبرة الرسمية طوال الترجمة"
- "احتفظ بالمصطلحات التقنية باللغة الإنجليزية"
- "استخدم اللهجة المغربية للعربية"
- "احفظ المراجع الثقافية مع ملاحظات توضيحية"
المعالجة اللاحقة
فعّل ميزة المعالجة اللاحقة لـ:
- تحسينات القواعد والطلاقة
- فحوصات اتساق المصطلحات
- تحسين تدفق اللغة الطبيعية
- التحقق من الملاءمة الثقافية
💻 واجهة سطر الأوامر (CLI)
للأتمتة أو البرمجة أو التكامل في سير العمل، توفر CLI خيارات قوية.
أوامر الترجمة الأساسية
# ترجمة ملف نصي أساسي
python translate.py -i book.txt -o book_translated.txt \
-sl English -tl Arabic
# ترجمة EPUB مع نموذج محدد
python translate.py -i novel.epub -o novel_arabic.epub \
-m mistral-small:24b -sl English -tl Arabic
# ترجمة ترجمة SRT
python translate.py -i movie.srt -o movie_arabic.srt \
-sl English -tl Arabic
خيارات CLI المتقدمة
# استخدام واجهة برمجة تطبيقات Google Gemini
python translate.py -i document.txt -o document_arabic.txt \
--provider gemini \
--gemini_api_key YOUR_API_KEY \
-m gemini-2.0-flash \
-sl English -tl Arabic
# حجم جزء مخصص ومهلة زمنية
python translate.py -i large_book.txt -o large_book_arabic.txt \
-sl English -tl Arabic \
--chunk_size 50 \
--timeout 120
# مع تعليمات مخصصة
python translate.py -i technical_manual.txt -o manual_arabic.txt \
-sl English -tl Arabic \
--custom_instructions "احتفظ بالمصطلحات التقنية بالإنجليزية، استخدم العربية الفصحى"
مرجع معاملات CLI
المعامل | الوصف | مثال |
---|---|---|
-i, --input |
مسار الملف المدخل | book.txt |
-o, --output |
مسار الملف المخرج | book_arabic.txt |
-sl, --source_language |
اللغة المصدر | English |
-tl, --target_language |
اللغة الهدف | Arabic |
-m, --model |
اسم نموذج LLM | mistral-small:24b |
--provider |
مزود LLM | ollama أو gemini |
--chunk_size |
أسطر لكل جزء | 25 |
--timeout |
مهلة الطلب | 60 |
--custom_instructions |
إرشادات الترجمة | نص مخصص |
🐳 نشر Docker
للبيئات المتسقة والنشر السهل، استخدم تكوين Docker المقدم.
إعداد Docker سريع
# بناء صورة Docker
docker build -t translatebook .
# تشغيل مع ربط المجلد
docker run -p 5000:5000 \
-v $(pwd)/translated_files:/app/translated_files \
translatebook
# أو مع منفذ مخصص
docker run -p 8080:5000 \
-e PORT=5000 \
-v $(pwd)/translated_files:/app/translated_files \
translatebook
تكوين Docker Compose
إنشاء ملف docker-compose.yml
:
version: '3'
services:
translatebook:
build: .
ports:
- "5000:5000"
volumes:
- ./translated_files:/app/translated_files
- ./input_files:/app/input_files
environment:
- PORT=5000
- API_ENDPOINT=http://host.docker.internal:11434/api/generate
networks:
- translation_network
networks:
translation_network:
driver: bridge
تشغيل بـ: docker-compose up
🔧 التكوين المتقدم والتحسين
تحسين جودة الترجمة
1. هندسة المطالبات
يستخدم التطبيق مطالبات متطورة في prompts.py
. خصصها لاحتياجاتك:
structured_prompt = f"""
## [الدور]
أنت مترجم محترف باللغة {target_language} متخصص في {domain}.
## [تعليمات الترجمة]
+ ترجم بأسلوب ونبرة المؤلف الأصلية
+ احفظ الفروق الثقافية الدقيقة وتكيف بشكل مناسب
+ حافظ على الدقة التقنية للمحتوى المتخصص
+ استخدم {target_language} طبيعية وطليقة
+ احفظ التنسيق والهيكل
## [الإرشادات المحددة]
{custom_instructions}
"""
2. تحسين حجم الجزء
العثور على التوازن الأمثل بين الحفاظ على السياق وكفاءة المعالجة:
# التكوين في src/config.py
CHUNK_SIZES = {
'technical': 15, # وثائق تقنية
'literary': 25, # كتب وروايات
'dialogue': 35, # نصوص ومحادثات
'academic': 20 # أوراق بحثية
}
3. إرشادات اختيار النموذج
نوع المحتوى | النموذج الموصى به | السبب |
---|---|---|
الوثائق التقنية | codellama:34b |
دقة تقنية أفضل |
الأدب | llama3.1:8b |
توازن الإبداع والدقة |
الأوراق الأكاديمية | gemini-1.5-pro |
قدرات استنتاج فائقة |
المحتوى العام | mistral-small:24b |
سريع وفعال |
ضبط الأداء
تحسين الذاكرة والمعالجة
# في src/config.py
PERFORMANCE_SETTINGS = {
'BATCH_SIZE': 5, # مهام ترجمة متزامنة
'MEMORY_LIMIT': '4GB', # استخدام أقصى للذاكرة
'CACHE_ENABLED': True, # تمكين تخزين الترجمة المؤقت
'ASYNC_WORKERS': 3 # خيوط العمل غير المتزامنة
}
إدارة نافذة السياق
CONTEXT_SETTINGS = {
'OVERLAP_LINES': 2, # أسطر للتداخل بين الأجزاء
'PRESERVE_PARAGRAPHS': True, # الحفاظ على حدود الفقرة
'SENTENCE_BOUNDARY': True # احترام حدود الجملة
}
📊 المراقبة واستكشاف الأخطاء وإصلاحها
المشاكل الشائعة والحلول
1. مشاكل اتصال Ollama
# التحقق من تشغيل Ollama
curl http://localhost:11434/api/tags
# إعادة تشغيل خدمة Ollama
sudo systemctl restart ollama
# التحقق من إعدادات الجدار الناري
sudo ufw status
2. مشاكل الذاكرة مع الملفات الكبيرة
# تقليل حجم الجزء للملفات الكبيرة
python translate.py -i large_file.txt -o output.txt \
--chunk_size 10 \
--timeout 180
3. مشاكل جودة الترجمة
جرب استراتيجيات التحسين التالية:
# استخدام المعالجة اللاحقة
python translate.py -i input.txt -o output.txt \
--enable_postprocessing \
--custom_instructions "ركز على تدفق اللغة الطبيعية"
# جرب نماذج مختلفة
python translate.py -i input.txt -o output.txt \
-m llama3.1:8b # بدلاً من mistral-small:24b
التسجيل والتصحيح
تمكين التسجيل المفصل:
# في ملف .env
DEBUG=True
LOG_LEVEL=DEBUG
VERBOSE_LOGGING=True
مراقبة تقدم الترجمة:
# مراقبة ملفات السجل
tail -f translation.log
# التحقق من استجابات API
curl -X POST http://localhost:5000/api/translate/status
🌟 حالات الاستخدام الواقعية والأمثلة
حالة الاستخدام 1: ترجمة ورقة أكاديمية
# ترجمة ورقة بحثية بتركيز أكاديمي
python translate.py \
-i "research_paper.pdf" \
-o "research_paper_arabic.pdf" \
-sl English -tl Arabic \
--custom_instructions "حافظ على النبرة الأكاديمية، احفظ الاستشهادات، ترجم الملخصات بالكامل" \
--chunk_size 20 \
--enable_postprocessing
حالة الاستخدام 2: خط أنابيب نشر الكتب الإلكترونية
#!/bin/bash
# خط أنابيب ترجمة الكتب الإلكترونية المؤتمت
LANGUAGES=("Arabic" "French" "Spanish" "German")
INPUT_BOOK="novel.epub"
for lang in "${LANGUAGES[@]}"; do
python translate.py \
-i "$INPUT_BOOK" \
-o "novel_${lang,,}.epub" \
-sl English -tl "$lang" \
-m llama3.1:8b \
--custom_instructions "احفظ هيكل الفصول، حافظ على تنسيق الحوار" \
--enable_postprocessing
echo "Translation to $lang completed"
done
حالة الاستخدام 3: سير عمل الترجمة لمنشئي المحتوى
# ترجمة ترجمات مجمعة
python translate.py \
-i "episode_01.srt" \
-o "episode_01_arabic.srt" \
-sl English -tl Arabic \
--custom_instructions "حافظ على التوقيت بدقة، استخدم العربية المحكية العادية" \
--chunk_size 35
🔮 الميزات المتقدمة والتكامل
تكامل API
يوفر التطبيق نقاط نهاية REST API للتكامل:
import requests
# إرسال مهمة ترجمة
response = requests.post('http://localhost:5000/api/translate', json={
'file_content': 'نص للترجمة',
'source_language': 'English',
'target_language': 'Arabic',
'model': 'mistral-small:24b',
'custom_instructions': 'حافظ على النبرة الرسمية'
})
job_id = response.json()['job_id']
# التحقق من حالة الترجمة
status = requests.get(f'http://localhost:5000/api/translate/status/{job_id}')
print(status.json())
تحديثات WebSocket في الوقت الفعلي
// تقدم الترجمة في الوقت الفعلي
const socket = io('http://localhost:5000');
socket.on('translation_progress', (data) => {
console.log(`التقدم: ${data.percentage}%`);
console.log(`الجزء الحالي: ${data.current_chunk}/${data.total_chunks}`);
});
socket.on('translation_complete', (data) => {
console.log('اكتملت الترجمة!');
// تنزيل الملف المترجم
window.location.href = data.download_url;
});
تكامل مزود مخصص
توسيع التطبيق بمزودي LLM مخصصين:
# في src/core/llm_providers.py
class CustomProvider(LLMProvider):
def __init__(self, api_key, model_name):
self.api_key = api_key
self.model_name = model_name
async def translate_chunk(self, text, source_lang, target_lang, custom_instructions=""):
# تنفيذ استدعاء API LLM المخصص الخاص بك
response = await self.custom_api_call(text, source_lang, target_lang)
return response['translated_text']
🎓 أفضل الممارسات والنصائح
إرشادات جودة الترجمة
- اختر النموذج المناسب: طابق قدرات النموذج مع تعقيد المحتوى
- حسّن حجم الجزء: وازن بين الحفاظ على السياق وكفاءة المعالجة
- استخدم التعليمات المخصصة: قدم إرشادات محددة لمجالك
- فعّل المعالجة اللاحقة: للمحتوى المهني أو المنشور
- راجع المخرجات: راجع الترجمات دائمًا، خاصة للمحتوى الحرج
أفضل ممارسات الأداء
- إدارة الموارد: راقب استخدام الذاكرة للملفات الكبيرة
- المعالجة المتزامنة: استخدم أحجام دفعات مناسبة لأجهزتك
- استراتيجية التخزين المؤقت: فعّل التخزين المؤقت لمهام الترجمة المتكررة
- اختيار النموذج: استخدم النماذج المحلية للخصوصية، النماذج السحابية للجودة
اعتبارات الأمان
- إدارة مفاتيح API: احفظ مفاتيح API بأمان، لا تضعها في التحكم بالإصدار أبدًا
- التحقق من الملفات: يتضمن التطبيق التحقق المدمج من نوع الملف
- خصوصية البيانات: استخدم النماذج المحلية للمحتوى الحساس
- أمان الشبكة: تكوين الجدران النارية بشكل مناسب لواجهة الويب
🚀 الخلاصة والخطوات التالية
يمثل TranslateBookWithLLM تقدمًا مهمًا في أدوات الترجمة المدعومة بالذكاء الاصطناعي، حيث يوفر كلاً من خصوصية نماذج LLM المحلية وقوة النماذج السحابية. تجعل الهندسة المعمارية المتطورة وقدرات الحفاظ على التنسيق والواجهات سهلة الاستخدام منه أداة لا تقدر بثمن لأي شخص يعمل مع المحتوى متعدد اللغات.
النقاط الرئيسية
- حل متعدد الاستخدامات: يدعم تنسيقات ملفات ومزودي LLM متعددة
- التركيز على الجودة: ترجمة مدركة للسياق مع خيارات المعالجة اللاحقة
- سهولة الاستخدام: واجهة ويب وCLI لحالات استخدام مختلفة
- قابلية التوسع: دعم Docker لنشر الإنتاج
- قابلية التوسيع: هندسة مفتوحة للتكامل المخصص
ما التالي؟
- التجريب: ابدأ بملفات صغيرة لفهم قدرات الأداة
- التخصيص: تكييف المطالبات والإعدادات لحالات الاستخدام المحددة الخاصة بك
- التكامل: ادمج في سير العمل الحالي عبر API
- المساهمة: المشروع مفتوح المصدر - فكر في المساهمة بالتحسينات
- التوسع: انشر باستخدام Docker لحالات استخدام الإنتاج
موارد للتعلم الإضافي
- مستودع GitHub: الكود المصدري والوثائق
- وثائق Ollama: إعداد وإدارة LLM المحلي
- واجهة برمجة تطبيقات Google Gemini: قدرات وأسعار LLM السحابي
- وثائق Docker: أفضل ممارسات الحاويات
مستقبل الترجمة هنا، وهو مدعوم بالذكاء الاصطناعي. مع TranslateBookWithLLM، لديك الأدوات لتجاوز الحواجز اللغوية مع الحفاظ على الفروق الدقيقة والسياق التي تجعل التواصل ذا معنى حقيقي.
هل جربت TranslateBookWithLLM؟ شارك تجاربك وقصص نجاح الترجمة الخاصة بك في التعليقات أدناه!