Data di pubblicazione: 13 gennaio 2024
Questo è l'ultimo articolo di una serie in tre parti sui chatbot LLM. Gli articoli precedenti hanno illustrato la potenza degli LLM lato client e spiegato come aggiungere un chatbot basato su WebLLM a un'applicazione di liste di cose da fare.
Alcuni dispositivi più recenti sono dotati di modelli linguistici di grandi dimensioni e di altri modelli di IA direttamente sul dispositivo. Chrome ha proposto di integrare le API di IA integrata nel browser, con un numero di API in diverse fasi di sviluppo. Molte di queste API stanno attraversando la procedura di definizione degli standard, in modo che i siti web possano utilizzare la stessa implementazione e lo stesso modello per ottenere il massimo rendimento dell'inferenza.
L'API Prompt è una di queste API di IA. Per utilizzarlo, gli sviluppatori sono invitati a registrarsi al programma di anteprima. Una volta accettata, riceverai le istruzioni su come attivare l'API Prompt nei browser. L'API Prompt è disponibile in una prova dell'origine per le estensioni di Chrome, in modo da poterla testare per gli utenti reali delle estensioni.
Accesso ai modelli condivisi
L'API Prompt si comporta in modo simile a WebLLM. Tuttavia, al momento non è possibile selezionare un modello (devi utilizzare l'LLM fornito con il browser). Quando attivi l'AI integrata, Chrome scarica Gemini Nano nel browser. Questo modello può essere condiviso tra più origini ed eseguito con il massimo delle prestazioni. Esiste un problema GitHub in cui uno sviluppatore ha richiesto di aggiungere una funzionalità di selezione del modello.
Configurare la conversazione
Puoi avviare la conversazione con messaggio 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()
nella proprietà self.ai.languageModel
:
const session = await self.ai.languageModel.create({
systemPrompt: `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 distinti:
prompt()
restituisce la stringa completapromptStreaming()
restituisce un oggetto iterabile asincrono. A differenza di WebLLM, l'API Prompt risponde con la risposta completa della stringa, quindi non devi combinare i risultati autonomamente.
Se nessun'altra origine ha attivato il download del modello prima, la prima richiesta potrebbe richiedere molto tempo mentre Gemini Nano viene scaricato 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 degli LLM nelle applicazioni può migliorare notevolmente l'esperienza utente. Sebbene i servizi cloud offrano 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 su cloud. Prova queste nuove API e rendi più intelligenti le tue applicazioni web.