Data di pubblicazione: 13 gennaio 2025
Questo è l'ultimo di una serie in tre parti sui chatbot LLM. Gli articoli precedenti hanno trattato l'efficacia degli LLM lato client e ti hanno guidato nell'aggiunta di un chatbot basato su WebLLM a un'applicazione di elenco di cose da fare.
Alcuni dispositivi più recenti vengono forniti con modelli linguistici di grandi dimensioni e altri modelli di AI direttamente sul dispositivo. Chrome ha proposto di integrare le API di AI integrate nel browser, con un numero di API in diverse fasi di sviluppo. Molte di queste API sono in fase di standardizzazione, in modo che i siti web possano utilizzare la stessa implementazione e lo stesso modello per ottenere le massime prestazioni di inferenza.
L'API Prompt è una di queste API AI. Per utilizzarlo, gli sviluppatori sono invitati a registrarsi al Programma di anteprima. Una volta accettata, riceverai istruzioni su come abilitare l'API Prompt nei browser. L'API Prompt è disponibile in una prova dell'origine per le estensioni di Chrome, in modo da poter testare questa API per gli utenti reali delle estensioni.
Accesso al modello condiviso
L'API Prompt si comporta in modo simile a WebLLM. Tuttavia, questa volta non è possibile selezionare il modello (devi utilizzare l'LLM fornito con il browser). Quando attivi l'AI integrata, Chrome scarica Gemini Nano nel browser. Questo modello può quindi essere condiviso su più origini e viene eseguito con le massime prestazioni. Esiste un problema su GitHub in cui uno sviluppatore ha richiesto di aggiungere una funzionalità di selezione del modello.
Configurare la conversazione
Puoi iniziare la conversazione con il messaggio esattamente nello stesso modo, ma l'API Prompt
offre anche una sintassi abbreviata per specificare il prompt di sistema. Avvia la sessione del modello
linguistico utilizzando il metodo create() sull'interfaccia LanguageModel:
const session = await LanguageModel.create({
initialPrompt: [
{
type: 'system',
content: `You are a helpful assistant. You will answer questions related
to the user's to-do list. Decline all other requests not related to the
user's todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
},
],
});
Rispondi alla prima domanda
Anziché avere un oggetto di configurazione per la configurazione dello streaming, l'API Prompt offre due metodi separati:
prompt()restituisce la stringa completapromptStreaming()restituisce un iterabile asincrono. A differenza di WebLLM, l'API Prompt risponde con la stringa di risposta completa, quindi non devi combinare i risultati manualmente.
Se nessun'altra origine ha attivato il download del modello in precedenza, la prima richiesta potrebbe richiedere molto tempo durante il download di Gemini Nano nel browser. Se il modello è già disponibile, l'inferenza inizia immediatamente.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}

Demo
Riepilogo
L'integrazione di LLM nelle applicazioni può migliorare notevolmente l'esperienza utente. Mentre i servizi cloud offrono modelli di qualità superiore e prestazioni di inferenza elevate indipendentemente dal dispositivo dell'utente, le soluzioni on-device, come WebLLM e l'API Prompt di Chrome, sono utilizzabili offline, migliorano la privacy e consentono di risparmiare sui costi rispetto alle alternative basate sul cloud. Prova queste nuove API e rendi più intelligenti le tue applicazioni web.