• chatgpt
  • ai
  • prompt
  • i18n

Перевод длинного контекста JSON с помощью ChatGPT

Узнайте, как использовать последнюю модель ChatGPT и режим JSON для перевода JSON-объекта с длинным контекстом и потоковой передачей результата обратно в JSON.

Gao
Gao
Founder

Узнайте, как использовать последнюю модель ChatGPT и режим JSON для перевода JSON-файла с длинным контекстом и потоковой передачей результата обратно в JSON.

Введение

Прошло некоторое время с момента нашего последнего поста Эффективная интернационализация с ChatGPT, где мы показывали, как использовать ChatGPT для перевода JSON-объекта. С тех пор модель эволюционировала, и возможности перевода значительно улучшились благодаря более длинному окну контекста, увеличенному количеству максимальных выходных токенов и новым функциям, таким как режим JSON, которые делают опыт разработчиков еще лучше.

Увеличенное количество максимальных выходных токенов

Давайте посмотрим быстрое сравнение последних двух версий модели:

МодельОписаниеОкно контекстаМакс. выходные токеныДанные обучения
gpt-4o-2024-05-13gpt-4o в настоящее время указывает на эту версию.128,000 токенов4,096 токеновДо окт 2023
gpt-4o-2024-08-06Последняя версия, поддерживающая Structured Outputs128,000 токенов16,384 токеновДо окт 2023

Самое важное изменение - это увеличение максимального количества выходных токенов с 4,096 до 16,384, что идеально подходит для сценария перевода, поскольку вывод перевода обычно имеет такую же длину или больше, чем вход. Между тем, цена даже снизилась по сравнению с предыдущей моделью на 32K токенов (она была дорогой).

Режим JSON

Как следует из названия, режим JSON очень полезен, когда вы хотите гарантировать, что вывод является допустимым JSON-объектом. Для новой модели вы даже можете определить схему выходного JSON-объекта, используя Structured Outputs.

Начнем

Инициализация

В этом посте для демонстрации мы будем использовать Node.js SDK OpenAI версии 4.56.0. Не стесняйтесь использовать любой другой метод или язык, который вам нравится.

Сначала нам нужно инициализировать клиента OpenAI:

Я настоятельно рекомендую использовать режим потоковой передачи для перевода длинных контекстов, так как это более эффективно, и вам не нужно долго ожидать, чтобы получить результат (например, одну минуту на один запрос). Код будет выглядеть следующим образом:

Давайте напишем несколько подсказок

Мы можем использовать роль system, чтобы дать модели инструкции для её задачи:

Не забудьте заменить "es" на код вашего целевого языка. Согласно нашему опыту, существует несколько инструкций, которые нужно указать модели для лучшего вывода и меньшего вмешательства человека:

Вы можете задаться вопросом, почему нам нужна последняя инструкция. Это объяснение от OpenAI:

При использовании режима JSON вы должны всегда инструктировать модель создавать JSON через какое-то сообщение в разговоре, например, через ваше системное сообщение. Если вы не включите явную инструкцию на генерацию JSON, модель может генерировать нескончаемый поток пробелов, и запрос может выполняться постоянно, пока не достигнет лимита токенов.

С вышеуказанными инструкциями мы можем поместить JSON-объект, который нужно перевести, в следующее сообщение с ролью user. Давайте составим то, что у нас есть:

Обработка вывода

Поскольку мы используем режим потоковой передачи, нам нужно обрабатывать вывод в стиле потоковой передачи. Вот пример:

Заключение

Вот и все! С новой моделью ChatGPT эффективность перевода JSON еще больше улучшилась, и качество перевода также стало лучше. Надеюсь, этот пост поможет вам получить новые инсайты о ChatGPT и переводе JSON. Увидимся в следующем посте!