Цей сайт автоматично перекладено кількома мовами за допомогою ПЗ, розробленого Kohei Koyanagi. Для точності зверніться до оригіналу англійською .

Як цей блог перекладається на 42 мови

Блог Splync має 42 мови

Це 23-та стаття в моєму блозі для Splync, спільного трекера бюджету для пар, друзів і сімей. Ви можете здивуватися, як я публікую кожну статтю на 42 мовах, будучи самотнім інженером. Як зазначено на початку кожної статті, цей вебсайт автоматично перекладається на кілька мов за допомогою програми, яку я створив сам. Щоб було зрозуміло: я не пишу вручну жодного речення іншими мовами, окрім англійської. Тому я прошу читачів звертатися до оригінальної англійської версії, коли точність значення дійсно важлива. Тим не менш, після багатьох спроб і помилок з покращенням процесу перекладу я вважаю, що загальна якість перекладу досить добра. У цій статті я розповім, що робить моя програма, щоб зробити блог Splync багатомовним.

Разом Python і OpenAI API

Я завжди починаю з написання кожної статті простою англійською, включаючи метадані для SEO. Після цього мій скрипт на Python надсилає англійський текст до OpenAI API разом із запитом та невеликим файлом довідників. На серверах OpenAI, ChatGPT-4o читає запит і повертає перекладену статтю — наприклад, арабську версію — у форматі JSON. Як тільки мій MacBook отримує цей переклад, скрипт одразу надсилає ще один запит, цього разу на бенгальську. Скрипт автоматично обробляє всі 42 цільові мови. До кінця процесу мій комп’ютер має 42 перекладених файли JSON. Ще один скрипт на Python вбудовує кожен переклад у HTML-шаблон і генерує 42 HTML-файли менш ніж за секунду. Усі файли завантажуються на сервер, де розміщено цей блог, і кожна версія мовою розміщується в окремій директорії. Нарешті, серверний скрипт на Python оновлює індекс статей і посилання «Наступна стаття», щоб навігація була узгодженою для всіх мов. З оригінальною англійською статтею, написаною в простому тексті, весь процес зазвичай займає 5 хвилин або менше. Коли мені потрібно внести зміни, я оновлюю кілька HTML-файлів одночасно, використовуючи серверні скрипти на Python.

Що таке API

Якщо ви не знайомі з технічними термінами, можливо, вам цікаво, як мій комп’ютер «спілкується» з сервером OpenAI. Відповідь полягає в чомусь, що називається API, інтерфейс прикладного програмування. Ви можете уявити API як вікно для обміну повідомленнями між двома програмами: одна програма надсилає запит, а інша надсилає відповідь. Наприклад, мій скрипт на Python надсилає повідомлення, на кшталт: «Будь ласка, перекладіть цю статтю німецькою». OpenAI отримує це повідомлення через API, готує переклад і надсилає результат назад. Це працює так само, як замовлення в ресторані: ви кажете офіціанту, що хочете, кухня готує це, і офіціант приносить назад до вашого столу. І чому ви взагалі звертаєтеся до офіціанта? Тому що ви не заходите на кухню і не спілкуєтеся безпосередньо з шеф-кухарем — ви не знаєте, як працює кухня, і вам це не потрібно. Ви можете сказати офіціанту: «Чи можу я замовити чізбургер?», а офіціант може вигукнути: «Замовлення готово! T21, Chihuahua!» у зовсім іншому форматі. API виконує ту ж роль. Воно з’єднує дві різні системи, не вимагаючи від них розуміння внутрішньої мови або робочого процесу одна одної.

Навіщо мені OpenAI API

Тепер, коли ми знаємо, що таке API, ось чому я насправді на нього покладаюся для цього блогу. Практично кажучи, я знаю, як «спілкуватися» з ChatGPT самостійно — але я маю обробити 42 мови. Викликати офіціанта 42 рази було б виснажливо (програма пропускає переклад англійської на англійську, але все одно перетворює текст у формат JSON). Використання OpenAI API дозволяє моєму скрипту на Python автоматично надсилати всі ці запити, що позбавляє мене від повторюваної роботи, щоб я міг зосередитися на інших речах. Я самотній розробник, тому мені потрібно використовувати свій час максимально ефективно. Коли я бачу завдання, яке повторюється і має чіткі правила, я автоматизую його. Результат зазвичай — процес, котрий в мільйон разів швидший і повністю без помилок. Ось чому автоматизація через API є важливою — вона дозволяє моєму скрипту розміщувати всі 42 «замовлення» миттєво і надійно.

Чому 42 мови

Технічно, я міг би додати багато більше мов, це зайняло б лише кілька додаткових хвилин під час миття посуду. Але мені особисто подобається число 42, «відповідь на питання про життя, всесвіт і все інше» з книги Дугласа Адамса. Окрім моєї прив'язаності до цього числа, додавання дуже рідкісних мов може бути ризикованим, адже переклад AI може стати менш надійним для мов з обмеженими навчальними даними.

Температура ChatGPT 4o

Коли я вперше експериментував з цим підходом до багатомовного перекладу, результати були непогані, але не ідеальні. Деякі речення були перекладені неправильно, надто буквально або злегка вводили в оману в певних мовах. Я також хвилювався, що ненавмисно можу створити вислови, які можуть бути недоречними або образливими в конкретних культурних контекстах. І, звісно, я не хотів, щоб мої переклади звучали як роботи. Одним із ключових факторів якості перекладу є налаштування температури — параметр, який контролює, наскільки «творчим» або «строгим» має бути AI. Висока температура робить AI більш уявним, але також менш передбачуваним. Низька температура призводить до тіснішої відповідності оригіналу, але іноді може здаватися жорсткою. Мені знадобилося багато спроб і помилок, щоб знайти правильний баланс: достатньо низький, щоб забезпечити точність, але не настільки низький, щоб текст ставав безжиттєвим. Після багатьох експериментів я відчув, що температура = 0.8 була найкращим варіантом для потреб цього блогу: досить точна, щоб залишатися вірною англійському оригіналу, але досить гнучка, щоб звучати природно іншими мовами.

ChatGPT 5.x не підтримує температуру

Нові моделі, такі як ChatGPT 5 і 5.1, більше не підтримують налаштування температури взагалі — параметр був видалений і замінений такими концепціями, як міркування і зусилля, які впливають на те, як модель думає, а не на те, наскільки «творчою» вона стає. Іншими словами, ChatGPT 4o дав мені фізичний регулятор, який я міг налаштувати, щоб удосконалити стиль перекладу, але сімейство 5.x дотримується зовсім іншої філософії. Якщо ви просто попросите новішу модель «перекласти це з температурою = 0.8», вона може спробувати діяти так, ніби така налаштування все ще існує, але внутрішньо параметр зник. Модель просто наближає намір. Оскільки OpenAI продовжує оновлювати свої моделі, я можу одного дня змінити свою систему перекладу. Поки що ChatGPT 4o залишається моїм вибором для багатомовних перекладів — не тільки тому, що він добре розуміє контекст багатьма мовами, але й тому, що його ціна на API прийнятна для такого самотнього розробника, як я. Насправді, 4o може стати однією з найулюбленіших моделей в історії OpenAI.

Працівники OpenAI API

Одна з дивовижних речей OpenAI API — у порівнянні з використанням ChatGPT безпосередньо в браузері — це те, що ви можете використовувати більше ніж одного «працівника» ChatGPT одночасно. Коли я відправляю запити на переклад для 42 мов, я не надсилаю їх по одному у повільній черзі. Замість цього API може обробляти багато запитів паралельно, ніби я раптом найняв кімнату, повну перекладачів, які всі починають працювати одночасно. Мій скрипт на Python керує робочим процесом як невелика виробнича лінія: він готує англійську статтю, розсилає запити, чекає на відповіді та обробляє результати у файли JSON. Тим часом сервери OpenAI запускають кілька моделей одночасно, кожна з яких перекладає іншу мову паралельно. Це те, чого сайт або додаток ChatGPT не можуть зробити — ці інтерфейси дають вам одну модель, одну розмову, одну задачу за раз. Але з API ви можете розширити своє навантаження так широко, як дозволяє ваш скрипт. Для такого самотнього розробника, як я, це відчувається як наявність маленької команди найрозумніших і безегоїстичних асистентів. Це частково залежить від швидкості інтернету, але я зазвичай встановлюю workers = 12.

Що я роблю для багатомовності мого блогу — це миття посуду

Я колись працював мийником посуду в студентській їдальні, коли навчався на математиці в університеті Кіото. Хоча платня була близько 5 доларів на годину, мені завжди подобалася повторювана ручна робота після кількох годин — а іноді кількох днів — глибокої інтелектуальної концентрації. Пізніше, коли я працював на часниковій фабриці в Хоккайдо, моя робота полягала лише в тому, щоб полірувати тисячі білих головок часнику, щоб вони виглядали яскравіше на конвеєрній стрічці. Вісім годин на день — повна концентрація, стійкий ритм. Це було дивно задовільно. Тепер, повернувшись із тих спогадів, я зараз займаюся інтелектуальною роботою — пишу програмне забезпечення, проектую системи, пишу ці статті. Але баланс не змінився. Якщо ви спитаєте мене, як я самотужки публікую статтю в блозі на 42 мовах, чесна відповідь: я роблю це, миючи посуд.