Publicado em 13 de janeiro de 2024
Este é o último artigo de uma série de três partes sobre chatbots LLM. Os artigos anteriores discutiram o poder dos LLMs do lado do cliente e mostraram como adicionar um chatbot com tecnologia de WebLLM a um aplicativo de lista de tarefas.
Alguns dispositivos mais recentes vêm com modelos de linguagem grandes e outros modelos de IA no dispositivo. O Chrome propôs a integração de APIs de IA integradas ao navegador, com um número de APIs em diferentes estágios de desenvolvimento. Muitas dessas APIs estão passando pelo processo de padronização para que os sites possam usar a mesma implementação e modelo para alcançar o desempenho máximo de inferência.
A API Prompt é uma delas. Para usá-lo, os desenvolvedores precisam se inscrever no programa de prévia antecipada. Depois da aceitação, você vai receber instruções sobre como ativar a API Prompt nos navegadores. A API Prompt está disponível em um teste de origem para extensões do Chrome, para que você possa testar essa API para usuários reais de extensões.
Acesso compartilhado ao modelo
A API Prompt se comporta de maneira semelhante ao WebLLM. No entanto, não há seleção de modelo dessa vez (é necessário usar o LLM que vem com o navegador). Ao ativar a IA integrada, o Chrome faz o download do Gemini Nano no navegador. Esse modelo pode ser compartilhado em várias origens e executado com desempenho máximo. Há um problema no GitHub em que um desenvolvedor pediu para adicionar um recurso de seleção de modelo.
Configurar a conversa
É possível iniciar a conversa de mensagem da mesma forma, mas a API Prompt também oferece uma sintaxe abreviada para especificar a solicitação do sistema. Inicie a sessão do modelo de linguagem usando o método create()
na propriedade
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)}`,
});
Responda à primeira pergunta
Em vez de ter um objeto de configuração para configurar o streaming, a API Prompt oferece dois métodos separados:
prompt()
retorna a string completa.promptStreaming()
retorna um iterável assíncrono. Ao contrário do WebLLM, a API Prompt responde com a resposta completa da string, para que você não precise combinar os resultados.
Se nenhuma outra origem tiver acionado o download do modelo antes, a primeira solicitação pode levar muito tempo enquanto o Gemini Nano é transferido para o navegador. Se o modelo já estiver disponível, a inferência vai começar imediatamente.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}
Demonstração
Resumo
A integração de LLMs a aplicativos pode melhorar significativamente a experiência do usuário. Embora os serviços em nuvem ofereçam modelos de maior qualidade e alto desempenho de inferência, independentemente do dispositivo do usuário, as soluções no dispositivo, como o WebLLM e a API Prompt do Chrome, são compatíveis com o modo off-line, melhoram a privacidade e economizam custos em comparação com as alternativas baseadas na nuvem. Teste essas novas APIs e torne seus aplicativos da Web mais inteligentes.