Rewriter API

Yayınlanma tarihi: 20 Mayıs 2025

AçıklayıcıWebUzantılarChrome DurumuAmaç
Bayrak arkasında Origin deneme sürümüBayrak arkasında Origin deneme sürümüGörünümDeneme yapma niyeti

Rewriter API, metni gözden geçirmenize ve yeniden yapılandırmanıza yardımcı olur. Bu API ve Writer API, Yazım 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 uzatarak, kısaltarak veya üslubunu değiştirerek hassaslaştırın. Örneğin, şunları yapabilirsiniz:

  • Kısa bir e-postayı daha kibar ve resmi bir üslupla yeniden yazma
  • Diğer müşterilerin geri bildirimi anlamasına yardımcı olmak veya toksik içerikleri kaldırmak için müşteri yorumlarında düzenleme önerin.
  • İçerikleri 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 ile 142 arasında çalışan Rewriter API kaynak denemesine katılın.

Donanım gereksinimlerini inceleyin

Dil Tanımlayıcı ve Çevirmen API'leri, masaüstünde yalnızca Chrome'da çalışır.

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 tarafından desteklenen API'lerimiz tarafından henüz desteklenmiyor.
  • Depolama alanı: Chrome profilinizi içeren birimde en az 22 GB.
  • GPU: 4 GB'tan fazla VRAM
  • : Sınırsız veri veya sınırsız bağlantı.

Bu şartlar, geliştirme süreciniz ve oluşturduğunuz özellikleri kullanan kullanıcılarınız için geçerlidir.

Kaynak denemesine kaydolma

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

  1. Google Üretken Yapay Zeka Yasaklanan Kullanım Politikası'nı kabul edin.
  2. Rewriter API kaynak denemesi sayfasına gidin.
  3. Kaydol'u tıklayıp formu doldurun. Web kaynağı alanına kaynağınızı veya uzantı kimliğinizi (chrome-extension://YOUR_EXTENSION_ID) girin.
  4. Göndermek için Kaydol'u tıklayın.
  5. Sağlanan jetonu kopyalayıp 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'teki Writer ve Rewriter API'lerine erişmek için Chrome'u en son 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.
}

Rewriter API 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. Kullanıcılar yerleşik bir API ile daha önce etkileşime geçtiyse modeli tarayıcılarına indirmiştir.

Modelin kullanıma hazır olup olmadığını belirlemek için asenkron 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. Bu durum, modeli indirmek için yeterli disk alanı olmaması gibi çeşitli nedenlerden kaynaklanabilir.
  • available: Tarayıcı, Rewriter API'yi destekler ve hemen kullanılabilir.
  • downloadable: Tarayıcı, Rewriter API'yi destekler ancak önce modeli indirmesi gerekir.
  • downloading: Tarayıcı, Rewriter API'yi destekliyor ve şu anda modeli indiriyor.

Model indirme işlemini tetiklemek ve yeniden yazar aracını başlatmak için Rewriter.create() işlevini çağırın. availability() için yanıt downloadable ise indirme işlemi zaman alabileceği için indirme işleminin ilerleme durumunu dinleyin ve 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 tavrını ifade edebilir. Değer more-formal, as-is (varsayılan) veya more-casual olarak ayarlanabilir.
  • format: as-is (varsayılan), markdown ve plain-text izin verilen değerlerle çıkış biçimlendirmesi.
  • length: shorter, as-is (varsayılan) ve longer izin verilen değerlerle çıkışın uzunluğu.
  • sharedContext: Birden fazla içerik parçası yeniden yazılırken paylaşılan bir bağlam, modelin beklentilerinize daha uygun içerikler oluşturmasına yardımcı olabilir.

Aşağıdaki örnekte, bir 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 yazma işlemini başlatma

Modelden içerik yayınlamanın iki yolu vardır: akış dışı ve akış.

Akış dışı çıkış

Akış dışı yeniden yazmada model, girişi bir bütün olarak işler ve ardından çıkışı oluşturur.

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

// Non-
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 çıkışı

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

Akış halindeki bir yeniden yazar almak için rewrite() işlevini çağırın ve akıştaki mevcut metin segmentleri üzerinde iterasyon yapın. Model arka plan bilgilerini sağlamak için isteğe bağlı bir context ekleyebilirsiniz. Bu, modelin çıktıyla ilgili 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.rewrite(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örevle ilgili 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 bildirim vermeleri için yorumcuları destekleyebilirsiniz.

// 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.rewrite(
  "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ım aracını yeniden kullanma

Birden fazla içeriği düzenlemek için aynı yeniden yazar aracını kullanabilirsiniz. Bu özellik, özellikle yazarların üretken ve faydalı geri bildirim sunmasına yardımcı olmak için yeniden yazım aracını bir geri bildirim veya yorum aracına eklerseniz 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 yazım aracını durdurma

Yeniden yazma işlemini sonlandırmak için denetleyiciyi iptal edin ve rewriter'yi imha 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ışılmakta olup gelecekte değiştirilebilir. Bu API'yi denedikten sonra geri bildiriminiz olursa bizimle paylaşın.

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