Gepubliceerd: 20 mei 2025
Uitlegger | Web | Uitbreidingen | Chrome-status | Intentie |
---|---|---|---|---|
GitHub | Weergave | Intentie om te experimenteren |
Met de Writer API kunt u nieuwe content creëren die voldoet aan een specifieke schrijftaak. De Writer API en de Rewriter API maken deel uit van het voorstel voor Writing Assistance API's .
Met deze partner-API's kunt u de door gebruikers gemaakte content verbeteren.
Gebruiksscenario's
Schrijf nieuwe content, gebaseerd op je oorspronkelijke idee en eventueel context. Dit kan gebruikt worden om:
- Ondersteuningsgebruikers schrijven allerlei soorten content, zoals recensies, blogberichten en e-mails.
- Help gebruikers betere ondersteuningsverzoeken te schrijven.
- Maak een inleiding voor een reeks werkvoorbeelden om bepaalde vaardigheden beter vast te leggen.
Ontbreekt uw use case? Doe mee aan het early preview-programma en deel uw feedback.
Aan de slag
Doe mee aan de proefversie van Writer API, beschikbaar in Chrome 137 tot en met 142.
Controleer de hardwarevereisten
De API's voor taaldetector en vertaler werken alleen op desktopcomputers in Chrome.
De Prompt API, Summarizer API, Writer API en Rewriter API werken in Chrome wanneer aan de volgende voorwaarden is voldaan:
- Besturingssysteem : Windows 10 of 11; macOS 13+ (Ventura en hoger); of Linux. Chrome voor Android, iOS en ChromeOS worden nog niet ondersteund door onze API's, ondersteund door Gemini Nano.
- Opslag : minimaal 22 GB op het volume dat uw Chrome-profiel bevat.
- GPU : absoluut meer dan 4 GB VRAM.
- Netwerk : Onbeperkt dataverbruik of een onbeperkte verbinding.
Deze vereisten gelden voor u in uw ontwikkelingsproces en voor uw gebruikers die met de functies werken die u bouwt.
Meld je aan voor het oorsprongsonderzoek
De Writer API is beschikbaar in een gezamenlijke proefperiode met de Rewriter API. Om deze API's te gebruiken:
- Erken het beleid van Google inzake verboden gebruik van generatieve AI .
- Ga naar de proefversie van de Writer API .
- Klik op Registreren en vul het formulier in. Geef in het veld 'Web origin' uw oorsprong- of extensie-ID op,
chrome-extension://YOUR_EXTENSION_ID
. - Om te verzenden, klikt u op Registreren .
- Kopieer het verstrekte token en voeg het toe aan elke deelnemende webpagina op uw oorsprong of neem het op in het manifest van uw extensie .
- Begin met het gebruiken van de Writer- en Rewriter-API's.
Lees meer over hoe u kunt beginnen met oorsprongsproeven .
Ondersteuning toevoegen aan localhost
Om tijdens de proefperiode toegang te krijgen tot de Writer- en Rewriter-API's op localhost, moet u Chrome updaten naar de nieuwste versie. Volg vervolgens deze stappen:
- Ga naar
chrome://flags/#writer-api-for-gemini-nano
. - Selecteer Ingeschakeld .
- Klik op Opnieuw starten of start Chrome opnieuw.
Gebruik de Writer API
Voer eerst functiedetectie uit om te controleren of de browser deze API's ondersteunt.
if ('Writer' in self) {
// The Writer API is supported.
}
De Writer API en alle andere ingebouwde AI API's zijn geïntegreerd in de browser. Gemini Nano wordt apart gedownload wanneer een website voor het eerst een ingebouwde AI API gebruikt. In de praktijk geldt dat als een gebruiker al eerder met een ingebouwde API heeft gewerkt, hij of zij het model al naar zijn of haar browser heeft gedownload.
Om te bepalen of het model klaar is voor gebruik, roept u de asynchrone functie Writer.availability()
aan. Deze retourneert een string die vier mogelijke waarden kan aannemen:
-
unavailable
: De browser ondersteunt de Writer API, maar deze kan momenteel niet worden gebruikt. Dit kan verschillende oorzaken hebben, zoals onvoldoende beschikbare schijfruimte om het model te downloaden. -
available
: De browser ondersteunt de Writer API en deze kan direct gebruikt worden. -
downloadable
: De browser ondersteunt de Writer API, maar moet eerst het model downloaden. -
downloading
: De browser ondersteunt de Writer API en is momenteel bezig met het downloaden van het model.
Om het downloaden van het model te activeren en de schrijver te starten, roept u de functie Writer.create()
aan. Als de respons op availability()
downloadable
was, luister dan naar de voortgang van het downloaden en informeer de gebruiker, aangezien het downloaden enige tijd kan duren.
const writer = await Writer.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
API-functies
Met de functie create()
kunt u een nieuw writer-object configureren. Deze functie accepteert een optioneel options
met de volgende parameters:
-
tone
: Schrijftoon kan verwijzen naar de stijl, het karakter of de houding van de tekst. De waarde kan worden ingesteld opformal
,neutral
(standaard) ofcasual
. -
format
: De opmaak van de uitvoer, met de toegestane waardenmarkdown
(standaard) enplain-text
. -
length
: De lengte van de uitvoer, met de toegestane waardenshort
,medium
(standaard) enlong
. -
sharedContext
: Wanneer u meerdere uitvoerresultaten schrijft, kan een gedeelde context het model helpen inhoud te creëren die beter aansluit bij uw verwachtingen.
Het volgende voorbeeld laat zien hoe u een writer
object initieert:
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);
});
}
Begin met schrijven
Er zijn twee manieren om schrijfbewerkingen uit het model uit te voeren: niet-streamend en streaming.
Niet-streaming output
Bij niet-streaming schrijven verwerkt het model de invoer als geheel en produceert vervolgens de uitvoer.
Om een niet-streaming output te krijgen, roept u de asynchrone write()
functie aan. U moet een prompt toevoegen voor de content die u wilt laten schrijven. U kunt een optionele context
toevoegen om achtergrondinformatie over het model te geven, wat kan helpen om het model beter te laten voldoen aan uw verwachtingen voor de output.
// 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",
},
);
Stream-schrijfuitvoer
Streaming biedt resultaten in realtime. De output wordt continu bijgewerkt naarmate de input wordt toegevoegd en aangepast.
Om een streaming writer te krijgen, roept u de functie writeStreaming()
aan en itereert u over de beschikbare tekstsegmenten in de stream. U kunt een optionele context
toevoegen om achtergrondinformatie over het model te geven, waardoor het model mogelijk beter aan uw verwachtingen voor de uitvoer voldoet.
// 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);
}
Deel context voor meerdere taken
Mogelijk wilt u een writer
inschakelen om meerdere stukken content te genereren. In dat geval is het handig om sharedContext
toe te voegen. U kunt reviewers bijvoorbeeld helpen betere feedback te geven in reacties.
// 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);
}
Een schrijver hergebruiken
U kunt dezelfde schrijver gebruiken om meerdere stukken content te maken.
// 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)
),
);
Stop de schrijver
Om het schrijfproces te beëindigen, moet u de controller uitschakelen en de schrijver vernietigen.
// 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();
Demonstratie
Betrek en deel feedback
De Writer en Rewriter API worden momenteel actief besproken en kunnen in de toekomst worden gewijzigd. Als u deze API uitprobeert en feedback heeft, horen we dat graag.
- Lees de uitleg , stel vragen en neem deel aan de discussie.
- Bekijk de implementatie voor Chrome op Chrome Status .
- Meld u aan voor ons early preview-programma om alvast kennis te maken met nieuwe API's en toegang te krijgen tot onze mailinglijst.
- Als u feedback hebt over de implementatie van Chrome, meld dit dan als Chromium-bug .
Ontdek alle ingebouwde AI API's die modellen gebruiken, waaronder Gemini Nano en andere expertmodellen, in de browser.
,Gepubliceerd: 20 mei 2025
Uitlegger | Web | Uitbreidingen | Chrome-status | Intentie |
---|---|---|---|---|
GitHub | Weergave | Intentie om te experimenteren |
Met de Writer API kunt u nieuwe content creëren die voldoet aan een specifieke schrijftaak. De Writer API en de Rewriter API maken deel uit van het voorstel voor Writing Assistance API's .
Met deze partner-API's kunt u de door gebruikers gemaakte content verbeteren.
Gebruiksscenario's
Schrijf nieuwe content, gebaseerd op je oorspronkelijke idee en eventueel context. Dit kan gebruikt worden om:
- Ondersteuningsgebruikers schrijven allerlei soorten content, zoals recensies, blogberichten en e-mails.
- Help gebruikers betere ondersteuningsverzoeken te schrijven.
- Maak een inleiding voor een reeks werkvoorbeelden om bepaalde vaardigheden beter vast te leggen.
Ontbreekt uw use case? Doe mee aan het early preview-programma en deel uw feedback.
Aan de slag
Doe mee aan de proefversie van Writer API, beschikbaar in Chrome 137 tot en met 142.
Controleer de hardwarevereisten
De API's voor taaldetector en vertaler werken alleen op desktopcomputers in Chrome.
De Prompt API, Summarizer API, Writer API en Rewriter API werken in Chrome wanneer aan de volgende voorwaarden is voldaan:
- Besturingssysteem : Windows 10 of 11; macOS 13+ (Ventura en hoger); of Linux. Chrome voor Android, iOS en ChromeOS worden nog niet ondersteund door onze API's, ondersteund door Gemini Nano.
- Opslag : minimaal 22 GB op het volume dat uw Chrome-profiel bevat.
- GPU : absoluut meer dan 4 GB VRAM.
- Netwerk : Onbeperkt dataverbruik of een onbeperkte verbinding.
Deze vereisten gelden voor u in uw ontwikkelingsproces en voor uw gebruikers die met de functies werken die u bouwt.
Meld je aan voor het oorsprongsonderzoek
De Writer API is beschikbaar in een gezamenlijke proefperiode met de Rewriter API. Om deze API's te gebruiken:
- Erken het beleid van Google inzake verboden gebruik van generatieve AI .
- Ga naar de proefversie van de Writer API .
- Klik op Registreren en vul het formulier in. Geef in het veld 'Web origin' uw oorsprong- of extensie-ID op,
chrome-extension://YOUR_EXTENSION_ID
. - Om te verzenden, klikt u op Registreren .
- Kopieer het verstrekte token en voeg het toe aan elke deelnemende webpagina op uw oorsprong of neem het op in het manifest van uw extensie .
- Begin met het gebruiken van de Writer- en Rewriter-API's.
Lees meer over hoe u kunt beginnen met oorsprongsproeven .
Ondersteuning toevoegen aan localhost
Om tijdens de proefperiode toegang te krijgen tot de Writer- en Rewriter-API's op localhost, moet u Chrome updaten naar de nieuwste versie. Volg vervolgens deze stappen:
- Ga naar
chrome://flags/#writer-api-for-gemini-nano
. - Selecteer Ingeschakeld .
- Klik op Opnieuw starten of start Chrome opnieuw.
Gebruik de Writer API
Voer eerst functiedetectie uit om te controleren of de browser deze API's ondersteunt.
if ('Writer' in self) {
// The Writer API is supported.
}
De Writer API en alle andere ingebouwde AI API's zijn geïntegreerd in de browser. Gemini Nano wordt apart gedownload wanneer een website voor het eerst een ingebouwde AI API gebruikt. In de praktijk geldt dat als een gebruiker al eerder met een ingebouwde API heeft gewerkt, hij of zij het model al naar zijn of haar browser heeft gedownload.
Om te bepalen of het model klaar is voor gebruik, roept u de asynchrone functie Writer.availability()
aan. Deze retourneert een string die vier mogelijke waarden kan aannemen:
-
unavailable
: De browser ondersteunt de Writer API, maar deze kan momenteel niet worden gebruikt. Dit kan verschillende oorzaken hebben, zoals onvoldoende beschikbare schijfruimte om het model te downloaden. -
available
: De browser ondersteunt de Writer API en deze kan direct gebruikt worden. -
downloadable
: De browser ondersteunt de Writer API, maar moet eerst het model downloaden. -
downloading
: De browser ondersteunt de Writer API en is momenteel bezig met het downloaden van het model.
Om het downloaden van het model te activeren en de schrijver te starten, roept u de functie Writer.create()
aan. Als de respons op availability()
downloadable
was, luister dan naar de voortgang van het downloaden en informeer de gebruiker, aangezien het downloaden enige tijd kan duren.
const writer = await Writer.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
API-functies
Met de functie create()
kunt u een nieuw writer-object configureren. Deze functie accepteert een optioneel options
met de volgende parameters:
-
tone
: Schrijftoon kan verwijzen naar de stijl, het karakter of de houding van de tekst. De waarde kan worden ingesteld opformal
,neutral
(standaard) ofcasual
. -
format
: De opmaak van de uitvoer, met de toegestane waardenmarkdown
(standaard) enplain-text
. -
length
: De lengte van de uitvoer, met de toegestane waardenshort
,medium
(standaard) enlong
. -
sharedContext
: Wanneer u meerdere uitvoerresultaten schrijft, kan een gedeelde context het model helpen inhoud te creëren die beter aansluit bij uw verwachtingen.
Het volgende voorbeeld laat zien hoe u een writer
object initieert:
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);
});
}
Begin met schrijven
Er zijn twee manieren om schrijfbewerkingen uit het model uit te voeren: niet-streamend en streaming.
Niet-streaming output
Bij niet-streaming schrijven verwerkt het model de invoer als geheel en produceert vervolgens de uitvoer.
Om een niet-streaming output te krijgen, roept u de asynchrone write()
functie aan. U moet een prompt toevoegen voor de content die u wilt laten schrijven. U kunt een optionele context
toevoegen om achtergrondinformatie over het model te geven, wat kan helpen om het model beter te laten voldoen aan uw verwachtingen voor de output.
// 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",
},
);
Stream-schrijfuitvoer
Streaming biedt resultaten in realtime. De output wordt continu bijgewerkt naarmate de input wordt toegevoegd en aangepast.
Om een streaming writer te krijgen, roept u de functie writeStreaming()
aan en itereert u over de beschikbare tekstsegmenten in de stream. U kunt een optionele context
toevoegen om achtergrondinformatie over het model te geven, waardoor het model mogelijk beter aan uw verwachtingen voor de uitvoer voldoet.
// 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);
}
Deel context voor meerdere taken
Mogelijk wilt u een writer
inschakelen om meerdere stukken content te genereren. In dat geval is het handig om sharedContext
toe te voegen. U kunt reviewers bijvoorbeeld helpen betere feedback te geven in reacties.
// 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);
}
Een schrijver hergebruiken
U kunt dezelfde schrijver gebruiken om meerdere stukken content te maken.
// 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)
),
);
Stop de schrijver
Om het schrijfproces te beëindigen, moet u de controller uitschakelen en de schrijver vernietigen.
// 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();
Demonstratie
Betrek en deel feedback
De Writer en Rewriter API worden momenteel actief besproken en kunnen in de toekomst worden gewijzigd. Als u deze API uitprobeert en feedback heeft, horen we dat graag.
- Lees de uitleg , stel vragen en neem deel aan de discussie.
- Bekijk de implementatie voor Chrome op Chrome Status .
- Meld u aan voor ons early preview-programma om alvast kennis te maken met nieuwe API's en toegang te krijgen tot onze mailinglijst.
- Als u feedback hebt over de implementatie van Chrome, meld dit dan als Chromium-bug .
Ontdek alle ingebouwde AI API's die modellen gebruiken, waaronder Gemini Nano en andere expertmodellen, in de browser.