Publié le 20 mai 2025
Vidéo explicative | Web | Extensions | État de Chrome | Intent |
---|---|---|---|---|
GitHub | Afficher | Intent to Experiment |
L'API Writer vous aide à créer du contenu conforme à une tâche d'écriture spécifiée. L'API Writer et l'API Rewriter font partie de la proposition d'API d'assistance à l'écriture.
Ces API partenaires peuvent vous aider à améliorer les contenus créés par les utilisateurs.
Cas d'utilisation
Rédigez un nouveau contenu, en vous basant sur votre idée initiale et sur le contexte facultatif. Vous pouvez l'utiliser pour:
- Aidez les utilisateurs à rédiger tout type de contenu, comme des avis, des articles de blog ou des e-mails.
- Aidez les utilisateurs à rédiger de meilleures demandes d'assistance.
- Rédigez une introduction pour une série d'exemples de travail afin de mieux mettre en valeur certaines compétences.
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 Writer en version d'origine, 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 Writer est disponible dans une phase d'évaluation conjointe avec l'API Rewriter. Pour commencer à utiliser ces API:
- Accepter le Règlement de Google sur les utilisations interdites de l'IA générative
- Accédez à la version d'essai de l'API Writer Origin.
- Cliquez sur Register (S'inscrire) et remplissez le formulaire. Dans le champ "Origine Web", indiquez votre origine ou l'ID de l'extension,
chrome-extension://YOUR_EXTENSION_ID
. - Pour envoyer votre demande, cliquez sur Register (S'inscrire).
- Copiez le jeton fourni, puis ajoutez-le à chaque page Web participante de votre origine ou incluez-le dans le fichier manifeste de votre extension.
- Commencez à utiliser les API Writer et 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 :
- Accédez à
chrome://flags/#writer-api-for-gemini-nano
. - Sélectionnez Activé.
- Cliquez sur Relancer ou redémarrez Chrome.
Utiliser l'API Writer
Commencez par exécuter la détection de fonctionnalités pour voir si le navigateur est compatible avec ces API.
if ('Writer' in self) {
// The Writer API is supported.
}
L'API Writer 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 Writer.availability()
asynchrone. Il renvoie une chaîne pouvant prendre quatre valeurs possibles:
unavailable
: le navigateur est compatible avec l'API Writer, 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 Writer et peut être utilisé immédiatement.downloadable
: le navigateur est compatible avec l'API Writer, mais il doit d'abord télécharger le modèle.downloading
: le navigateur est compatible avec l'API Writer et télécharge actuellement le modèle.
Pour déclencher le téléchargement du modèle et démarrer l'écrivain, appelez la fonction Writer.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 writer = await Writer.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 writer. 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 surformal
,neutral
(par défaut) oucasual
.format
: mise en forme de la sortie, avec les valeurs autoriséesmarkdown
(par défaut) etplain-text
.length
: longueur de la sortie, avec les valeurs autoriséesshort
,medium
(par défaut) etlong
.sharedContext
: lorsque vous écrivez plusieurs résultats, un contexte partagé peut aider le modèle à créer du contenu plus conforme à vos attentes.
L'exemple suivant montre comment lancer un objet writer
:
const options = {
sharedContext: 'This is an email to acquaintances about an upcoming event.',
tone: 'casual',
format: 'plain-text',
length: 'medium',
};
const available = await Writer.availability();
let writer;
if (available === 'unavailable') {
// The Writer API isn't usable.
return;
}
if (available === 'available') {
// The Writer API can be used immediately .
writer = await Writer.create(options);
} else {
// The Writer can be used after the model is downloaded.
writer = await Writer.create(options);
writer.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
}
Commencer à écrire
Il existe deux façons d'extraire l'écriture du modèle: en mode non-streaming et en mode streaming.
Sortie sans streaming
Avec l'écriture non en 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 write()
asynchrone. Vous devez inclure une requête pour le contenu que vous souhaitez rédiger. 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.
// Non-streaming
const writer = await Writer.create();
const result = await writer.write(
"An inquiry to my bank about how to enable wire transfers on my account.", {
context: "I'm a longstanding customer",
},
);
Sortie d'écriture de flux
Le streaming offre des résultats en temps réel. La sortie est mise à jour en permanence à mesure que l'entrée est ajoutée et ajustée.
Pour obtenir un éditeur de flux, appelez la fonction writeStreaming()
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.
// Streaming
const writer = await Writer.create();
const stream = writer.writeStreaming(
"An inquiry to my bank about how to enable wire transfers on my account.", {
context: "I'm a longstanding customer",
},
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Partager le contexte pour plusieurs tâches
Vous pouvez utiliser une writer
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 writer = await Writer.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});
const stream = writer.writeStreaming(
"Write a blog post about how I love all this work on gen AI at Google!" +
"Mention that there's 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."}
);
for await (const chunk of stream) {
composeTextbox.append(chunk);
}
Réutiliser un rédacteur
Vous pouvez faire appel au même rédacteur pour créer plusieurs contenus.
// Reuse a writer
const writer = await Writer.create({ tone: "formal" });
const reviews = await Promise.all(
Array.from(
document.querySelectorAll("#reviews > .review"),
(reviewEl) => writer.write(reviewEl.textContent)
),
);
Arrêter le rédacteur
Pour mettre fin au processus d'écriture, interrompez le contrôleur et supprimez l'écrivain.
// Aborting a writer
const controller = new AbortController();
stopButton.onclick = () => controller.abort();
const writer = await Writer.create({ signal: controller.signal });
await writer.write(reviewEl.textContent, { signal: controller.signal });
// Destroying a writer
writer.destroy();
Démo
Interagir et envoyer des commentaires
L'API Writer et la API Rewriter font l'objet de discussions actives 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.
- Lisez la vidéo explicative, posez des questions et participez à la discussion.
- Consultez l'implémentation pour Chrome sur État de Chrome.
- Rejoignez le programme en accès anticipé pour découvrir les nouvelles API en avant-première et accéder à notre liste de diffusion.
- Si vous avez des commentaires sur l'implémentation de Chrome, signalez un bug Chromium.
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.