API Rewriter

Publié le 20 mai 2025

Vidéo explicative Web Extensions État de Chrome Intent
GitHub Derrière un indicateur Essai Origin Derrière un indicateur Essai Origin Afficher Intent to Experiment

L'API Rewriter vous aide à réviser et à restructurer du texte. Cette API et l'API Writer font partie de la proposition d'API d'assistance à l'écriture.

Ces API peuvent vous aider à améliorer les contenus créés par les utilisateurs.

Cas d'utilisation

Affinez le texte existant en le rallongeant ou en le raccourcissant, ou en modifiant le ton. Vous pouvez par exemple:

  • Réécrivez un court e-mail pour qu'il soit plus poli et formel.
  • suggérer des modifications aux avis des clients pour aider les autres clients à comprendre les commentaires ou à supprimer les commentaires toxiques ;
  • Formatez vos contenus pour répondre aux attentes de certaines audiences.

Votre cas d'utilisation est-il manquant ? Rejoignez le programme Preview anticipé pour nous faire part de vos commentaires.

Commencer

Rejoignez la phase d'évaluation de l'API Rewriter, qui s'exécute dans Chrome 137 à 142.

Consulter les conditions matérielles requises

Les API Language Detector et Translator ne fonctionnent que sur ordinateur dans Chrome.

Les API Prompt, Summarizer, Writer et Rewriter fonctionnent dans Chrome lorsque les conditions suivantes sont remplies:

  • Système d'exploitation: Windows 10 ou 11, macOS 13 ou version ultérieure (Ventura et versions ultérieures) ou Linux Chrome pour Android, iOS et ChromeOS ne sont pas encore compatibles avec nos API compatibles avec Gemini Nano.
  • Espace de stockage: au moins 22 Go sur le volume contenant votre profil Chrome.
  • GPU: au moins 4 Go de VRAM.
  • Réseau: données illimitées ou connexion illimitée.

Ces exigences existent pour vous dans votre processus de développement et pour vos utilisateurs qui utilisent les fonctionnalités que vous créez.

S'inscrire à l'essai

L'API Rewriter est disponible dans une phase d'évaluation conjointe avec l'API Writer. Pour commencer à utiliser ces API:

  1. Accepter le Règlement de Google sur les utilisations interdites de l'IA générative
  2. Accédez à la version d'essai de l'origine de l'API Rewriter.
  3. Cliquez sur Register (Enregistrer) et remplissez le formulaire. Dans le champ "Origine Web", indiquez votre origine ou l'ID de l'extension, chrome-extension://YOUR_EXTENSION_ID.
  4. Pour envoyer votre demande, cliquez sur Register (S'inscrire).
  5. Copiez le jeton fourni, puis ajoutez-le à chaque page Web participante de votre origine ou incluez-le dans le fichier manifeste de votre extension.
  6. Commencez à utiliser l'API Rewriter.

Découvrez comment commencer à utiliser les essais d'origine.

Ajouter la prise en charge de localhost

Pour accéder aux API Writer et Rewriter sur localhost pendant l'essai Origin Trial, vous devez mettre à jour Chrome vers la dernière version. Ensuite, procédez comme suit :

  1. Accédez à chrome://flags/#rewriter-api-for-gemini-nano.
  2. Sélectionnez Activé.
  3. Cliquez sur Relancer ou redémarrez Chrome.

Utiliser l'API Rewriter

Commencez par exécuter la détection de fonctionnalités pour voir si le navigateur est compatible avec ces API.


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

L'API Rewriter et toutes les autres API d'IA intégrées sont intégrées au navigateur. Gemini Nano est téléchargé séparément la première fois qu'un site Web utilise une API d'IA intégrée. En pratique, si un utilisateur a déjà interagi avec une API intégrée, il a téléchargé le modèle dans son navigateur.

Pour déterminer si le modèle est prêt à l'emploi, appelez la fonction Rewriter.availability() asynchrone. Il renvoie une chaîne pouvant prendre quatre valeurs possibles:

  • unavailable: le navigateur est compatible avec l'API Rewriter, mais il ne peut pas être utilisé pour le moment. Plusieurs raisons peuvent expliquer ce problème, comme un espace disque disponible insuffisant pour télécharger le modèle.
  • available: le navigateur est compatible avec l'API Rewriter et peut être utilisé immédiatement.
  • downloadable: le navigateur est compatible avec l'API Rewriter, mais il doit d'abord télécharger le modèle.
  • downloading: le navigateur est compatible avec l'API Rewriter et télécharge actuellement le modèle.

Pour déclencher le téléchargement du modèle et démarrer le réécrivain, appelez la fonction Rewriter.create(). Si la réponse à availability() était downloadable, écoutez la progression du téléchargement et informez l'utilisateur, car le téléchargement peut prendre du temps.

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

Fonctions de l'API

La fonction create() vous permet de configurer un nouvel objet de réécriture. Il accepte un objet options facultatif avec les paramètres suivants:

  • tone: le ton d'écriture peut faire référence au style, au caractère ou à l'attitude du contenu. La valeur peut être définie sur more-formal, as-is (par défaut) ou more-casual.
  • format: mise en forme de la sortie, avec les valeurs autorisées as-is (par défaut), markdown et plain-text.
  • length: longueur de la sortie, avec les valeurs autorisées shorter, as-is (par défaut) et longer.
  • sharedContext: Lorsque vous réécrivez plusieurs contenus, un contexte partagé peut aider le modèle à créer des contenus plus conformes à vos attentes.

L'exemple suivant montre comment lancer un objet rewriter:

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);
  });
}

Commencer à réécrire

Il existe deux façons de générer du contenu à partir du modèle: en mode non streaming et en mode streaming.

Sortie sans streaming

Avec la réécriture non streaming, le modèle traite l'entrée dans son ensemble, puis produit la sortie.

Pour obtenir une sortie non en streaming, appelez la fonction rewrite() asynchrone. Vous devez inclure le texte initial que vous souhaitez réécrire. Vous pouvez ajouter un context facultatif pour fournir des informations générales sur le modèle, ce qui peut aider le modèle à mieux répondre à vos attentes concernant la sortie.

// 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."
});

Sortie de la réécriture de flux

Le streaming offre des résultats en temps réel. La sortie est mise à jour en continu à mesure que l'entrée est ajoutée et ajustée.

Pour obtenir un réécrivain en streaming, appelez la fonction rewriteStreaming() et itérez sur les segments de texte disponibles dans le flux. Vous pouvez ajouter un context facultatif pour fournir des informations générales sur le modèle, ce qui peut l'aider à mieux répondre à vos attentes concernant la sortie.

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);
}

Partager le contexte pour plusieurs tâches

Vous pouvez utiliser une rewriter pour générer plusieurs éléments de contenu. Dans ce cas, il est utile d'ajouter sharedContext. Par exemple, vous pouvez aider les examinateurs à fournir de meilleurs commentaires.

// 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);
}

Réutiliser un outil de réécriture

Vous pouvez utiliser le même outil de réécriture pour modifier plusieurs contenus. Cela peut être particulièrement utile si vous ajoutez le réécrivain à un outil de commentaires ou de commentaires, afin d'aider les rédacteurs à fournir des commentaires productifs et utiles.

// 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",
    })
  ),
);

Arrêter le réécrivain

Pour mettre fin au processus de réécriture, interrompez le contrôleur et supprimez rewriter.

// 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();

Démo

Interagir et envoyer des commentaires

Les API Writer et Rewriter sont en cours de discussion et sont susceptibles d'être modifiées à l'avenir. Si vous essayez cette API et que vous avez des commentaires à nous faire, nous serions ravis de les recevoir.

Découvrez toutes les API d'IA intégrées qui utilisent des modèles, y compris Gemini Nano et d'autres modèles experts, dans le navigateur.