Перейти к содержимому

Переход на Gemini и кэширование промптов для Claude

Машинный перевод

Я продолжаю работать над личным проектом, посвящённым крупным кошкам. В рамках этого проекта я недавно запустил рассылку с новостями о крупных кошках на английском языке. Подписывайтесь в Facebook, Bluesky, Twitter или Telegram по адресу @BigCatsNews.

В последнее время я сосредоточился на разработке надёжной системы для автоматического перевода новостей с английского на украинский с помощью различных моделей ИИ. Процесс начинается с базовой модели перевода, после которой следует этап анализа, который проверяет перевод на наличие проблем и дает рекомендации по его улучшению. Эти рекомендации применяются более простой и экономичной моделью. Если продвинутая модель не выявляет проблем перевода в двух последовательных итерациях или достигает 16 итераций, система повторяет процесс с ещё более продвинутой моделью.

Для первоначального перевода и анализа я более месяца пользовался DeepSeek R1. Хотя эта модель обеспечивала хороший баланс между стоимостью и качеством, она допускала несколько ошибок, не всегда следовала инструкциям и требовала частой настройки промпта.

Недавно я обнаружил, что новый Gemini 2.5 Pro от Google, как видно на LiveBench, демонстрирует высокие результаты в языковых задачах. Я решил заменить DeepSeek R1 на Gemini 2.5 Pro, и результаты значительно улучшились, при этом проблем стало меньше. Теперь я подумываю об уменьшении количества инструкций в промпте. В прошлом месяце я пробовал Gemini 2.0 Pro, но он плохо справился с украинским текстом.

На этапе анализа я сначала полагался на DeepSeek V3 и V3–0324. Однако эти модели порой удаляли неожиданный текст и вносили опечатки, не следуя инструкциям в полной мере. Из-за этого я перешел на Gemini 2.0 Flash, который работает лучше, более экономичен и соблюдает все инструкции продвинутой модели.

Интегрировать Google AI в мой проект на Laravel было непросто, поскольку он несовместим с PHP-библиотекой OpenAI. Чтобы обойти это, я воспользовался инструментами HTTP-запросов Laravel вместо специальной библиотеки Google AI, что потребовало другого форматирования.

С тех пор как я перешел на простые HTTP-запросы, я внедрил кэширование промптов, используемых в окончательном анализе. Этот анализ работает на Anthropic Claude 3.7 Sonnet в режиме «мышления», который поддерживает лимит в 64k токенов. Хотя этот лимит дорогой и лишь немного дешевле, чем o1-preview, он позволил мне эффективно изменять промпт для анализа и рекомендаций по переводу.

Кэширование требует использования эндпоинта messages, который отличается от эндпоинта chat completions в OpenAI. Системный промпт теперь состоит из нескольких частей, причём кэшируются только статические секции. Чтобы обеспечить правильную обработку временных данных и хронологии, я передаю дату новости отдельно, без кэширования, после начального кэшированного промпта с инструкциями.

Я планирую внедрить асинхронные пакетные запросы в фоновом режиме, чтобы ещё вдвое сократить затраты.

Сочетание Gemini 2.5 Pro и Claude 3.7 Sonnet теперь даёт переводы, которые в большинстве случаев не требуют ручной корректировки. Результаты можно посмотреть на сайте https://bigcats.org.ua/news, ознакомившись со статьями за сегодня и вчера.

Включите комментарии, приняв куки.

Необходимые куки работают всегда. Куки для статистики и комментариев используются только с вашего согласия. Подробнее