Publicado el 13 de enero de 2025
Esta es la última de una serie de tres partes sobre los chatbots de LLM. En los artículos anteriores, se analizó el poder de los LLM del cliente y se explicó cómo agregar un chatbot con tecnología de WebLLM a una aplicación de lista de tareas pendientes.
Algunos dispositivos más nuevos se envían con modelos grandes de lenguaje y otros modelos de IA directamente en el dispositivo. Chrome propuso integrar APIs de IA integradas en el navegador, con un número de APIs en diferentes etapas de desarrollo. Muchas de estas APIs están pasando por el proceso de estándares, de modo que los sitios web puedan usar la misma implementación y el mismo modelo para lograr el máximo rendimiento de inferencia.
La API de Prompt es una de esas APIs de IA. Para usarla, se recomienda a los desarrolladores que se registren en el Programa de versión preliminar. Una vez que se acepte, recibirás instrucciones para habilitar la API de Prompt en los navegadores. La API de Prompt está disponible en una prueba de origen para las extensiones de Chrome, por lo que puedes probar esta API para usuarios reales de extensiones.
Acceso al modelo compartido
La API de Prompt se comporta de manera similar a WebLLM. Sin embargo, esta vez no hay selección de modelos (debes usar el LLM que se incluye con el navegador). Cuando se habilita la IA integrada, Chrome descarga un modelo de base en el navegador. Luego, este modelo se puede compartir en varios orígenes y se ejecuta con el máximo rendimiento. Hay un problema de GitHub en el que un desarrollador solicitó agregar una función de selección de modelos.
Configura la conversación
Puedes iniciar la conversación de mensajes de la misma manera, pero la API de Prompt también ofrece una sintaxis abreviada para especificar la instrucción del sistema. Inicia la sesión del modelo de lenguaje con el método create() en la interfaz LanguageModel:
const session = await LanguageModel.create({
initialPrompt: [
{
type: 'system',
content: `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)}`,
},
],
});
Responde tu primera pregunta
En lugar de tener un objeto de configuración para configurar la transmisión, la API de Prompt ofrece dos métodos separados:
prompt()muestra la cadena completa.promptStreaming()muestra un iterable asíncrono. A diferencia de WebLLM, la API de Prompt responde con la respuesta de cadena completa, por lo que no tienes que combinar los resultados por tu cuenta.
Si ningún otro origen activó la descarga del modelo antes, tu primera solicitud puede tardar mucho tiempo mientras el modelo se descarga en tu navegador. Si el modelo ya está disponible, la inferencia comienza de inmediato.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}

Demostración
Resumen
La integración de LLMs en las aplicaciones puede mejorar significativamente la experiencia del usuario. Si bien los servicios en la nube ofrecen modelos de mayor calidad y un alto rendimiento de inferencia, independientemente del dispositivo del usuario, las soluciones integradas en el dispositivo, como WebLLM y la API de Prompt de Chrome, son compatibles sin conexión, mejoran la privacidad y ahorran costos en comparación con las alternativas basadas en la nube. Prueba estas nuevas APIs y haz que tus aplicaciones web sean más inteligentes.