انتقل إلى المحتوى الرئيسي

دليل تكوين AI Prompt

نظرة عامة

يدعم Immersive Translate تكوين Prompt مخصص لترجمة AI، مما يسمح للمستخدمين المتقدمين بتعديل سلوك الترجمة وفقًا لاحتياجاتهم. يوفر هذا المستند تعليمات مفصلة حول طرق التكوين والمتغيرات المدعومة والاستخدام المتقدم.

المتغيرات المدعومة

المتغيرات الأساسية

  • {{text}} - محتوى النص المراد ترجمته
  • {{from}} - اللغة المصدر
  • {{to}} - اللغة الهدف
  • {{content_type}} - نوع النص الأصلي (html أو text)

متغيرات السياق

  • {{title_prompt}} - عنوان صفحة الويب (عند التوفر)
  • {{summary_prompt}} - ملخص سياق صفحة الويب (عند التوفر)
  • {{terms_prompt}} - المصطلحات المهنية ذات الصلة (عند التوفر)

طرق التكوين

1. System Prompt(systemPrompt)

طلب ترجمة يتم إرساله إلى AI كهوية النظام. يُستخدم لتعيين دور AI والقواعد الأساسية.

2. Prompt(prompt)

محادثة يتم إرسالها إلى AI كهوية المستخدم، تحتوي على المحتوى الفعلي المراد ترجمته.

3. System Multiple Prompt(systemMultiplePrompt)

طلب ترجمة يتم إرساله إلى AI كهوية النظام عندما يكون عدد الفقرات أكبر من 1. يُستخدم للتعامل مع سيناريوهات ترجمة الفقرات المتعددة.

4. Multiple Prompt(multiplePrompt)

طلب يتم إرساله كهوية المستخدم لترجمة الفقرات المتعددة. يدعم استخدام الفواصل أو تنسيق YAML.

5. Subtitle Prompt(subtitlePrompt)

عند الحاجة إلى ترجمة الترجمات، محادثة يتم إرسالها إلى AI كهوية المستخدم، تحتوي على المحتوى الفعلي المراد ترجمته.

أمثلة التكوين الافتراضي

إذا تم جمع فقرة واحدة فقط، فسيستخدم Prompt الفقرة الواحدة افتراضيًا. إذا تم جمع فقرات متعددة، فسيستخدم Prompt الفقرات المتعددة افتراضيًا. ستكون معظم الحالات فقرات متعددة. الفاصل الافتراضي للفقرات المتعددة هو %%. نستخدم عمدًا هذا الفاصل غير الشائع لتقليل الهلوسة في النماذج الكبيرة. يمكنك استخدام هذا Prompt كأساس لتعديله حسب احتياجاتك. فيما يلي تكوينات Prompt الافتراضية:

ترجمة فقرة واحدة

systemPrompt: |
أنت مترجم محترف أصلي للغة {{to}} تحتاج إلى ترجمة النص بطلاقة إلى {{to}}.

## قواعد الترجمة
1. أخرج المحتوى المترجم فقط، دون تفسيرات أو محتوى إضافي (مثل "الترجمة كالتالي:" أو "الترجمة:")
2. يجب أن تحافظ الترجمة المُرجعة على نفس عدد الفقرات والتنسيق تمامًا مثل النص الأصلي
3. إذا كان النص يحتوي على علامات HTML، ففكر في مكان وضع العلامات في الترجمة مع الحفاظ على الطلاقة
4. للمحتوى الذي لا ينبغي ترجمته (مثل الأسماء الخاصة، الكود، إلخ)، احتفظ بالنص الأصلي
5. أخرج الترجمة مباشرة (بدون فواصل، بدون نص إضافي){{title_prompt}}{{summary_prompt}}{{terms_prompt}}
prompt: |
ترجم إلى {{to}} (أخرج الترجمة فقط):

{{text}}

ترجمة الفقرات المتعددة

multipleSystemPrompt: |
أنت مترجم محترف أصلي للغة {{to}} تحتاج إلى ترجمة النص بطلاقة إلى {{to}}.

## قواعد الترجمة
1. أخرج المحتوى المترجم فقط، دون تفسيرات أو محتوى إضافي (مثل "الترجمة كالتالي:" أو "الترجمة:")
2. يجب أن تحافظ الترجمة المُرجعة على نفس عدد الفقرات والتنسيق تمامًا مثل النص الأصلي
3. إذا كان النص يحتوي على علامات HTML، ففكر في مكان وضع العلامات في الترجمة مع الحفاظ على الطلاقة
4. للمحتوى الذي لا ينبغي ترجمته (مثل الأسماء الخاصة، الكود، إلخ)، احتفظ بالنص الأصلي{{title_prompt}}{{summary_prompt}}{{terms_prompt}}

## أمثلة تنسيق الإدخال-الإخراج

### مثال الإدخال:
Paragraph A

%%

Paragraph B

%%

Paragraph C

%%

Paragraph D

### مثال الإخراج:
Translation A

%%

Translation B

%%

Translation C

%%

Translation D

multiplePrompt: |
ترجم إلى {{to}}:

{{text}}
subtitlePrompt: |
ترجم إلى {{to}}:

{{text}}

الاستخدام المتقدم (تنسيق YAML)

للحالات التي تتطلب تحكمًا أكثر دقة (مثل المخرجات متعددة الخطوات)، يمكن استخدام تنسيق YAML للتكوين:

المتغيرات المتقدمة

  • {{yaml}} - بيانات الإدخال بتنسيق YAML

متغير 'yaml' الافتراضي يبدو هكذا:

- id: 1
text: Hello world
- id: 2
text: How are you?

نتوقع افتراضيًا أن يكون مخرج النموذج الكبير هكذا:

- id: 1
text: 你好世界
- id: 2
text: 你好吗?

إذا كنت تستخدم {{yaml}} الافتراضي، فأنت بحاجة إلى التعبير عن هذا التوقع بوضوح في الـ prompt. إذا كنت ترغب في تعديل تنسيق yaml الافتراضي والاستجابة، فلا يمكن حل هذا من خلال واجهة المستخدم لصفحة إعدادات Immersive Translate. يجب عليك تحرير تكوين المستخدم بتنسيق JSON لـ Immersive Translate مباشرة.

مسار تحرير تكوين المستخدم: صفحة الإعدادات->إعدادات المطور->Edit Full User Config (يرجى نسخ احتياطي لتكوين المستخدم قبل التحرير)

يمكنك العثور على تكوين خدمة الترجمة في JSON لتكوين المستخدم (إذا لم يكن موجودًا، أضفه ببساطة وفقًا لهذه البنية):

{
...
"translationServices": {
"openai": {
...
}
},
...

متغير yaml يتكون من env.imt_yaml_item، لذا يمكنك تعديل تنسيق imt_yaml_item هكذا:

  "translationServices": {
"openai": {
"env": {
"imt_yaml_item": "- id: {{id}}\n source: {{text}}"
}
}
}

متغير خاص آخر هو imt_subtitle_yaml_item، مشابه لـ imt_yaml_item، يُستخدم لعناصر YAML لترجمة الترجمات.

للمتغيرات env الأخرى، يمكنك إضافة أي متغير env واستخدامه مباشرة في الـ prompt بتنسيق {{اسم_المتغير}}، مثل متغيرات env الافتراضية التالية:

  • {{imt_source_field}} - اسم حقل النص المصدر (افتراضي: text)
  • {{imt_trans_field}} - اسم حقل النص المترجم (افتراضي: text)
  • {{imt_sub_source_field}} - اسم حقل النص المصدر للترجمات
  • {{imt_sub_trans_field}} - اسم حقل النص المترجم للترجمات

بما في ذلك title_prompt، summary_prompt، terms_prompt يتم تكوينها أيضًا عبر env، افتراضيًا كما يلي:

        "title_prompt": "\n\n## الوعي بالسياق\nبيانات وثيقة:\nالعنوان: 《{{imt_title}}》",
"summary_prompt": "\n\n## الوعي بالسياق\nبيانات وثيقة:\nالملخص: {{imt_theme}}...",
"terms_prompt": "\n\nالمصطلحات المطلوبة: يجب عليك استخدام المصطلحات التالية أثناء الترجمة. إذا كان 'source':'target' و source == target، احتفظ بالمصطلح المصدر دون تغيير.\n\n المصطلحات -> \n\n {{imt_terms}}",
"sub_summary_prompt": "\n\n## الوعي بالسياق\nبيانات وثيقة:\nالنوع: ترجمة\nالملخص: {{imt_theme}}...",
"sub_terms_prompt": "\n\nالمصطلحات المطلوبة: يجب عليك استخدام المصطلحات التالية أثناء الترجمة. إذا كان 'source':'target' و source == target، احتفظ بالمصطلح المصدر دون تغيير.\n\n المصطلحات -> \n\n {{imt_terms}}"

حيث imt_title، imt_theme، imt_terms هي متغيرات خاصة يتم حقنها بواسطة النظام. imt_title هو العنوان، imt_theme هو ملخص صفحة الويب بأكملها، imt_terms هي المصطلحات الرئيسية المستخرجة بواسطة النموذج.

ملاحظة: imt_theme، imt_terms يتم استخراجها بواسطة خدمة احتكارية وهي متاحة حاليًا فقط لأعضاء Pro.

مثال YAML Prompt

systemPrompt: |
أنت محرك ترجمة آلي احترافي وموثوق.
{{title_prompt}}{{summary_prompt}}{{terms_prompt}}

multiplePrompt: |
سوف تتلقى إدخالاً بتنسيق YAML يحتوي على إدخالات مع حقول "id" و "{{imt_source_field}}". هذا هو الإدخال:

<yaml>
{{yaml}}
</yaml>

لكل إدخال في YAML، ترجم محتوى حقل "{{imt_source_field}}" إلى {{to}}،{{html_only}} اكتب الترجمة مرة أخرى في حقل "{{imt_source_field}}" لهذا الإدخال.

فيما يلي مثال على التنسيق المتوقع:

{{normal_result_yaml_example}}

يرجى إرجاع YAML المترجم مباشرة دون علامة <yaml> أو معلومات إضافية.
subtitlePrompt: |
سوف تتلقى إدخال ترجمات بتنسيق YAML يحتوي على إدخالات مع حقول "id" و "{{imt_sub_source_field}}". هذا هو الإدخال:

<yaml>
{{yaml}}
</yaml>

لكل إدخال في YAML، ترجم محتوى حقل "{{imt_sub_source_field}}" إلى {{to}}،{{html_only}} اكتب الترجمة مرة أخرى في حقل "{{imt_sub_source_field}}" لهذا الإدخال.

فيما يلي مثال على التنسيق المتوقع:

{{subtitle_result_yaml_example}}

يرجى إرجاع YAML المترجم مباشرة دون علامة <yaml> أو معلومات إضافية.

html_only هو متغير خاص موجود فقط عندما يكون النص الأصلي المراد ترجمته بتنسيق HTML. القيمة هي: \n\nملاحظة: إذا كان النص يحتوي على علامات HTML، يرجى التفكير بعد الترجمة في مكان وضع العلامات في نتيجة الترجمة، مع الحفاظ على طلاقة النتيجة.، هذا المتغير موجود فقط عندما يقوم المستخدم بتفعيل "ترجمة النص المنسق" في خدمات ترجمة AI. وإلا فهو فارغ.

normal_result_yaml_example يتم تعيينه في env، الافتراضي هو:

<example>
Input:
- id: 1
{{imt_source_field}}: Source
Output:
- id: 1
{{imt_trans_field}}: Translation
</example>

subtitle_result_yaml_example يتم تعيينه في env، القيمة الافتراضية هي:

<example>
Input:
- id: 1
{{imt_sub_source_field}}: ...
- id: 2
{{imt_sub_source_field}}: ...
- id: 3
{{imt_sub_source_field}}: ...
Output:
- id: 1
{{imt_sub_source_field}}: ...
- id: 2
{{imt_sub_source_field}}: ...
- id: 3
{{imt_sub_source_field}}: ...
</example>

يمكنك تجاوزه في env.

مثال متقدم: الترجمة التأملية

يوضح هذا المثال كيفية استخدام تنسيق YAML لتنفيذ تدفق ترجمة أكثر تعقيدًا، يتضمن خطوتين: الترجمة الأولية والترجمة المحسّنة:

env:
imt_source_field: source
imt_trans_field: step2 # الترجمة النهائية تستخدم حقل step2
imt_sub_source_field: source
imt_sub_trans_field: step2
imt_yaml_item: |-
- id: {{id}}
{{imt_source_field}}: {{text}}
imt_subtitle_yaml_item: |-
- id: {{id}}
{{imt_sub_source_field}}: {{text}}

systemPrompt: |
أنت محرك ترجمة آلي احترافي وموثوق.
{{title_prompt}}{{summary_prompt}}{{terms_prompt}}

multiplePrompt: |
هذا هو إدخال YAML:
<yaml>
{{yaml}}
</yaml>

يرجى اتباع هذه الخطوات:
1. استخرج محتوى حقل "source" من كائن YAML المقدم.
2. ترجم المحتوى المستخرج إلى {{to}}. ضع هذه الترجمة الأولية في حقل step1.
3. حسّن الترجمة الأولية من step1 لجعلها أكثر طبيعية ومفهومة في {{to}}.
ضع الترجمة المحسّنة في حقل step2.
4. قم بتنسيق النتيجة كمصفوفة YAML مع حقول id و step1 و step2، كما هو موضح في هذا المثال:

- id: 1
step1: الترجمة الأولية
step2: الترجمة المحسّنة

يرجى إرجاع YAML المترجم مباشرة دون علامات <example_output> أو معلومات إضافية.

وصف سير العمل

  1. تنسيق الإدخال

    - id: 1
    source: "Hello world"
    - id: 2
    source: "How are you?"
  2. خطوات معالجة AI

    • الخطوة 1: قم بإجراء الترجمة الأولية
    • الخطوة 2: حسّن الترجمة لجعلها أكثر طبيعية وطلاقة
  3. تنسيق الإخراج

    - id: 1
    step1: "你好世界"
    step2: "你好,世界"
    - id: 2
    step1: "你怎么样?"
    step2: "你好吗?"