Опубликовано: 13 января 2024 г.
Это последняя серия из трех статей о чат-ботах LLM. В предыдущих статьях обсуждались возможности клиентских LLM и рассказывалось, как добавить чат-бота на базе WebLLM в приложение списка дел .
Некоторые новые устройства поставляются с большим текстом и другими моделями искусственного интеллекта прямо на устройстве. Chrome предложил интегрировать в браузер встроенные API-интерфейсы искусственного интеллекта , причем ряд API-интерфейсов находится на разных стадиях разработки. Многие из этих API проходят процедуру стандартизации, поэтому веб-сайты могут использовать одну и ту же реализацию и модель для достижения максимальной производительности вывода.
Prompt API — один из таких AI API. Чтобы использовать его, разработчикам рекомендуется подписаться на программу ранней предварительной версии . После принятия вы получите инструкции о том, как включить Prompt API в браузерах. Prompt API доступен в пробной версии Origin для расширений Chrome , поэтому вы можете протестировать этот API для реальных пользователей расширений.
Общий доступ к модели
Prompt API ведет себя аналогично WebLLM. Однако на этот раз выбора модели нет (вам придется использовать LLM, поставляемый с браузером). При включении встроенного искусственного интеллекта Chrome загружает Gemini Nano в браузер. Эту модель затем можно использовать в нескольких источниках и запускать с максимальной производительностью. Возникла проблема на GitHub , из-за которой разработчик попросил добавить функцию выбора модели.
Настроить разговор
Вы можете начать диалог сообщения точно таким же способом, но API подсказок также предлагает сокращенный синтаксис для указания системного приглашения. Запустите сеанс языковой модели, используя метод create()
свойства 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)}`,
});
Ответьте на свой первый вопрос
Вместо объекта конфигурации для настройки потоковой передачи Prompt API предлагает два отдельных метода:
-
prompt()
возвращает полную строку -
promptStreaming()
возвращает асинхронную итерацию. В отличие от WebLLM, Prompt API отвечает полным строковым ответом, поэтому вам не придется объединять результаты самостоятельно.
Если ни один другой источник ранее не запускал загрузку модели, ваш первый запрос может занять очень много времени, пока Gemini Nano загружается в ваш браузер. Если модель уже доступна, вывод начинается немедленно.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}
Демо
Краткое содержание
Интеграция LLM в приложения может значительно улучшить взаимодействие с пользователем. В то время как облачные сервисы предлагают модели более высокого качества и высокую производительность вывода независимо от устройства пользователя, решения на устройстве, такие как WebLLM и Prompt API Chrome, поддерживают работу в автономном режиме, улучшают конфиденциальность и экономят затраты по сравнению с облачными альтернативами. Попробуйте эти новые API и сделайте свои веб-приложения умнее.