Mühendislik//9 dk okuma

Yapay Zeka Çeviri Aracının İç Yüzü: 23 Ajan Aracı ve İnsan Onay Döngüsü Çeviri Kalitesini Nasıl Yüksek Tutuyor

Eray Gündoğmuş
Paylaş

Çoğu yapay zeka çeviri aracı aynı kalıbı izler: metni yapıştır, çeviriyi al. Bu hızlı bir e-posta için işe yarar, ama birden fazla dilde binlerce çeviri anahtarını yönettiğiniz, marka terimlerinden oluşan bir sözlüğünüzün olduğu ve değişiklikleri yayınlamadan önce incelemesi gereken bir ekibinizin bulunduğu bir üretim uygulamasında bu yaklaşım yetersiz kalır.

Better i18n'in yapay zeka sistemini farklı bir yaklaşımla geliştirdik. Basit bir çeviri API'si yerine, 23 özel araca sahip, her yazma işlemi için insan onayı gerektiren ve gerçek dünya çeviri yönetimi iş akışları için tasarlanmış bir konuşma tabanlı ajan oluşturduk.

Bu yazıda arkasındaki mühendislik sürecini anlatacağız.

Neden Çeviri API'si Değil de Bir Ajan?

Tipik makine çevirisi inceleme iş akışı şöyle görünür: metinleri dışa aktar, bir çeviri servisine gönder, sonuçları geri al, içe aktar, manuel olarak incele, sorunları düzelt, tekrar dışa aktar. Bu süreç yavaş, hataya açık ve çeviri sürecini doğru çevirileri mümkün kılan bağlamdan koparır.

Ajan tabanlı yaklaşım bu modeli temelden değiştirir. Dosyalar üzerinde çalışmak yerine yapay zeka doğrudan projeniz üzerinde çalışır — anahtarlarınızı okur, sözlüğünüzü anlar, senkronizasyon yapılandırmanızı kontrol eder ve gerçek zamanlı olarak onaylayacağınız değişiklikler önerir.

Temel içgörü şudur: çeviri yönetimi tek bir görev değildir. Proje durumunu okumayı, kararlar almayı, değişiklikleri uygulamayı ve sonuçları doğrulamayı içeren bir iş akışıdır. Birden fazla araca sahip bir ajan bunu doğal bir şekilde yönetir. Bir çeviri API'si ise bunu yapamaz.

23 Araçlı Mimari

Ajan, çok farklı izin modellerine sahip iki kategoriye ayrılmış 23 özel araca erişebilir.

Okuma Araçları: Tam Özerklik

On araç, ajana projenize okuma erişimi sağlar. Bunlar veri değiştiremeyeceği için onay gerektirmeden otomatik olarak çalışır:

  • getTranslations — anahtar, namespace, dil ve duruma göre filtreleme ile çevirileri getirir
  • getKeyDetails — bağlam notları, etiketler ve dile özgü durum dahil olmak üzere tek tek anahtarlar için metadata alır
  • getLanguages — tamamlanma yüzdeleriyle yapılandırılmış dilleri listeler
  • getProjectStats — proje genelindeki metrikleri döndürür: toplam anahtar, dil, çeviri kapsamı
  • getDoctorReport — eksik çeviriler, kullanılmayan anahtarlar, çoğul form sorunları ve terminoloji tutarsızlıklarını tespit eden tanılama çalıştırır
  • getSyncs ve getSyncDetails — GitHub/GitLab senkronizasyon entegrasyonlarını ve son etkinliklerini inceler
  • getContentModels ve getContentEntries — CMS içerik yapısını ve girdilerini görüntüler
  • createPlan — ajanın birden fazla adımı koordine etmesi gerektiğinde bir yürütme planı oluşturur

Ajan, herhangi bir değişiklik önermeden önce bağlam oluşturmak için bu araçları kullanır. "Eksik tüm anahtarları Fransızcaya çevir" dediğinizde, ajan önce hangi anahtarların eksik olduğunu tam olarak belirlemek için getTranslations'ı, ardından kapsamı anlamak için getProjectStats'ı çağırır ve ancak bundan sonra tek bir hedefli öneri oluşturur.

Yazma Araçları: İnsan Onay Döngüsü

On bir araç proje verilerinizi değiştirebilir. Her biri yürütülmeden önce açık insan onayı gerektirir. Yapay zeka çeviri kalitesine yaklaşımımızın temeli budur — yapay zeka önerir, insan karar verir.

Çeviri araçları:

  • proposeTranslations — hedef dillerde eksik olan anahtarlar için yeni çeviriler üretir
  • proposeTranslationEdits — bağlam, sözlük veya geri bildiriminize dayalı olarak mevcut çevirilere iyileştirmeler önerir
  • translateBatch — birden fazla anahtarı birden fazla dilde tek bir işlemde işler

Anahtar yönetimi araçları:

  • proposeKeys — kod tabanı analizine dayalı olarak yeni çeviri anahtarları önerir
  • proposeDeleteKeys — kullanılmayan veya yinelenen anahtarları tespit eder ve temizlik önerir

Dil yönetimi araçları:

  • proposeLanguages — proje ihtiyaçlarına göre eklenecek yeni diller önerir
  • proposeLanguageEdits — dil görüntüleme adlarını, yedek zincirleri veya yapılandırmayı değiştirir

Yayınlama araçları:

  • publishChanges — onaylanan çevirileri CDN'e gönderir veya bir GitHub PR tetikler

İçerik yönetimi araçları:

  • proposeContentEntries — CMS içerik girdileri oluşturur veya günceller
  • proposeContentModel — içerik modellerinde şema değişiklikleri önerir
  • proposePublishEntries — içerik girdilerini yayınlama kuyruğuna alır

İnsan Onay Döngüsü: Onay Akışının Mühendisliği

"İnsan onay döngüsü" terimi yapay zeka pazarlamasında sıkça kullanılır. İşte bizim sistemimizde gerçekte nasıl çalıştığı.

Bir yazma aracı çağrıldığında, ajan onu doğrudan çalıştırmaz. Bunun yerine, tam olarak neyin değişeceğini gösteren yapılandırılmış bir fark olan bir öneri üretir. Öneri, sohbet arayüzünde incelenebilir bir öğe olarak görünür.

Çeviri önerileri için şunları görürsünüz:

  • Kaynak dildeki orijinal metin
  • Hedef dildeki önerilen çeviri
  • Uygulanan sözlük terimleri
  • Güven bağlamı (bu basit bir kullanıcı arayüzü etiketi mi yoksa karmaşık bir pazarlama cümlesi mi?)

Ardından üç seçeneğiniz var:

  1. Tümünü onayla — tek tıkla önerilen tüm değişiklikleri kabul et
  2. Seçici onay — bazı çevirileri kabul et, diğerlerini reddet
  3. Değişiklik iste — ajana neyi düzeltmesi gerektiğini söyle ve gözden geçirilmiş bir öneri üretsin

Yazma işlemi ancak onaydan sonra gerçekleşir. Bu bir "onayla/iptal" iletişim kutusu değildir — inceleyebileceğiniz, düzenleyebileceğiniz ve yineleyebileceğiniz gerçek bir gözden geçirme adımıdır.

Yapay Zeka Çeviri Kalitesi İçin Bunun Önemi

Makine çevirisi incelemesi, çoğu yerelleştirme iş akışındaki darboğazdır. Ekipler ya incelemeyi atlar (ve hatalarla yayınlar) ya da her şeyi manuel olarak inceler (ve yavaş ilerler). İnsan onay döngüsü yaklaşımımız orta yolu bulur:

  • Yapay zeka, basit olan çevirilerin %80'ini üstlenir
  • İnsanlar inceleme çabalarını yargı gerektiren %20'ye odaklar
  • Her çevirinin net bir kaynağı vardır: yapay zeka tarafından üretilmiş, insan tarafından incelenmiş veya insan tarafından düzenlenmiş
  • Denetim izi kimin neyi onayladığını kaydeder, bu da uyumluluk sürecini kolaylaştırır

Aşamalı Oluşturma: Akan Çeviri Tabloları

Ajan bir grup anahtar için çeviri ürettiğinde, sonuçlar tek seferde görünmez. Çeviri tablosu sohbet arayüzüne aşamalı olarak akar — her satır, çevirisi tamamlandığında oluşturulur.

Bu, kullanıcı deneyimi odaklı bir mühendislik tercihidir. 150 anahtarı 6 dile çevirdiğinizde, bu 900 bireysel çeviri demektir. Herhangi bir şey göstermeden önce 900'ünün tamamının bitmesini beklemek, dakikalarca yükleniyor simgesine bakmak anlamına gelir. Aşamalı oluşturma, ilk sonuçları hemen incelemeye başlamanıza olanak tanır.

Uygulama, araç sonuçlarını sohbet arayüzüne geri aktarmak için server-sent events kullanır. Frontend, gelen satırları ekleyen değişken bir çeviri tablosu bileşeni yönetir.

Bağlam Yönetimi: Temeli Korumak

Büyük dil modelleri uzun konuşmalarda bağlamı kaybetme eğilimindedir. Bunu üç mekanizma ile ele alıyoruz:

30 Saniyelik Proje Bağlam Önbelleği

Ajan proje verilerinizi okuduğunda, sonuçlar 30 saniye boyunca önbelleğe alınır. Ajanın çok adımlı bir işlem sırasında proje durumunuza birden fazla kez başvurması gerektiğinde, gereksiz API çağrıları yerine önbelleğe erişir. Bu, gecikmeyi azaltır ve ajanın karmaşık bir iş akışı sırasında tutarsız durum görmesini engeller.

Bağlam Sadeleştirme (slimToolResults)

Better i18n API'sinden gelen araç yanıtları büyük olabilir — 2.000 anahtar ve 12 dile sahip bir proje önemli boyutta veri üretir. slimToolResults sistemi, araç yanıtlarından gerekli olmayan verileri konuşma bağlamına girmeden önce otomatik olarak çıkarır.

Örneğin, ajan getTranslations'ı çağırdığında tam yanıt; oluşturma zaman damgaları, sürüm kimlikleri ve kullanıcı atıfları gibi metadata içerir. slimToolResults geçişi yalnızca ajanın ihtiyaç duyduğu verileri korur: anahtar adları, kaynak metinler ve çeviriler. Bu, token kullanımını önemli ölçüde azaltır ve bağlam penceresi taşmasını önler.

50 Adım Konuşma Limiti

Her konuşma en fazla 50 ajan adımını (araç çağrısını) destekler. Bu, karmaşık iş akışları için yeterlidir — bir namespace'in tamamını çevirmek, sonuçları gözden geçirmek, düzenlemeler yapmak ve yayınlamak — aynı zamanda kontrolsüz döngüleri engeller. Adım sayacı kullanıcı arayüzünde görünür, böylece ne kadar kapasitenin kaldığını her zaman bilirsiniz.

Sohbet Geçmişi: Çift Depolama Mimarisi

Ajan konuşmaları eş zamanlı olarak iki yerde saklanır:

  • IndexedDB (tarayıcı-yerel) — panoya geri döndüğünüzde sıfır ağ gecikmesiyle anında konuşma yüklemesi sağlar
  • Postgres (sunucu taraflı) — her ajan etkileşiminin kalıcı, aranabilir denetim izini tutar

Çift depolama yaklaşımı birbiriyle çelişen iki gereksinimi çözer. Geliştiriciler son konuşmalara anında erişim ister (IndexedDB milisaniyenin altında okuma sağlar). Ekipler uyumluluk ve bilgi paylaşımı için denetim izleri ister (Postgres dayanıklı, sorgulanabilir depolama sağlar).

Yapay zeka sohbetini açtığınızda, konuşmalar IndexedDB'den anında yüklenir. Postgres kopyası arka planda senkronize olur ve yerel depolama temizlenirse doğruluk kaynağı olarak görev yapar.

Gerçek Dünya İş Akışı: Üretim Uygulamasına Korece Eklemek

İşte ajanın gerçek bir görevi nasıl yönettiğine dair somut bir örnek.

Adım 1: Siz sorarsınız"Projeye Korece eklememiz gerekiyor. common ve settings namespace'lerindeki her şeyi çevir."

Adım 2: Ajan okur — getLanguages'ı çağırır (Korecenin yapılandırılmadığını görür), common namespace'i için getTranslations'ı çağırır (89 anahtar bulur) ve settings namespace'i için getTranslations'ı çağırır (34 anahtar bulur). Toplam: çevrilecek 123 anahtar.

Adım 3: Ajan dil eklemeyi önerir — Projeye Korece (ko) eklemek için proposeLanguages'ı çağırır. Öneriyi görür ve onaylarsınız.

Adım 4: Ajan gruplar halinde çevirir — common namespace'i için translateBatch'i, ardından settings namespace'i için çağırır. Çeviriler sohbete aşamalı olarak akar. Korece çevirilerin İngilizce kaynak metinlerle birlikte göründüğünü görürsünüz.

Adım 5: Siz incelersiniz — Çevirileri gözden geçirir, gündelik bir uygulama arayüzü için aşırı resmi üslup kullanan ikisini işaretler ve ajana bunları düzeltmesini söylersiniz.

Adım 6: Ajan revize eder — Geri bildiriminizle proposeTranslationEdits'i çağırır ve işaretlenen iki metin için gözden geçirilmiş çeviriler üretir. Onaylarsınız.

Adım 7: Siz yayınlarsınız — Ajana yayınlamasını söylersiniz, publishChanges'ı çağırır ve Korece çeviriler CDN'de yayında olur.

Toplam süre: 123 çeviri için yaklaşık 10 dakika — incelenmiş ve yayınlanmış. Ajan olmadan, bu iş akışı genellikle saatlerce süren dışa aktar-çevir-içe aktar-incele döngüleri gerektirir.

Yapmamayı Tercih Ettiklerimiz

Sınırlamalar konusunda şeffaflık, özellik belgelendirmesi kadar önemlidir.

  • Tescilli çeviri motoru yok — altta yatan model olarak Google Gemini kullanıyoruz. Özel bir "sinirsel çeviri motoru" veya tescilli yapay zeka iddiamız yok.
  • Otomatik A/B çeviri testi yok — modeli siz seçersiniz; birden fazla modelin çıktılarını karşılaştıran bir çerçeve yoktur.
  • Çeviri Belleği yok — TM bulanık eşleştirme değil, sözlük tabanlı terim tutarlılığı kullanıyoruz. TM'ye ihtiyacınız varsa, Better i18n bugün doğru araç değildir.
  • Garantili doğruluk metrikleri yok — yapay zeka çeviri kalitesi dil çiftine ve içerik türüne göre değişir. Müşteriye yönelik tüm içerikler için insan incelemesi öneriyoruz — bu da insan onay döngüsünün her yazma işlemine dahil edilmesinin tam nedenidir.

Deneyin

Yapay zeka ajanı tüm Better i18n planlarında kullanılabilir. Paneli açın, sohbet simgesine tıklayın ve basit bir şeyle başlayın: "Bu projenin çeviri durumunu göster."

Oradan gerçek bir göreve geçin. Eksik çevirileri bulmasını, üretmesini ve onay sürecinde size rehberlik etmesini isteyin. Ajan, konuşma yoluyla keşfedilmek üzere tasarlanmıştır — araç adlarını veya API uç noktalarını ezberlemenize gerek yoktur.

Better i18n'i kullanmaya başlayın →

Comments

Loading comments...