Publicado el 13 de enero de 2025
Este es el último de una serie de tres artículos sobre chatbots basados en LLM. En los artículos anteriores, se analizó el poder de los LLM del cliente y se explicó cómo agregar un chatbot potenciado por WebLLM a una aplicación de lista de tareas.
Algunos dispositivos más nuevos se envían con modelos de lenguaje grandes y otros modelos de IA integrados. Chrome propuso integrar APIs con IA integradas en el navegador, con una variedad 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 basadas en IA. Para usarla, se recomienda a los desarrolladores que se registren en el Programa de versión preliminar anticipada. Una vez que se acepte tu solicitud, 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 compartido al modelo
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 habilitas la IA integrada, Chrome descarga Gemini Nano en el navegador. Luego, este modelo se puede compartir en varios orígenes y ejecuciones con el máximo rendimiento. Hay un problema en GitHub en el que un desarrollador solicitó que se agregue 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()devuelve la cadena completa.promptStreaming()devuelve un iterable asíncrono. A diferencia de WebLLM, la API de Prompt responde con la 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, es posible que tu primera solicitud tarde mucho tiempo mientras se descarga Gemini Nano 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 LLM 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, funcionan 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.