Splync Blog 42 Dile Sahip
Bu, çiftler, arkadaşlar ve aileler için ortak bütçe takipçisi olan Splync için yazdığım blogumdaki 23. makale. Tek başına çalışan bir mühendis olmama rağmen her gönderiyi 42 dilde nasıl yayınladığımı merak ediyor olabilirsiniz. Her makalenin başındaki uyarıda belirtildiği gibi, bu web sitesi, kendi oluşturduğum yazılımla otomatik olarak birçok dile çevriliyor. Açık olmak gerekirse: İngilizce dışında herhangi bir dilde tek bir cümleyi bile manuel olarak yazmıyorum. Bu nedenle, anlamın doğruluğu gerçekten önemli olduğunda okuyuculardan orijinal İngilizce versiyona başvurmalarını rica ediyorum. Yine de, birçok deneme yanılma turundan sonra çeviri hattını geliştirerek genel çeviri kalitesinin oldukça iyi olduğuna inanıyorum. Bu makalede, Splync blogunu çok dilli hale getirmek için yazılımımın neler yaptığını paylaşacağım.
Python ve OpenAI API'si Birlikte Çalışıyor
Her zaman her makaleyi basit İngilizceyle yazmakla başlıyorum, SEO ile ilgili meta veriler dahil. Ardından, Python betiğim İngilizce metni, bir yönlendirme ve küçük bir referans dosyasıyla birlikte OpenAI API'sine gönderir. OpenAI sunucularında, ChatGPT-4o isteği okuyarak makalenin çevirisini — örneğin Arapça versiyonunu — JSON formatında geri döndürür. MacBook'um bu çeviriyi aldığında, betik hemen başka bir istek gönderir, bu sefer Bengalce için. Betik, tüm 42 hedef dili otomatik olarak döngüye sokar. Sürecin sonunda, bilgisayarımda 42 çeviri JSON dosyası olur. Başka bir Python betiği, her çeviriyi bir HTML şablonuna yerleştirir ve bir saniyeden kısa sürede 42 HTML dosyası oluşturur. Tüm dosyalar, bu blogun barındırıldığı sunucuya yüklenir ve her dil versiyonu kendi dizinine yerleştirilir. Son olarak, sunucu tarafındaki bir Python betiği, makale dizinini ve "Sonraki gönderi" bağlantılarını günceller, böylece her dilin navigasyonu tutarlı kalır. Orijinal İngilizce makale yalın metin olarak yazıldığında, tüm süreç genellikle 5 dakika veya daha az sürer. Değişiklik yapmam gerektiğinde, sunucu tarafındaki Python betikleri kullanarak birden çok HTML dosyasını aynı anda güncelliyorum.
API Nedir
Teknik terimlere aşina değilseniz, bilgisayarımın OpenAI'nin sunucusuyla nasıl "konuştuğunu" merak edebilirsiniz. Cevap, Uygulama Programlama Arayüzü (API) adı verilen bir şeydir. API'yi, iki program arasında bir haberci pencere olarak düşünebilirsiniz: bir program bir istek gönderir, diğeri yanıt gönderir. Örneğin, Python betiğim "Bu makaleyi Almancaya çevir lütfen" gibi bir mesaj gönderir. OpenAI bu mesajı API aracılığıyla alır, çeviriyi hazırlar ve sonucu geri gönderir. Bu, bir lokantada sipariş vermek gibidir: garsona ne istediğinizi söylersiniz, mutfak hazırlığını yapar ve garson masanıza geri getirir. Peki, neden garsona ihtiyacınız var? Çünkü mutfağa girmez veya doğrudan şefle konuşmazsınız — mutfağın nasıl çalıştığını bilmezsiniz ve bilmenize gerek yoktur. Garsona "Bir cheeseburger alabilir miyim?" diyebilirsiniz ve garson "Sipariş hazır! T21, Chihuahua!" diye tamamen farklı bir formatta bağırabilir. API aynı rolü oynar. İki farklı sistemi, birbirlerinin iç dilini veya iş akışını anlamalarını gerektirmeden bağlar.
Neden OpenAI API'sine İhtiyacım Var
Artık bir API'nin ne olduğunu gördüğümüze göre, bu blog için neden ona gerçekten güvendiğimi açıklayayım. Pratik olarak, ChatGPT ile kendim "konuşmayı" biliyorum — ama işleme almam gereken 42 dil var. Garsonu 42 kez aramak zahmetli olurdu (program İngilizceyi İngilizceye çevirmeyi atlar ama yine de metni JSON'a dönüştürür). OpenAI API'sini kullanarak Python betiğim tüm bu istekleri otomatik olarak gönderebilir, beni tekrarlayan işlerden kurtarır ve diğer şeylere odaklanmamı sağlar. Tek başına çalışan bir geliştiriciyim, bu yüzden zamanımı en verimli şekilde kullanmam gerekiyor. Ne zaman tekrar eden ve net kurallara sahip bir görev görsem, onu otomatikleştiririm. Sonuç genellikle milyonlarca kat daha hızlı ve tamamen hatasız bir süreç olur. İşte bu yüzden API üzerinden otomasyon önemlidir — betiğimin tüm 42 "siparişi" anında ve güvenilir bir şekilde vermesini sağlar.
Neden 42 Dil
Teknik olarak, çok daha fazla dil ekleyebilirim; bulaşıkları yıkarken birkaç dakika daha uzun sürer. Ancak şahsen, Douglas Adams'ın kitabından "Hayatın, Evrenin ve Her Şeyin Nihai Sorusu'nun Cevabı" olan 42 numarasını seviyorum. 42 numarasına olan bağlılığımın ötesinde, çok küçük diller eklemek riskli olabilir, çünkü sınırlı eğitim verilerine sahip dillerde AI çevirisi daha az güvenilir olabilir.
ChatGPT 4o'nun Sıcaklığı
Bu çok dilli çeviri yaklaşımını ilk denediğimde, sonuçlar iyiydi ama mükemmel değildi. Bazı cümleler yanlış çevrildi, aşırı harfi harfine alındı veya belirli dillerde biraz yanıltıcı oldu. Ayrıca, belirli kültürel bağlamlarda uygunsuz veya hassas ifadeler üretmekten de endişeliydim. Ve tabii ki, çevirilerimin robotik veya mekanik görünmesini istemezdim. Çeviri kalitesinin arkasındaki kilit faktörlerden biri sıcaklık ayarıdır — AI'nın ne kadar "yaratıcı" veya "katı" olması gerektiğini kontrol eden bir parametre. Yüksek sıcaklık, AI'yı daha yaratıcı yapar, ancak aynı zamanda daha öngörülemez hale getirir. Düşük sıcaklık, orijinal anlamına yakın kalmasını sağlar, ancak bazen katı hissettirebilir. Doğru dengeyi bulmak için çok fazla deneme yanılma yaptım: doğruluğu sağlamak için yeterince düşük, ancak metni cansız hale getirmeyecek kadar düşük değil. Birçok deneyden sonra, bu blogun ihtiyaçlarına en uygun olanın sıcaklık = 0.8 olduğunu hissettim: İngilizce orijinaline sadık kalacak kadar doğru, ancak diğer dillerde doğal görünecek kadar esnek.
ChatGPT 5.x Sıcaklığı Desteklemiyor
ChatGPT 5 ve 5.1 gibi daha yeni modeller, sıcaklık ayarlarını hiç desteklemiyor — bu parametre kaldırıldı ve modelin nasıl düşündüğünü etkileyen akıl yürütme ve çaba gibi kavramlarla değiştirildi. Başka bir deyişle, ChatGPT 4o bana çeviri stilini ince ayar yapmak için çevirebileceğim bir fiziksel düğme verirken, 5.x ailesi tamamen farklı bir felsefeyi izliyor. Yeni modele "bunu sıcaklık = 0.8 ile çevir" diye sorduğunuzda, böyle bir ayar hala varmış gibi davranmaya çalışabilir, ancak içsel olarak parametre yoktur. Model sadece niyeti yakınlar. OpenAI modellerini güncellemeye devam ettikçe, günün birinde çeviri hattımı ayarlayabilirim. Şimdilik, ChatGPT 4o, çok dilli çeviriler için tercihim olmaya devam ediyor — sadece birçok dilde bağlamı iyi anladığı için değil, aynı zamanda API fiyatlandırması benim gibi tek başına çalışan bir geliştirici için makul olduğu için. Aslında, 4o, OpenAI'nin tarihindeki en sevilen modellerden biri olarak anılabilir.
OpenAI API Çalışanları
OpenAI API'sinin harika yanlarından biri — tarayıcıda doğrudan ChatGPT kullanımıyla karşılaştırıldığında — aynı anda birden fazla ChatGPT "çalışanı" kullanabilmenizdir. 42 dil için çeviri istekleri gönderdiğimde, onları yavaş bir sırayla tek tek göndermiyorum. Bunun yerine, API birçok isteği paralel olarak işleyebilir, sanki bir oda dolusu çevirmeni işe almışım gibi hepsi birden çalışmaya başlar. Python betiğim iş akışını küçük bir üretim hattı gibi yönetir: İngilizce makaleyi hazırlar, istekleri gönderir, yanıtları bekler ve sonuçları JSON dosyalarına işler. Bu arada, OpenAI sunucuları birden fazla model örneğini eşzamanlı olarak çalıştırır, her biri farklı bir dili paralel olarak çevirir. ChatGPT web sitesi veya uygulaması bunu yapamaz — bu arayüzler size bir model, bir konuşma, bir görev verir. Ancak API ile iş yükünüzü betiğinizin izin verdiği kadar genişletebilirsiniz. Benim gibi tek başına çalışan bir geliştirici için bu, en zeki ve egosuz asistanlardan oluşan küçük bir ekip sahibi olmak gibidir. Kısmen internet hızına bağlı, ama genellikle çalışanlar = 12 ayarlıyorum.
Blogumu Çok Dilli Hale Getirmek için Bulaşık Yıkıyorum
Kyoto Üniversitesi'nde matematik okurken öğrenci kafeteryasında bulaşıkçı olarak çalışıyordum. Saatte yaklaşık 5 USD ödeme yapılıyordu, ancak birkaç saat — bazen günlerce — derin entelektüel konsantrasyon sonrası tekrarlayan manuel işleri hep sevmişimdir. Daha sonra, Hokkaido'da bir sarımsak fabrikasında çalışırken, görevim sadece binlerce beyaz sarımsağı daha parlak görünmeleri için parlatmaktı. Günde sekiz saat — tam odak, sabit ritim. Garip bir şekilde tatmin ediciydi. Şimdi, o anılardan geri dönersek, şu anda entelektüel işler yapıyorum — yazılım yazıyorum, sistemler tasarlıyorum, bu makaleleri hazırlıyorum. Ancak denge değişmedi. Bana bu blog yazısını nasıl tek başıma 42 dile yayınladığımı sorarsanız, dürüst cevap: Bunu bulaşıkları yıkayarak yapıyorum.