Rewriter API

Yayınlanma tarihi: 20 Mayıs 2025

Açıklayıcı Web Uzantılar Chrome Durumu Amaç
GitHub Kaynak denemesi Origin denemesi Kaynak denemesi Origin denemesi Görünüm Deneme Amacı (Intent to Experiment)

Rewriter API, metinleri gözden geçirip yeniden yapılandırmanıza yardımcı olur. Bu API ve Writer API, Yazma Yardımı API'leri teklifinin bir parçasıdır.

Bu API'ler, kullanıcılar tarafından oluşturulan içerikleri iyileştirmenize yardımcı olabilir.

Kullanım alanları

Mevcut metni daha uzun veya daha kısa hale getirerek ya da üslubunu değiştirerek iyileştirin. Örneğin, şunları yapabilirsiniz:

  • Kısa bir e-postayı daha nazik ve resmi bir üslupla yeniden yaz.
  • Diğer müşterilerin geri bildirimi anlamasına yardımcı olmak veya zararlı içerikleri kaldırmak için müşteri yorumlarında düzenleme önerme
  • İçeriği belirli kitlelerin beklentilerini karşılayacak şekilde biçimlendirin.

Kullanım alanınız eksik mi? Geri bildiriminizi paylaşmak için erken önizleme programına katılın.

Başlayın

Chrome 137-142'de çalışan Rewriter API kaynak denemesine katılın.

Donanım gereksinimlerini inceleyin

Geliştiriciler ve Chrome'da bu API'leri kullanarak özellikleri çalıştıran kullanıcılar için aşağıdaki şartlar geçerlidir. Diğer tarayıcıların farklı işletim gereksinimleri olabilir.

Dil Algılayıcı ve Çeviri API'leri masaüstündeki Chrome'da çalışır. Bu API'ler mobil cihazlarda çalışmaz. Prompt API, Summarizer API, Writer API ve Rewriter API, aşağıdaki koşullar karşılandığında Chrome'da çalışır:

  • İşletim sistemi: Windows 10 veya 11; macOS 13 veya üzeri (Ventura ve sonraki sürümler) ya da Linux. Android, iOS ve ChromeOS için Chrome, Gemini Nano'yu kullanan API'ler tarafından henüz desteklenmemektedir.
  • Depolama alanı: Chrome profilinizi içeren birimde en az 22 GB.
  • GPU: Kesinlikle 4 GB'tan fazla VRAM.
  • : Sınırsız veri veya ölçülmeyen bağlantı.

Gemini Nano'nun tam boyutu biraz farklılık gösterebilir. Mevcut boyutu öğrenmek için chrome://on-device-internals adresini ziyaret edip Model durumu'na gidin. Model boyutunu belirlemek için listelenen Dosya yolunu açın.

Deneme sürecine kaydolma

Rewriter API, Writer API ile ortak bir kaynak denemesi kapsamında kullanılabilir. Bu API'leri kullanmaya başlamak için:

  1. Google'ın Üretken Yapay Zeka Yasaklanan Kullanım Politikası'nı kabul edin.
  2. Rewriter API kaynak denemesine gidin.
  3. Kaydol'u tıklayın ve formu doldurun. Web kaynağı alanına kaynağınızı veya uzantı kimliğinizi girin chrome-extension://YOUR_EXTENSION_ID.
  4. Göndermek için Kaydol'u tıklayın.
  5. Sağlanan jetonu kopyalayın ve kaynağınızdaki her katılımcı web sayfasına ekleyin veya uzantı manifestinize dahil edin.
  6. Rewriter API'yi kullanmaya başlayın.

Kaynak denemelerini kullanmaya başlama hakkında daha fazla bilgi edinin.

localhost için destek ekleme

Kaynak denemesi sırasında localhost'ta Writer ve Rewriter API'lerine erişmek için Chrome'u en yeni sürüme güncellemeniz gerekir. Ardından, aşağıdaki adımları uygulayın:

  1. Şuraya git: chrome://flags/#rewriter-api-for-gemini-nano.
  2. Etkin'i seçin.
  3. Yeniden başlat'ı tıklayın veya Chrome'u yeniden başlatın.

Rewriter API'yi kullanma

Öncelikle, tarayıcının bu API'leri destekleyip desteklemediğini görmek için özellik algılama işlemini çalıştırın.


if ('Rewriter' in self) {
  // The Rewriter API is supported.
}

Yeniden Yazma API'si ve diğer tüm yerleşik yapay zeka API'leri tarayıcıya entegre edilmiştir. Gemini Nano, herhangi bir web sitesi yerleşik bir yapay zeka API'si kullandığında ilk kez ayrı olarak indirilir. Uygulamada, bir kullanıcı yerleşik bir API ile etkileşimde bulunduysa modeli tarayıcısına indirmiş demektir.

Modelin kullanıma hazır olup olmadığını belirlemek için eşzamansız Rewriter.availability() işlevini çağırın. Dört olası değer alabilen bir dize döndürür:

  • unavailable: Tarayıcı, Rewriter API'yi destekler ancak şu anda kullanılamaz. Bunun nedeni, modeli indirmek için yeterli disk alanının olmaması gibi çeşitli faktörler olabilir.
  • available: Tarayıcı, Rewriter API'yi destekler ve hemen kullanılabilir.
  • downloadable: Tarayıcı, Rewriter API'yi destekliyor ancak önce modeli indirmesi gerekiyor.
  • downloading: Tarayıcı, Rewriter API'yi destekliyor ve şu anda modeli indiriyor.

Model indirme işlemini tetiklemek ve yeniden yazma aracını başlatmak için Rewriter.create() işlevini çağırın. availability() yanıtı downloadable ise indirme işleminin ilerleme durumunu dinleyin ve indirme işlemi zaman alabileceği için kullanıcıyı bilgilendirin.

const rewriter = await Rewriter.create({
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API işlevleri

create() işlevi, yeni bir yeniden yazıcı nesnesi yapılandırmanıza olanak tanır. Aşağıdaki parametreleri içeren isteğe bağlı bir options nesnesi alır:

  • tone: Yazı üslubu içeriğin stilini, karakterini veya tutumunu ifade edebilir. Değer more-formal, as-is (varsayılan) veya more-casual olarak ayarlanabilir.
  • format: İzin verilen değerler as-is (varsayılan), markdown ve plain-text ile çıkış biçimlendirmesi.
  • length: Çıkışın uzunluğu. İzin verilen değerler shorter, as-is (varsayılan) ve longer'dir.
  • sharedContext: Birden fazla içerik yeniden yazılırken paylaşılan bağlam, modelin beklentilerinize daha uygun içerikler oluşturmasına yardımcı olabilir.

Aşağıdaki örnekte, rewriter nesnesinin nasıl başlatılacağı gösterilmektedir:

const options = {
  sharedContext: 'This is an email to acquaintances about an upcoming event.',
  tone: 'more-casual',
  format: 'plain-text',
  length: 'shorter',
};

const available = await Rewriter.availability();
let rewriter;
if (available === 'unavailable') {
  // The Rewriter API isn't usable.
  return;
}
if (available === 'available') {
  // The Rewriter API can be used immediately .
  rewriter = await Rewriter.create(options);
} else {
  // The Rewriter can be used after the model is downloaded.
  rewriter = await Rewriter.create(options);
  rewriter.addEventListener('downloadprogress', (e) => {
    console.log(e.loaded, e.total);
  });
}

Yeniden yazmaya başlama

Modelden içerik çıkışı almak için iki yöntem vardır: akışsız ve akış.

Yayın dışı çıkış

Akışsız yeniden yazma işleminde model, girişi bir bütün olarak işler ve ardından çıkışı üretir.

Akış olmayan bir çıkış elde etmek için eşzamansız rewrite() işlevini çağırın. Yeniden yazılmasını istediğiniz ilk metni eklemeniz gerekir. Modele arka plan bilgisi sağlamak için isteğe bağlı bir context ekleyebilirsiniz. Bu, modelin çıktı beklentilerinizi daha iyi karşılamasına yardımcı olabilir.

// Non-streaming
const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});
const result = await rewriter.rewrite(reviewEl.textContent, {
  context: "Avoid any toxic language and be as constructive as possible."
});

Akış yeniden yazma çıktısı

Yayın, sonuçları gerçek zamanlı olarak sunar. Giriş eklenip ayarlandıkça çıkış sürekli olarak güncellenir.

Akış yeniden yazıcı almak için rewriteStreaming() işlevini çağırın ve akıştaki metnin mevcut segmentlerini yineleyin. Modelin arka plan bilgilerini sağlamak için isteğe bağlı bir context ekleyebilirsiniz. Bu, modelin çıktı beklentilerinizi daha iyi karşılamasına yardımcı olabilir.

const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});

const stream = rewriter.rewriteStreaming(reviewEl.textContent, {
  context: "Avoid any toxic language and be as constructive as possible.",
  tone: "more-casual",
});

for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

Birden fazla görev için bağlam paylaşma

Birden fazla içerik oluşturmak için rewriter kullanabilirsiniz. Bu durumda sharedContext eklemek faydalı olur. Örneğin, yorumlarda daha iyi geri bildirimler vermeleri için inceleme uzmanlarına yardımcı olmak isteyebilirsiniz.

// Shared context and per writing task context
const rewriter = await Rewriter.create({
  sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});

const stream = rewriter.rewriteStreaming(
  "Love all this work on generative AI at Google! So much to learn and so many new things I can do!",
  {
    context: "The request comes from someone working at a startup providing an e-commerce CMS solution.",
    tone: "more-casual",
  }
);

for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

Yeniden yazıcıyı yeniden kullanma

Birden fazla içeriği düzenlemek için aynı yeniden yazma aracını kullanabilirsiniz. Bu özellik, özellikle yazarların verimli ve faydalı geri bildirimler vermesine yardımcı olmak için yeniden yazma aracını bir geri bildirim veya yorum aracına eklerken yararlı olabilir.

// Reusing a rewriter
const rewriter = await Rewriter.create({
  sharedContext: "A review for the Flux Capacitor 3000 from TimeMachines Inc."
});

const rewrittenReviews = await Promise.all(
  Array.from(
    document.querySelectorAll("#reviews > .review"),
    (reviewEl) => rewriter.rewrite(reviewEl.textContent, {
      context: "Avoid any toxic language and be as constructive as possible.",
      tone: "more-casual",
    })
  ),
);

Yeniden yazma aracını durdurma

Yeniden yazma işlemini sonlandırmak için denetleyiciyi durdurun ve rewriter öğesini yok edin.

// Stop a rewriter
const controller = new AbortController();
stopButton.onclick = () => controller.abort();

const rewriter = await Rewriter.create({ signal: controller.signal });
await rewriter.rewrite(reviewEl.textContent, { signal: controller.signal });

// Destroy a rewriter
rewriter.destroy();

Demo

Etkileşim kurma ve geri bildirim paylaşma

Writer ve Rewriter API'leri aktif olarak tartışılmaktadır ve gelecekte değişebilir. Bu API'yi denerseniz geri bildiriminizi bizimle paylaşmanızı rica ederiz.

Tarayıcıda Gemini Nano ve diğer uzman modeller de dahil olmak üzere modelleri kullanan tüm yerleşik yapay zeka API'lerini keşfedin.