Data publikacji: 13 stycznia 2024 r.
To ostatnia część z 3 artykułów na temat chatbotów wykorzystujących LLM. W poprzednich artykułach omawialiśmy możliwości LLM-ów po stronie klienta i przedstawialiśmy, jak dodać do aplikacji z listą zadań czatbota wykorzystującego WebLLM.
Niektóre nowsze urządzenia są dostarczane z dużymi modelami językowymi i innymi modelami AI. W Chrome proponujemy integrację wbudowanych interfejsów API AI z przeglądarką. Wiele interfejsów API znajduje się na różnych etapach rozwoju. Wiele z tych interfejsów API przechodzi proces standaryzacji, aby witryny mogły korzystać z tej samej implementacji i tego samego modelu w celu osiągnięcia maksymalnej wydajności wnioskowania.
Prompt API to jeden z takich interfejsów AI. Aby z niej korzystać, deweloperzy powinni zarejestrować się w programie wczesnego testowania wersji zapoznawczej. Po zaakceptowaniu otrzymasz instrukcje włączania interfejsu Prompt API w przeglądarkach. Interfejs Prompt API jest dostępny w testowaniu origin rozszerzeń do Chrome, dzięki czemu możesz przetestować ten interfejs API na prawdziwych użytkownikach rozszerzeń.
Dostęp do udostępnionego modelu
Interfejs Prompt API działa podobnie jak WebLLM. Obecnie nie można jednak wybrać modelu (musisz użyć LLM dołączonego do przeglądarki). Po włączeniu wbudowanej AI Chrome pobierze Gemini Nano do przeglądarki. Ten model można następnie udostępniać wielu źródłom i uruchamiać z maksymalną wydajnością. W GitHubie jest problem, w którym deweloper poprosił o dodanie funkcji wyboru modelu.
Konfigurowanie rozmowy
Rozmowę możesz rozpocząć w ten sam sposób, ale Prompt API oferuje też skrótowy zapis składni do określenia promptu systemowego. Rozpocznij sesję modelu językowego, używając metody create()
w usłudze 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)}`,
});
Odpowiedz na pierwsze pytanie
Zamiast obiektu konfiguracji do konfigurowania strumieniowania PromptAPI oferuje 2 oddzielne metody:
prompt()
zwraca pełny ciąg znakówpromptStreaming()
zwraca asynchroniczną iterację. W odróżnieniu od interfejsu WebLLM interfejs Prompt API zwraca pełną odpowiedź w postaci ciągu znaków, dzięki czemu nie musisz samodzielnie łączyć wyników.
Jeśli żadna inna witryna nie wywołała wcześniej pobierania modelu, Twoje pierwsze żądanie może potrwać bardzo długo, ponieważ Gemini Nano jest pobierane do przeglądarki. Jeśli model jest już dostępny, wnioskowanie rozpocznie się natychmiast.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}
Prezentacja
Podsumowanie
Integracja modeli LLM z aplikacjami może znacznie poprawić wrażenia użytkowników. Chociaż usługi w chmurze oferują modele o wyższej jakości i wysoką wydajność wnioskowania niezależnie od urządzenia użytkownika, rozwiązania na urządzeniu, takie jak WebLLM i Prompt API w Chrome, działają w trybie offline, zapewniają większą prywatność i umożliwiają oszczędności w porównaniu z rozwiązaniami w chmurze. Wypróbuj te nowe interfejsy API i uczynij swoje aplikacje internetowe jeszcze mądrzejszymi.