Gepubliceerd: 12 december 2024, Laatst geüpdatet: 20 mei 2025
Met ingebouwde AI-API's kan je webapplicatie AI-gestuurde taken uitvoeren zonder dat je je eigen AI-modellen hoeft te implementeren of te beheren. We werken eraan om deze API's te standaardiseren voor alle browsers.
Vereiste modellen
De Translator API en Language Detector API gebruiken expertmodellen. Alle andere API's gebruiken een taalmodel dat is ontworpen om lokaal te worden uitgevoerd op desktops en laptops.
De Summarizer API, Writer API, Rewriter API en Proofreader API ondersteunen alleen de tekst-naar-tekst-modaliteit. De Prompt API heeft multimodale mogelijkheden.
Chrome-modellen
Chrome gebruikt expert- en basismodellen voor taal. Deze modellen zijn niet beschikbaar op mobiele apparaten.
Vanaf Chrome 149 ondersteunen de modellen Engels, Spaans, Japans, Duits en Frans voor invoer- en uitvoertekst.
Vereiste hardware
De volgende vereisten gelden voor ontwikkelaars en de gebruikers die functies bedienen met deze API's in Chrome. Andere browsers hebben misschien andere operationele vereisten.
De Language Detector en Translator API's werken in Chrome op desktops. Deze API's werken niet op mobiele apparaten.
De Prompt API, Summarizer API, Writer API, Rewriter API en Proofreader API werken in Chrome als aan de volgende voorwaarden wordt voldaan:
- Besturingssysteem: Windows 10 of 11; macOS 13+ (Ventura en hoger); Linux; of ChromeOS (vanaf Platform 16389.0.0 en hoger) op Chromebook Plus-apparaten. Chrome voor Android, iOS en ChromeOS op niet-Chromebook Plus-apparaten wordt nog niet ondersteund door de API's die basismodellen gebruiken.
- Opslag: Minstens 22 GB vrije ruimte op het volume dat je Chrome-profiel bevat.
- GPU of CPU: Ingebouwde modellen kunnen worden uitgevoerd met een GPU of CPU.
- GPU: Strikt meer dan 4 GB VRAM.
- CPU: 16 GB RAM of meer en 4 CPU-kernen of meer.
- Opmerking: De Prompt API met audio-invoer vereist een GPU.
- Netwerk: Onbeperkte data of een verbinding zonder datalimiet.
De exacte grootte van Gemini Nano kan verschillen als de browser het model updatet. Ga naar chrome://on-device-internals om de huidige grootte te bepalen.
Aan de slag
Er zijn verschillende ingebouwde AI-API's beschikbaar in verschillende ontwikkelingsfasen. Sommige zijn stabiel in Chrome, sommige zijn beschikbaar voor deelnemers aan oorspronkelijke tests en andere zijn alleen beschikbaar voor deelnemers aan het Early Preview-programma.
Elke API heeft een eigen set instructies om aan de slag te gaan en het model te downloaden, zowel voor lokaal prototypen als in productie-omgevingen met de origin trials.
- Translator API
- Language Detector API
- Summarizer API
- Writer API en Rewriter API
- Proofreader API
- Prompt API
Al deze API's kunnen worden gebruikt als je Chrome-extensies bouwt.
Model downloaden
API's zijn ingebouwd in Chrome, net als de modellen. De eerste keer dat een gebruiker deze API's gebruikt, moet het model naar de browser worden gedownload.
Als je wilt bepalen of een API bruikbaar en klaar is, roep je de asynchrone functie availability() aan. Deze retourneert een belofte met een van de volgende waarden:
"unavailable": Het apparaat van de gebruiker of de gevraagde sessieopties worden niet ondersteund. Het apparaat heeft misschien niet genoeg stroom of schijfruimte."downloadable": Er zijn extra downloads nodig om een sessie te maken, waaronder misschien een expertmodel, een taalmodel of fijnafstelling. Gebruikersactivering kan vereist zijn omcreate()aan te roepen."downloading": Er worden downloads uitgevoerd die moeten worden afgerond voordat je een sessie kunt gebruiken."available": Je kunt meteen een sessie maken.
Sommige API's vereisen aanvullende opties als je de beschikbaarheid aanroept. De Prompt API vereist bijvoorbeeld dat je taalondersteuning declareert:
// Makes sure the model is available for English and Japanese input text,
// supports image input, and can generate English output.
await LanguageModel.availability({
expectedInputs: [{type: "text", languages: ["en", "ja"]}, {type: "image"}],
expectedOutputs: [{type: "text", languages: ["en"]}],
});
Gebruikersactivering
Als het apparaat ingebouwde AI-API's kan ondersteunen, maar het model nog niet
is gedownload (dat wil zeggen, als availability() `"downloadable"` of
"downloadable" retourneert), moet de gebruiker op een zinvolle manier met je pagina communiceren voordat je
applicatie een sessie kan starten met "downloading".create()
Gebruik de UserActivation.isActive
eigenschap om te bevestigen dat een gebruiker rechtstreeks met de pagina heeft gecommuniceerd sinds de pagina
is geladen. Dit kan een tik, klik, toetsaanslag, mousedown, of
andere sticky activeringsgebeurtenissen zijn.
// Check for user activation.
if (navigator.userActivation.isActive) {
// Create an instance of a built-in API
}
Met de Summarizer API kun je
gebruikers bijvoorbeeld vragen om te communiceren met een knop met de tekst Samenvatten om
Summarizer.create() te activeren. Je kunt de samenvatter ook maken zodra een gebruiker begint met
typen, een keydown gebeurtenis.
Problemen met localhost oplossen
Als het model niet werkt zoals verwacht, volg je deze stappen:
- Start Chrome opnieuw op.
- Ga naar
chrome://on-device-internals. - Selecteer het tabblad Broker State (Brokerstatus) en zorg dat er geen fouten zijn.
- Open DevTools en typ
LanguageModel.availability();in de console. Dit moetavailableretourneren.
Wacht zo nodig even en herhaal deze stappen.
Standaardproces
We werken eraan om deze API's te standaardiseren, zodat ze in alle browsers werken. Dit betekent dat we de API's hebben voorgesteld aan de community van webplatforms en ze hebben verplaatst naar de W3C Web Incubator Community Group voor verdere bespreking.
We vragen feedback van de W3C, Mozilla en WebKit voor elke API.
Deelnemen en feedback delen
Als je ingebouwde AI uitprobeert en feedback hebt, horen we dat graag.
- Ontdek alle ingebouwde AI-API's.
- Neem deel aan het Early Preview-programma voor een vroege blik op nieuwe API's en toegang tot onze mailinglijst.
- Als je feedback hebt over de implementatie van Chrome, dien je een Chromium-bug in.
- Meer informatie over webstandaarden.