Перейти к основному содержанию
Upgrade to Pro
Русский
简体中文
繁體中文
繁體中文(香港)
English
日本語
العربية
Deutsch
Español
Français
हिन्दी
Italiano
한국어
Português
Português (Brasil)
Русский

Руководство по настройке 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: "你好吗?"