Veröffentlicht: 13. Januar 2024
Dies ist der letzte Teil einer dreiteiligen Reihe über LLM-Chatbots. In den vorherigen Artikeln haben wir die Vorteile clientseitiger LLMs erläutert und gezeigt, wie Sie einer To-do-Listen-Anwendung einen mit WebLLM betriebenen Chatbot hinzufügen.
Einige neuere Geräte sind bereits mit Large Language Models und anderen KI-Modellen ausgestattet. Chrome hat vorgeschlagen, integrierte KI-APIs in den Browser einzubinden. Es gibt verschiedene APIs in verschiedenen Entwicklungsphasen. Viele dieser APIs durchlaufen den Standards-Prozess, damit Websites dieselbe Implementierung und dasselbe Modell verwenden können, um die maximale Inferenzleistung zu erzielen.
Die Prompt API ist eine solche KI-API. Entwickler können sich für die Early-Access-Version registrieren. Sobald die Genehmigung vorliegt, erhalten Sie eine Anleitung zum Aktivieren der Prompt API in Browsern. Die Prompt API ist in einem Ursprungstest für Chrome-Erweiterungen verfügbar. Sie können diese API also für echte Erweiterungsnutzer testen.
Freigegebener Modellzugriff
Die Prompt API verhält sich ähnlich wie WebLLM. Es gibt jedoch keine Modellauswahl. Sie müssen das LLM verwenden, das im Browser enthalten ist. Wenn Sie die integrierte KI aktivieren, lädt Chrome Gemini Nano in den Browser herunter. Dieses Modell kann dann für mehrere Quellen freigegeben und mit maximaler Leistung ausgeführt werden. In einem GitHub-Problem hat ein Entwickler die Hinzufügung einer Modellauswahlfunktion angefordert.
Unterhaltung einrichten
Sie können die Nachrichtenunterhaltung auf genau dieselbe Weise starten. Die Prompt API bietet jedoch auch eine Kurzsyntax, um den Systemprompt anzugeben. Starten Sie die Sitzung des Sprachmodells mit der create()
-Methode für das Attribut 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)}`,
});
Erste Frage beantworten
Anstatt ein Konfigurationsobjekt für das Streaming zu haben, bietet die Prompt API zwei separate Methoden:
prompt()
gibt den vollständigen String zurück.promptStreaming()
gibt ein asynchrones Iterable zurück. Im Gegensatz zu WebLLM antwortet die Prompt API mit der vollständigen Stringantwort, sodass Sie die Ergebnisse nicht selbst kombinieren müssen.
Wenn noch kein anderer Ursprung den Modelldownload ausgelöst hat, kann es bei Ihrer ersten Anfrage sehr lange dauern, bis Gemini Nano in Ihren Browser heruntergeladen wird. Wenn das Modell bereits verfügbar ist, beginnt die Inferenz sofort.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}
Demo
Zusammenfassung
Die Einbindung von LLMs in Anwendungen kann die Nutzerfreundlichkeit erheblich verbessern. Cloud-Dienste bieten unabhängig vom Gerät des Nutzers qualitativ hochwertigere Modelle und eine hohe Inferenzleistung. On-Device-Lösungen wie WebLLM und die Prompt API von Chrome sind jedoch offlinefähig, verbessern den Datenschutz und sparen im Vergleich zu cloudbasierten Alternativen Kosten. Probieren Sie diese neuen APIs aus und machen Sie Ihre Webanwendungen intelligenter.