Blog Splync Ada 42 Bahasa
Ini adalah artikel ke-23 di blog saya untuk Splync, pelacak bajet yang dikongsi untuk pasangan, kawan, dan keluarga. Anda mungkin tertanya-tanya bagaimana saya menerbitkan setiap pos dalam 42 bahasa walaupun saya seorang jurutera tunggal. Seperti yang dinyatakan di bahagian atas setiap artikel, laman web ini diterjemah secara automatik ke pelbagai bahasa menggunakan perisian yang saya bina sendiri. Untuk lebih jelas: saya tidak menulis satu ayat pun secara manual dalam mana-mana bahasa selain Bahasa Inggeris. Oleh sebab itu, saya minta pembaca merujuk kepada versi Bahasa Inggeris asal apabila ketepatan makna benar-benar penting. Namun, selepas banyak percubaan dan kesilapan memperbaiki aliran terjemahan, saya percaya kualiti terjemahan keseluruhan adalah cukup baik. Dalam artikel ini, saya akan berkongsi apa yang perisian saya lakukan untuk menjadikan blog Splync multilingual.
Python dan OpenAI API Bergabung
Saya sentiasa mula menulis setiap artikel dalam Bahasa Inggeris biasa, termasuk metadata berkaitan SEO. Selepas itu, skrip Python saya menghantar teks Bahasa Inggeris ke OpenAI API, bersama-sama dengan arahan dan fail rujukan kecil. Di pelayan OpenAI, ChatGPT-4o membaca permintaan dan mengembalikan artikel yang diterjemah—contohnya, versi Bahasa Arab—dalam format JSON. Apabila MacBook saya menerima terjemahan tersebut, skrip tersebut segera menghantar permintaan lain, kali ini meminta Bahasa Bengali. Skrip tersebut mengulangi semua 42 bahasa sasaran secara automatik. Pada akhir proses, komputer saya mempunyai 42 fail JSON terjemahan. Skrip Python lain kemudian menyematkan setiap terjemahan ke dalam templat HTML dan menjana 42 fail HTML dalam masa kurang daripada satu saat. Semua fail dimuat naik ke pelayan tempat blog ini dihoskan, dan setiap versi bahasa diletakkan dalam direktori sendiri. Akhirnya, skrip Python pada pelayan mengemas kini indeks artikel dan pautan “Pos seterusnya” supaya navigasi setiap bahasa tetap konsisten. Dengan artikel asal Bahasa Inggeris ditulis dalam teks biasa, keseluruhan proses biasanya mengambil masa 5 minit atau kurang. Apabila saya perlu membuat perubahan, saya mengemas kini beberapa fail HTML sekaligus menggunakan skrip Python pelayan.
Apa Itu API
Jika anda tidak biasa dengan istilah teknikal, anda mungkin tertanya-tanya bagaimana komputer saya “bercakap” dengan pelayan OpenAI. Jawapannya ialah sesuatu yang dipanggil API, Antara Muka Pengaturcaraan Aplikasi. Anda boleh anggap API sebagai tetingkap pemesej di antara dua program: satu program menghantar permintaan, dan yang lain menghantar respons. Contohnya, skrip Python saya menghantar mesej seperti, “Sila terjemahkan artikel ini ke dalam Bahasa Jerman.” OpenAI menerima mesej itu melalui API, menyediakan terjemahan, dan menghantar hasilnya kembali. Ia berfungsi seperti membuat pesanan di restoran: anda beritahu pelayan apa yang anda mahu, dapur menyiapkannya, dan pelayan membawanya kembali ke meja anda. Dan kenapa anda perlukan pelayan? Kerana anda tidak masuk ke dapur atau bercakap terus dengan chef—anda tidak tahu bagaimana dapur berfungsi, dan anda tidak perlu tahu. Anda mungkin berkata, “Boleh saya dapatkan cheeseburger?” kepada pelayan, dan pelayan mungkin menjerit, “Pesanan siap! T21, Chihuahua!” dalam format yang berbeza sama sekali. API memainkan peranan yang sama. Ia menyambung dua sistem berbeza tanpa memerlukan mereka memahami bahasa dalaman atau aliran kerja masing-masing.
Mengapa Saya Perlukan OpenAI API
Sekarang kita telah tahu apa itu API, inilah sebabnya mengapa saya bergantung padanya untuk blog ini. Secara praktikal, saya tahu bagaimana “bercakap” dengan ChatGPT sendiri—tetapi saya ada 42 bahasa untuk diproses. Memanggil pelayan 42 kali akan membosankan (program melangkau terjemahan Bahasa Inggeris kepada Bahasa Inggeris, tetapi tetap menukar teks ke dalam JSON). Menggunakan OpenAI API membolehkan skrip Python saya menghantar semua permintaan itu secara automatik, menjimatkan kerja berulang supaya saya dapat fokus kepada perkara lain. Saya seorang pembangun tunggal, jadi saya perlu menggunakan masa saya seefisien mungkin. Setiap kali saya melihat tugas yang berulang dan mempunyai peraturan yang jelas, saya mengautomasikannya. Hasilnya biasanya proses yang sejuta kali lebih pantas dan sepenuhnya bebas ralat. Itulah sebabnya automasi melalui API sangat penting—ia membolehkan skrip saya membuat semua 42 “pesanan” dengan serta-merta dan boleh dipercayai.
Mengapa 42 Bahasa
Secara teknikal, saya boleh menambah banyak lagi bahasa; ia hanya akan mengambil masa beberapa minit tambahan semasa saya mencuci pinggan. Tetapi saya secara peribadi suka nombor 42, "Jawapan kepada Pertanyaan Muktamad tentang Kehidupan, Alam Semesta, dan Segala-galanya" dari buku Douglas Adams. Selain dari keterikatan saya kepada nombor 42, penambahan bahasa yang sangat kecil boleh menjadi berisiko, kerana terjemahan AI mungkin menjadi kurang boleh dipercayai untuk bahasa yang mempunyai data latihan terhad.
Suhu ChatGPT 4o
Apabila saya mula bereksperimen dengan pendekatan terjemahan multilingual ini, hasilnya agak baik tetapi tidak sempurna. Beberapa ayat salah diterjemah, terlalu literal, atau secara halus mengelirukan dalam bahasa tertentu. Saya juga bimbang tentang secara tidak sengaja menghasilkan ungkapan yang mungkin tidak sesuai atau sensitif dalam konteks budaya tertentu. Dan sudah tentu, saya tidak mahu terjemahan saya kedengaran seperti robot atau mekanikal. Salah satu faktor utama di sebalik kualiti terjemahan ialah tetapan suhu—parameter yang mengawal seberapa “kreatif” atau “tegas” AI sepatutnya. Suhu tinggi menjadikan AI lebih imajinatif, tetapi juga lebih tidak dapat diduga. Suhu rendah membuatkan ia kekal dekat dengan makna asal, tetapi kadang-kadang boleh terasa kaku. Ia mengambil banyak percubaan dan kesilapan untuk mencari keseimbangan yang betul: cukup rendah untuk memastikan ketepatan, tetapi tidak terlalu rendah sehingga teks menjadi tidak bermaya. Selepas banyak eksperimen, saya merasakan bahawa suhu = 0.8 adalah sesuai untuk keperluan blog ini: cukup tepat untuk kekal setia kepada asal Bahasa Inggeris, tetapi cukup fleksibel untuk kedengaran alami dalam bahasa lain.
ChatGPT 5.x Tidak Menyokong Suhu
Model baru seperti ChatGPT 5 dan 5.1 tidak lagi menyokong tetapan suhu sama sekali—parameter ini telah diganti dengan konsep seperti penaakulan dan usaha, yang mempengaruhi cara model berfikir daripada seberapa “kreatif” ia menjadi. Dalam erti kata lain, ChatGPT 4o memberi saya dail fizikal yang boleh saya pusing untuk menghalusi gaya terjemahan, tetapi keluarga 5.x mengikut falsafah yang berbeza sama sekali. Jika anda secara kasual meminta model terbaru untuk “terjemahkan ini dengan suhu = 0.8,” ia mungkin cuba bertindak seolah-olah tetapan itu masih ada, tetapi secara dalaman parameter itu sudah tiada. Model hanya menghampiri niat itu. Seperti OpenAI terus mengemaskini model mereka, saya mungkin menyesuaikan aliran terjemahan saya suatu hari nanti. Buat masa ini, ChatGPT 4o kekal sebagai pilihan saya untuk terjemahan multilingual—bukan sahaja kerana ia memahami konteks dengan baik merentas banyak bahasa, tetapi juga kerana harga API-nya munasabah untuk pembangun tunggal seperti saya. Malah, 4o mungkin dikenang sebagai salah satu model yang paling disayangi dalam sejarah OpenAI.
Pekerja OpenAI API
Satu perkara yang mengagumkan tentang OpenAI API—dibandingkan dengan menggunakan ChatGPT terus dalam pelayar—ialah anda boleh menggunakan lebih daripada satu “pekerja” ChatGPT pada masa yang sama. Apabila saya menghantar permintaan terjemahan untuk 42 bahasa, saya tidak menghantarnya satu per satu secara perlahan. Sebaliknya, API boleh memproses banyak permintaan secara selari, seolah-olah saya tiba-tiba mengupah satu bilik penuh dengan penterjemah yang semua mula bekerja serentak. Skrip Python saya mengendalikan aliran kerja seperti barisan pengeluaran kecil: ia menyediakan artikel Bahasa Inggeris, menghantar permintaan, menunggu respons, dan memproses hasilnya ke dalam fail JSON. Sementara itu, pelayan OpenAI menjalankan pelbagai model secara serentak, masing-masing menterjemah bahasa yang berlainan secara selari. Ini adalah sesuatu yang laman web atau aplikasi ChatGPT tidak boleh lakukan—antara muka tersebut memberi anda satu model, satu perbualan, satu tugas pada satu masa. Tetapi dengan API, anda boleh meluaskan beban kerja anda sejauh mana skrip anda membenarkan. Bagi pembangun tunggal seperti saya, ini terasa seperti mempunyai pasukan kecil pembantu yang pintar dan tiada ego. Ia bergantung sebahagiannya pada kelajuan internet, tetapi saya biasanya menetapkan pekerja = 12.
Apa Yang Saya Buat untuk Memultilanguagkan Blog Saya Adalah Mencuci Pinggan
Saya pernah bekerja sebagai pencuci pinggan di kafetaria pelajar ketika saya belajar matematik di Universiti Kyoto. Walaupun bayarannya sekitar 5 USD sejam, saya sentiasa suka kerja manual yang berulang selepas menghabiskan beberapa jam—atau kadang-kadang beberapa hari—dalam tumpuan intelektual yang mendalam. Kemudian, ketika saya bekerja di kilang bawang putih di Hokkaido, tugas saya hanyalah menggilap ribuan bawang putih putih supaya kelihatan lebih cerah di atas tali sawat. Lapan jam sehari—fokus penuh, irama tetap. Ia cukup memuaskan. Sekarang, kembali kepada kenangan itu, saya kini melakukan kerja intelektual—menulis perisian, merancang sistem, mengarang artikel ini. Tetapi keseimbangan tidak berubah. Jika anda bertanya kepada saya bagaimana saya menguruskan menerbitkan artikel blog dalam 42 bahasa sendiri, jawapan jujur saya adalah: Saya melakukannya dengan mencuci pinggan.