Pubblicata: 20 maggio 2025
Spiegazione | Web | Estensioni | Stato di Chrome | Intenzione |
---|---|---|---|---|
Visualizza | Intento di partecipare a un esperimento |
L'API Writer ti aiuta a creare nuovi contenuti conformi a un compito di scrittura specificato. L'API Writer e l'API Rewriter fanno parte della proposta relativa alle API di assistenza alla scrittura.
Queste API partner possono aiutarti a migliorare i contenuti creati dagli utenti.
Casi d'uso
Scrivi nuovi contenuti in base all'idea iniziale e al contesto facoltativo. Potrebbe essere utilizzato per:
- Aiutare gli utenti a scrivere qualsiasi tipo di contenuto, come recensioni, post del blog o email.
- Aiutare gli utenti a scrivere richieste di assistenza migliori.
- Prepara una bozza di introduzione per una serie di esempi di lavori, per mettere in evidenza meglio determinate competenze.
Il tuo caso d'uso non è presente? Partecipa al programma di anteprima in anteprima per condividere il tuo feedback.
Inizia
Partecipa alla prova dell'origine dell'API Writer, in esecuzione in Chrome 137-142.
Esamina i requisiti hardware
Le API Language Detector e Translator funzionano su computer solo in Chrome.
Le API Prompt, Summarizer, Writer e Rewriter funzionano in Chrome se vengono soddisfatte le seguenti condizioni:
- Sistema operativo: Windows 10 o 11; macOS 13 o versioni successive (da Ventura in poi); o Linux. Chrome per Android, iOS e ChromeOS non è ancora supportato dalle nostre API basate su Gemini Nano.
- Spazio di archiviazione: almeno 22 GB sul volume contenente il tuo profilo Chrome.
- GPU: almeno 4 GB di VRAM.
- Rete: dati illimitati o una connessione senza limiti di traffico.
Questi requisiti sono previsti per te nel processo di sviluppo e per gli utenti che lavorano con le funzionalità che crei.
Registrati per la prova dell'origine
L'API Writer è disponibile in una prova dell'origine congiunta con l'API Rewriter. Per iniziare a utilizzare queste API:
- Accetta le Norme relative agli usi vietati dell'IA generativa di Google.
- Vai alla prova dell'origine dell'API Writer.
- Fai clic su Registrati e compila il modulo. Nel campo Origine web, fornisci l'origine o l'ID estensione,
chrome-extension://YOUR_EXTENSION_ID
. - Per inviare, fai clic su Registrati.
- Copia il token fornito e aggiungilo a ogni pagina web partecipante nella tua origine o includilo nel manifest dell'estensione.
- Inizia a utilizzare le API Writer e Rewriter.
Scopri di più su come iniziare a utilizzare le prove dell'origine.
Aggiungere il supporto a localhost
Per accedere alle API Writer e Rewriter su localhost durante la prova dell'origine, devi aggiornare Chrome alla versione più recente. A tale scopo, procedi nel seguente modo:
- Vai a
chrome://flags/#writer-api-for-gemini-nano
. - Seleziona Attivata.
- Fai clic su Riavvia o riavvia Chrome.
Utilizzare l'API Writer
Innanzitutto, esegui il rilevamento delle funzionalità per verificare se il browser supporta queste API.
if ('Writer' in self) {
// The Writer API is supported.
}
L'API Writer e tutte le altre API di IA integrate sono integrate nel browser. Gemini Nano viene scaricato separatamente la prima volta che un sito web utilizza un'API di IA integrata. In pratica, se un utente ha già interagito con un'API integrata, ha scaricato il modello nel browser.
Per determinare se il modello è pronto per l'uso, chiama la funzione asincrona Writer.availability()
. Restituisce una stringa che può assumere quattro possibili valori:
unavailable
: il browser supporta l'API Writer, ma al momento non può essere utilizzato. Ciò può accadere per una serie di motivi, ad esempio per spazio su disco insufficiente per scaricare il modello.available
: il browser supporta l'API Writer e può essere utilizzato subito.downloadable
: il browser supporta l'API Writer, ma deve prima scaricare il modello.downloading
: il browser supporta l'API Writer e al momento sta scaricando il modello.
Per attivare il download del modello e avviare lo scrittore, chiama la funzione Writer.create()
. Se la risposta a availability()
è downloadable
, ascolta l'avanzamento del download e informa l'utente, poiché il download potrebbe richiedere del tempo.
const writer = await Writer.create({
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
Funzioni API
La funzione create()
consente di configurare un nuovo oggetto scrittore. Accetta un oggetto options
facoltativo con i seguenti parametri:
tone
: il tono della scrittura può fare riferimento allo stile, al carattere o all'atteggiamento dei contenuti. Il valore può essere impostato suformal
,neutral
(predefinito) ocasual
.format
: la formattazione dell'output, con i valori consentitimarkdown
(predefinito) eplain-text
.length
: la lunghezza dell'output, con i valori consentitishort
,medium
(predefinito) elong
.sharedContext
: quando scrivi più output, un contesto condiviso può aiutare il modello a creare contenuti più in linea con le tue aspettative.
L'esempio seguente mostra come inizializzare un oggetto 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);
});
}
Inizia a scrivere
Esistono due modi per generare la scrittura dal modello: non in e in .
Output non in
Con la scrittura non in , il modello elabora l'input nel suo complesso e poi produce l'output.
Per ottenere un output non in , chiama la funzione asincrona write()
. Devi includere un prompt per i contenuti che vuoi che vengano scritti. Puoi aggiungere un valore facoltativo context
per fornire informazioni di contesto sul modello, che possono aiutare il modello a soddisfare meglio le tue aspettative in termini di output.
// Non-
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",
},
);
Output scrittura stream
Lo offre risultati in tempo reale. L'output viene aggiornato continuamente man mano che l'input viene aggiunto e modificato.
Per ottenere uno scrittore in , chiama la funzione write()
ed esegui un'iterazione su tutti i segmenti di testo disponibili nello stream. Puoi aggiungere un valore facoltativo context
per fornire informazioni di contesto sul modello, che possono aiutarlo a soddisfare meglio le tue aspettative in termini di output.
//
const writer = await Writer.create();
const stream = writer.write(
"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);
}
Condividere il contesto per più attività
Ti consigliamo di utilizzare un writer
per generare più contenuti. In questo caso, è utile aggiungere sharedContext
. Ad esempio, potresti aiutare i revisori a fornire un feedback migliore nei commenti.
// 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.write(
"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);
}
Riutilizzare un autore
Puoi utilizzare lo stesso autore per creare più contenuti.
// 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)
),
);
Interrompi lo scrittore
Per terminare il processo di scrittura, interrompi il controller e distruggi lo scrittore.
// 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();
Demo
Coinvolgere e condividere feedback
L'API Writer e l'API Rewriter sono in fase di discussione attiva e soggette a modifiche in futuro. Se provi questa API e hai un feedback, ci farebbe piacere conoscerlo.
- Leggi la spiegazione, fai domande e partecipa alla discussione.
- Esamina l'implementazione per Chrome su Chrome Status.
- Partecipa al programma di anteprima per dare un'occhiata in anteprima alle nuove API e accedere alla nostra mailing list.
- Se hai un feedback sull'implementazione di Chrome, segnala un bug di Chromium.
Scopri tutte le API di IA integrate che utilizzano modelli, tra cui Gemini Nano e altri modelli di esperti, nel browser.