Перевод длинного контекста JSON с помощью ChatGPT
Узнайте, как использовать последнюю модель ChatGPT и режим JSON для перевода JSON-объекта с длинным контекстом и потоковой передачей результата обратно в JSON.
Узнайте, как использовать последнюю модель ChatGPT и режим JSON для перевода JSON-файла с длинным контекстом и потоковой передачей результата обратно в JSON.
Введение
Прошло некоторое время с момента нашего последнего поста Эффективная интернационализация с ChatGPT, где мы показывали, как использовать ChatGPT для перевода JSON-объекта. С тех пор модель эволюционировала, и возможности перевода значительно улучшились благодаря более длинному окну контекста, увеличенному количеству максимальных выходных токенов и новым функциям, таким как режим JSON, которые делают опыт разработчиков еще лучше.
Увеличенное количество максимальных выходных токенов
Давайте посмотрим быстрое сравнение последних двух версий модели:
Модель | Описание | Окно контекста | Макс. выходные токены | Данные обучения |
---|---|---|---|---|
gpt-4o-2024-05-13 | gpt-4o в настоящее время указывает на эту версию. | 128,000 токенов | 4,096 токенов | До окт 2023 |
gpt-4o-2024-08-06 | Последняя версия, поддерживающая Structured Outputs | 128,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. Увидимся в следующем посте!