نعم، من الممكن، لكن الجزء الصعب ليس الترجمة نفسها.
الجزء الصعب هو إعادة إنشاء ملف DOCX مع الحفاظ على التنسيق والجداول والعناوين والخطوط والأنماط والصور والرؤوس والتذييلات وبنية الصفحة بشكل دقيق.
لن أرسل ملف DOCX الثنائي الكامل مباشرة إلى وكيل ذكاء اصطناعي وأتوقع منه إرجاع نفس المستند مترجم. يجب على الذكاء الاصطناعي ترجمة النص المستخرج فقط. يجب التعامل مع بنية المستند بشكل منفصل وحتمي.
يجب أن يكون سير العمل مثل هذا:
تنزيل الملف → تحليل بنية DOCX → استخراج النص القابل للترجمة → الترجمة في أجزاء محكومة → التحقق من الترجمات → استبدال النص داخل بنية DOCX الأصلية → إنشاء ملف DOCX مترجم → تحميل الملف أو إرجاعه
يمكن لـ n8n استقبال الملفات والعمل معها كبيانات ثنائية، وعقد الملفات الخاصة به يمكنها استخراج التنسيقات الثنائية المدعومة إلى JSON أو تحويل البيانات المنظمة مرة أخرى إلى ملفات. ومع ذلك، فإن تحويل النص المستخرج مرة أخرى إلى ملف عام لن يعيد بناء ملف DOCX الأصلي تلقائياً بنفس التنسيق بالضبط. (docs.n8n.io)
بالنسبة لملفات DOCX على وجه التحديد، سأستخدم خدمة معالجة مستندات مخصصة أو مكتبة بدلاً من محاولة القيام بكل شيء مباشرة داخل وكيل الذكاء الاصطناعي.
على سبيل المثال:
- قم بتنزيل ملف DOCX عبر واجهة برمجية التطبيقات الخاصة بك.
- أرسل الملف الثنائي إلى خدمة Python صغيرة باستخدام
python-docx، أو مكتبة معالجة DOCX أخرى.
- استخرج الفقرات وخلايا الجدول والرؤوس والتذييلات وعمليات التشغيل النصية مع تعيين معرف ثابت لكل منها.
- أرسل فقط النص والمعرفات إلى نموذج الترجمة.
- اطلب مخرجات JSON منظمة مثل:
[
{
"id": "paragraph_12_run_3",
"translatedText": "المحتوى المترجم"
}
]
- طابق كل قيمة مترجمة مرة أخرى مع معرفها الأصلي.
- استبدل عقد النص الأصلية فقط مع ترك الأنماط وبنية المستند دون تغيير.
- احفظ الحزمة المعدلة كملف DOCX جديد.
- أرجعها إلى n8n كبيانات ثنائية وقم بتحميلها إلى وجهتك.
ربما لن أستخدم وكيل ذكاء اصطناعي للترجمة الأساسية ما لم تتطلب الترجمة أدوات أو اتخاذ قرارات. سلسلة نموذج لغة عادية أو استدعاء نموذج/API مباشر أسهل في التحكم به وينتج عنه مخرجات منظمة أكثر قابلية للتنبؤ.
تحتاج أيضاً إلى الحذر مع عمليات النصوص. في DOCX، يمكن تقسيم جملة واحدة إلى عمليات تشغيل متعددة لأن كلمة واحدة غامقة، وأخرى مائلة أو جزء من رابط تشعبي. ترجمة كل عملية تشغيل بشكل مستقل يمكن أن تدمر الجملة. يمكن لترجمة الفقرة بأكملها الحفاظ على المعنى لكنها تجعل من الصعب استعادة التنسيق المضمن بالضبط.
لذا تحتاج إلى تحديد ما يهمك أكثر:
- جودة الترجمة بالضبط،
- التنسيق المضمن بالضبط،
- أو التوازن بين الاثنين.
بالنسبة لسير عمل الإنتاج، سأضيف أيضاً:
- كشف لغة المستند،
- التقسيم بناءً على الفقرات وخلايا الجدول،
- قواعس المسرد والمصطلحات،
- الحماية للعناوين وأرقام والأكواد والعناصر النائبة،
- التحقق من أن كل معرف مصدر استقبل ترجمة واحدة،
- معالجة إعادة المحاولة،
- فحوصات جودة المستند المترجم،
- ومسار مراجعة يدوية عندما لا يمكن إعادة بناء بنية المستند بأمان.
إذا كانت المستندات بسيطة، مثل الفقرات والجداول الأساسية، فيجب أن تكون python-docx كافية.
إذا كانت تحتوي على ميزات Word متقدمة مثل مربعات النصوص والتخطيطات المعقدة والتغييرات المتتبعة والحقول والأشكال الذكية أو الكائنات المضمنة، فقد لا تحافظ python-docx على كل شيء بشكل صحيح. في هذه الحالة، سأما أن أتلاعب مباشرة بحزمة XML من DOCX أو استخدم واجهة برمجية لترجمة المستندات تدعم رسمياً الحفاظ على تخطيط DOCX.
إذن نعم، يمكن لـ n8n تنسيق سير العمل الكامل، لكن سأعامل n8n كطبقة تنسيق وأستخدم مكون معالجة مستندات مخصص لاستخراج وإعادة بناء ملف DOCX.
القاعدة الأهم هي:
لا تعيد إنشاء المستند من نص عادي مترجم. افتح المستند الأصلي، واستبدل فقط النص القابل للترجمة بداخله، واحفظه كملف جديد.