Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La API Prompt es una API web experimental que permite solicitar un modelo de lenguaje pequeño (SLM) integrado en Microsoft Edge, desde el código JavaScript de su sitio web o extensión del explorador. Utilice la API de avisos para generar y analizar texto o crear lógica de aplicación basada en la entrada del usuario, y descubrir formas innovadoras de integrar capacidades de ingeniería de avisos en su aplicación web.
Contenido detallado:
- Disponibilidad de la API Prompt
- Alternativas y ventajas de la API Prompt
- Modelos de lenguaje pequeños integrados en Microsoft Edge
- El modelo Phi-4-mini
- El modelo Aion-1.0-Instruct
- Habilitación de la API de indicación
- Vea un ejemplo práctico
- Uso de la API Prompt
- Enviar comentarios
- Ver también
Disponibilidad de la API Prompt
La API Prompt está disponible como versión preliminar para desarrolladores en los canales Microsoft Edge Canary y Edge Dev, a partir de la versión 138.0.3309.2.
La API Prompt está pensada para ayudar a descubrir casos de uso y comprender los desafíos de los SLM integrados. Se espera que esta API sea sucedida por otras API experimentales para tareas específicas impulsadas por IA, como asistencia para escribir y traducción de texto. Para obtener más información sobre estas otras API, consulte:
- Resumir, escribir y reescribir texto con las API de asistencia de escritura
- Traducir texto con la API de Translator
- Detectar idiomas con la API de detección de idioma
Alternativas y ventajas de la API Prompt
Para aprovechar las capacidades de IA en sitios web y extensiones de explorador, también puede usar los métodos siguientes:
Envíe solicitudes de red a servicios de inteligencia artificial basados en la nube, como las soluciones de IA de Azure.
Ejecute modelos de IA locales mediante la API de red neuronal web (WebNN) o el tiempo de ejecución para web de ONNX.
La API Prompt usa un SLM que se ejecuta en el mismo dispositivo donde se usan las entradas y salidas del modelo (es decir, localmente). Esto tiene las siguientes ventajas en comparación con las soluciones basadas en la nube:
Costo reducido: No hay ningún costo asociado con el uso de un servicio de IA en la nube.
Independencia de la red: Más allá de la descarga inicial del modelo, no hay latencia de red cuando se le solicita el modelo y también se puede usar cuando el dispositivo está sin conexión.
Privacidad mejorada: La entrada de datos al modelo nunca abandona el dispositivo y no se recopila para entrenar modelos de inteligencia artificial.
La API Prompt usa un modelo proporcionado por Microsoft Edge e integrado en el explorador, que ofrece ventajas adicionales sobre las soluciones locales personalizadas, como las basadas en WebGPU, WebNN o WebAssembly:
Costo pago único compartido: El modelo proporcionado por el explorador se descarga la primera vez que se llama a la API y se comparte en todos los sitios web que se ejecutan en el explorador, lo que reduce los costos de red para el usuario y el desarrollador.
Uso simplificado para desarrolladores web: El modelo integrado se puede ejecutar mediante el uso de API web sencillas y no requiere conocimientos de IA/ML ni el uso de marcos de terceros.
Modelos de lenguaje pequeños integrados en Microsoft Edge
En los canales Canary y Dev de Microsoft Edge, a partir de la versión 138.0.3309.2, la API Prompt usa el modelo Phi-4-mini, que está integrado en Microsoft Edge.
A partir de la versión 150.0.4070, la API Prompt también se puede utilizar con el modelo de versión preliminar Aion-1.0-Instruct, que también está integrado en Microsoft Edge. Aion-1.0-Instruct es un modelo más pequeño, más rápido y más eficiente que Phi-4-mini, y es compatible con dispositivos con GPU menos capaces o sin GPU, a través de la inferencia de CPU. Si la clase de rendimiento de su dispositivo no es lo suficientemente alta como para admitir Phi-4-mini, puede probar el modelo de versión preliminar de Aion-1.0-Instruct.
Para obtener más información sobre ambos modelos y cómo habilitar Aion-1.0-Instruct, lea las secciones a continuación.
El modelo Phi-4-mini
La API Prompt le permite solicitar Phi-4-mini, que está integrado en Microsoft Edge. Phi-4-mini es un potente modelo de lenguaje pequeño que sobresale en tareas basadas en texto. Para obtener más información sobre Phi-4-mini y sus capacidades, consulte la tarjeta modelo en microsoft/Phi-4-mini-instruct.
Aviso de declinación de responsabilidades
Al igual que otros modelos de lenguaje, la familia de modelos Phi puede comportarse de manera injusta, poco confiable u ofensiva. Para obtener más información sobre las consideraciones de IA del modelo, consulte Consideraciones de IA responsable.
Requisitos de hardware
La versión preliminar para desarrolladores de la API Prompt está pensada para funcionar en dispositivos con capacidades de hardware que generan salidas SLM con una calidad y latencia predecibles. Actualmente, la API de indicación está limitada a:
Sistema operativo: Windows 10 u 11 y macOS 13.3 o posterior.
Almacenamiento: Al menos 20 GB disponibles en el volumen que contiene el perfil de Edge. Si el almacenamiento disponible cae por debajo de 10 GB, el modelo se eliminará para asegurarse de que otras características del explorador tengan suficiente espacio para funcionar.
GPU: 5,5 GB de VRAM o más.
Red: Plan de datos ilimitado o conexión no medida. El modelo no se descarga si se usa una conexión de uso medido.
Para comprobar si el dispositivo es compatible con la versión preliminar para desarrolladores de la API de solicitudes, consulte Habilitar la API de solicitud a continuación y comprobar la clase de rendimiento del dispositivo.
Debido a la naturaleza experimental de la API Prompt, es posible que observe problemas en configuraciones de hardware específicas. Si ve problemas en configuraciones de hardware específicas, envíe comentarios abriendo un nuevo problema en el repositorio de MSEdgeExplainers.
Disponibilidad del modelo Phi-4-mini
Se requiere una descarga inicial del modelo Phi-4-mini la primera vez que un sitio web llama a una API que requiere un modelo en el dispositivo. Puede monitorear la descarga del modelo Phi-4-mini utilizando la opción de monitor al crear una nueva sesión de Prompt API. Para obtener más información, consulte Supervisar el progreso de la descarga del modelo, a continuación.
El modelo Aion-1.0-Instruct
En Microsoft Edge Canary o Edge Dev, a partir de la versión 150.0.4070, la API Prompt también se puede usar con el modelo de versión preliminar Aion-1.0-Instruct, que está integrado en Microsoft Edge.
Este modelo de instrucción de Aion-1.0 es significativamente más pequeño, más rápido y más eficiente que Phi-4-mini, y es compatible con dispositivos con GPU menos capaces o sin GPU, a través de la inferencia de CPU.
Se espera que Aion-1.0-Instruct esté disponible como modelo de código abierto en julio de 2026.
Habilite Aion-1.0-Instruct para la API del símbolo del sistema
De forma predeterminada, la API Prompt utiliza el modelo Phi-4-mini. Para utilizar Aion-1.0-Instruct en Microsoft Edge Canary o Edge Dev, habilite la marca Habilitar modelo de idioma en el dispositivo de versión preliminar, como se describe en los pasos siguientes. Cuando esta marca está habilitada, Aion-1.0-Instruct anula Phi-4-mini como el modelo predeterminado para la API Prompt.
Asegúrese de que usa la versión más reciente de Edge Canary o Edge Dev (versión 150.0.4070 o posterior). Consulta Conviértete en un participante de Microsoft Edge Insider.
En Edge Canary o Edge Dev, abre una nueva pestaña o ventana y ve a
edge://flags.En el cuadro de búsqueda de la parte superior de la página, escriba Habilitar el modelo de idioma en el dispositivo de la versión preliminar.
En la lista desplegable Habilitar el modelo de idioma en el dispositivo de la versión preliminar, seleccione Habilitado y, a continuación, haga clic en el botón Reiniciar :
Para comprobar que Aion-1.0-Instruct se está utilizando como modelo de idioma en el dispositivo, vaya a
edge://on-device-internals, haga clic en Estado del modelo y compruebe que Nombre del modelo está establecido en Aion-1.0-Instruct.
Aviso de declinación de responsabilidades
El modelo Aion-1.0-Instruct está disponible en Microsoft Edge para las primeras pruebas y comentarios de los desarrolladores. Además de las consideraciones sobre la IA responsable enumeradas anteriormente, tenga en cuenta que, dado su estado de versión preliminar, los comportamientos y las capacidades del modelo están sujetos a cambios.
Disponibilidad del modelo Aion-1.0-Instruct
Se requiere una descarga inicial del modelo Aion-1.0-Instruct la primera vez que un sitio web llama a una API que requiere un modelo en el dispositivo. Puede supervisar la descarga del modelo Aion-1.0-Instruct mediante la opción monitor al crear una nueva sesión de Prompt API. Para obtener más información, consulte Supervisar el progreso de la descarga del modelo, a continuación.
Habilitación de la API de indicación
Para usar la API Prompt en Microsoft Edge:
Asegúrese de que usa la versión más reciente de Microsoft Edge Canary o Edge Dev (versión 138.0.3309.2 o posterior). Consulta Conviértete en un participante de Microsoft Edge Insider.
En Edge Canary o Edge Dev, abre una nueva pestaña o ventana y ve a
edge://flags/.En el cuadro de búsqueda, en la parte superior de la página, escriba Prompt API para el modelo de idioma en el dispositivo.
La página se filtra para mostrar la bandera coincidente.
En API de solicitud para el modelo de idioma en el dispositivo, seleccione Habilitado:
Opcionalmente, para registrar localmente la información que puede ser útil para la depuración de problemas, habilite también la marca Habilitar registros de depuración del modelo de IA en el dispositivo .
Reinicie Edge Canary o Edge Dev.
Para comprobar si el dispositivo cumple los requisitos de hardware para la versión preliminar para desarrolladores de la API de solicitudes, abra una nueva pestaña, vaya a
edge://on-device-internalsy compruebe el valor de clase de rendimiento del dispositivo .Si la clase de rendimiento del dispositivo es Alta o superior, se debería admitir la API de aviso en el dispositivo.
Si la clase de rendimiento del dispositivo es Media o Baja, la API Prompt solo se admite a través del modelo de versión preliminar Aion-1.0-Instruct, que está disponible a partir de la versión de Edge 150.0.4070. Para probar el modelo Aion-1.0-Instruct, consulte Habilitar Aion-1.0-Instruct para la API Prompt, más arriba.
Si observa problemas con estos modelos, cree un nuevo problema en el repositorio MSEdgeExplainers.
Vea un ejemplo práctico
Para ver la API de aviso en acción y revisar el código existente que usa la API:
Habilite la API Prompt, como se describe anteriormente.
En Edge Canary o Edge Dev, abra una pestaña o ventana y vaya al área de juegos de la API de indicaciones.
En la navegación de Áreas de juegos de IA integrada de la izquierda, se selecciona Preguntar .
En el banner de información en la parte superior, verifique el estado: inicialmente dice Descarga de modelos, espere:
Una vez descargado el modelo, el banner informativo indica API y modelo listos, lo que indica que se pueden usar la API y el modelo:
Si la descarga del modelo no comienza, reinicia Microsoft Edge y vuelve a intentarlo.
La API Prompt solo se admite en dispositivos que cumplan determinados requisitos de hardware. Para obtener más información, consulta Requisitos de hardware más arriba.
Opcionalmente, puede cambiar los valores de la configuración de indicaciones, como:
- Solicitud de usuario
- Solicitud del sistema
- Esquema de restricción de respuesta
- Más opciones de configuración>Instrucciones de solicitud de disparo N
Haga clic en el botón Preguntar , en la parte inferior de la página.
La respuesta se genera en la sección de respuestas de la página:
Para dejar de generar la respuesta, en cualquier momento, haga clic en el botón Detener .
Vea también:
- /built-in-ai/ : código fuente y léame de áreas de juego de IA integradas, incluido el área de juegos de la API de indicaciones.
Uso de la API Prompt
Compruebe si la API está habilitada
Antes de usar la API en el código de tu sitio web o extensión, comprueba que la API está habilitada probando la LanguageModel presencia del objeto:
if (!LanguageModel) {
// The Prompt API is not available.
} else {
// The Prompt API is available.
}
Compruebe si el modelo se puede utilizar
La API Prompt solo se puede usar si el dispositivo admite la ejecución del modelo y una vez que Microsoft Edge haya descargado el modelo de lenguaje y el tiempo de ejecución del modelo.
Para comprobar si se puede usar la API, use el LanguageModel.availability() método:
const availability = await LanguageModel.availability();
if (availability == "unavailable") {
// The model is not available.
}
if (availability == "downloadable" || availability == "downloading") {
// The model can be used, but it needs to be downloaded first.
}
if (availability == "available") {
// The model is available and can be used.
}
Crear una sesión nueva
Al crear una sesión, se indica al explorador que cargue el modelo de lenguaje en la memoria para que se pueda usar. Antes de que pueda solicitar el modelo de lenguaje, cree una nueva sesión mediante el create() método:
// Create a LanguageModel session.
const session = await LanguageModel.create();
Para personalizar la sesión del modelo, puede pasar opciones al create() método:
// Create a LanguageModel session with options.
const session = await LanguageModel.create(options);
Las opciones disponibles son:
monitor, para seguir el progreso de la descarga del modelo.initialPrompts, para proporcionar al modelo contexto sobre las indicaciones que se enviarán al modelo y para establecer un patrón de interacciones usuario/asistente que el modelo debe seguir para futuras indicaciones.
Estas opciones se documentan a continuación.
Supervisar el progreso de la descarga del modelo
Puede seguir el progreso de la descarga del modelo mediante la monitor opción. Esto es útil cuando el modelo aún no se ha descargado completamente en el dispositivo donde se usará, para informar a los usuarios de su sitio web que deben esperar.
// Create a LanguageModel session with the monitor option to monitor the model
// download.
const session = await LanguageModel.create({
monitor: m => {
// Use the monitor object argument to add an listener for the
// downloadprogress event.
m.addEventListener("downloadprogress", event => {
// The event is an object with the loaded and total properties.
if (event.loaded == event.total) {
// The model is fully downloaded.
} else {
// The model is still downloading.
const percentageComplete = (event.loaded / event.total) * 100;
}
});
}
});
Proporcione al modelo una solicitud del sistema
Para definir una consulta del sistema, que es una forma de dar al modelo las instrucciones que se deben usar al generar texto en respuesta a una indicación, use la initialPrompts opción.
La indicación del sistema que proporcionas al crear una nueva sesión se conserva durante toda la existencia de la sesión, incluso si la ventana de contexto se desborda debido a demasiadas indicaciones.
// Create a LanguageModel session with a system prompt.
const session = await LanguageModel.create({
initialPrompts: [{
role: "system",
content: "You are a helpful assistant."
}]
});
Si coloca la { role: "system", content: "You are a helpful assistant." } indicación en initialPrompts cualquier lugar que no sea en la posición 0, rechazará con un TypeError.
Solicitud de N-shot con initialPrompts
La initialPrompts opción también le permite proporcionar ejemplos de interacciones usuario/asistente que desea que el modelo siga usando cuando se le solicite.
Esta técnica también se conoce como solicitud de disparo N y es útil para hacer que las respuestas generadas por el modelo sean más deterministas.
// Create a LanguageModel session with multiple initial prompts, for N-shot
// prompting.
const session = await LanguageModel.create({
initialPrompts: [
{ role: "system", content: "Classify the following product reviews as either OK or Not OK." },
{ role: "user", content: "Great shoes! I was surprised at how comfortable these boots are for the price. They fit well and are very lightweight." },
{ role: "assistant", content: "OK" },
{ role: "user", content: "Terrible product. The manufacturer must be completely incompetent." },
{ role: "assistant", content: "Not OK" },
{ role: "user", content: "Could be better. Nice quality overall, but for the price I was expecting something more waterproof" },
{ role: "assistant", content: "OK" }
]
});
Clone una sesión para volver a iniciar la conversación con las mismas opciones
Clone una sesión existente para solicitar el modelo sin el conocimiento de las interacciones anteriores, pero con las mismas opciones de sesión.
La clonación de una sesión es útil cuando se desean usar las opciones de una sesión anterior pero sin influir en el modelo con respuestas anteriores.
// Create a first LanguageModel session.
const firstSession = await LanguageModel.create({
initialPrompts: [
role: "system",
content: "You are a helpful assistant."
]
});
// Later, create a new session by cloning the first session to start a new
// conversation with the model, but preserve the first session's settings.
const secondSession = await firstSession.clone();
Solicitar al modelo
Para solicitar el modelo, después de haber creado una sesión de modelo, use los session.prompt() métodos o session.promptStreaming() .
Espere la respuesta final
El prompt método devuelve una promesa que se resuelve una vez que el modelo ha terminado de generar texto en respuesta a la solicitud:
// Create a LanguageModel session.
const session = await LanguageModel.create();
// Prompt the model and wait for the response to be generated.
const result = await session.prompt(promptString);
// Use the generated text.
console.log(result);
Mostrar tokens a medida que se generan
El promptStreaming método devuelve un objeto de secuencia de inmediato. Use la secuencia para mostrar los tokens de respuesta a medida que se generan:
// Create a LanguageModel session.
const session = await LanguageModel.create();
// Prompt the model.
const stream = session.promptStreaming(myPromptString);
// Use the stream object to display tokens that are generated by the model, as
// they are being generated.
for await (const chunk of stream) {
console.log(chunk);
}
Puede llamar a los prompt métodos and promptStreaming varias veces dentro del mismo objeto de sesión para seguir generando texto basado en interacciones anteriores con el modelo dentro de esa sesión.
Restrinja la salida del modelo mediante un esquema JSON o una expresión regular
Para que el formato de las respuestas del modelo sea más determinista y fácil de usar en modo programático, use la responseConstraint opción cuando se le solicite al modelo.
La responseConstraint opción acepta un esquema JSON o una expresión regular:
Para que el modelo responda con un objeto JSON stringified que sigue un esquema determinado, establezca
responseConstraintel esquema JSON que quiera usar.Para que el modelo responda con una cadena que coincida con una expresión regular, establezca
responseConstraintesa expresión regular.
En el ejemplo siguiente se muestra cómo hacer que el modelo responda a una solicitud con un objeto JSON que sigue un esquema determinado:
// Create a LanguageModel session.
const session = await LanguageModel.create();
// Define a JSON schema for the Prompt API to constrain the generated response.
const schema = {
"type": "object",
"required": ["sentiment", "confidence"],
"additionalProperties": false,
"properties": {
"sentiment": {
"type": "string",
"enum": ["positive", "negative", "neutral"],
"description": "The sentiment classification of the input text."
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "A confidence score indicating certainty of the sentiment classification."
}
}
}
;
// Prompt the model, by providing a system prompt and the JSON schema in the
// responseConstraints option.
const response = await session.prompt(
"Ordered a Philly cheesesteak, and it was not edible. Their milkshake is just milk with cheap syrup. Horrible place!",
{
initialPrompts: [
{
role: "system",
content: "You are an AI model designed to analyze the sentiment of user-provided text. Your goal is to classify the sentiment into predefined categories and provide a confidence score. Follow these guidelines:\n\n- Identify whether the sentiment is positive, negative, or neutral.\n- Provide a confidence score (0-1) reflecting the certainty of the classification.\n- Ensure the sentiment classification is contextually accurate.\n- If the sentiment is unclear or highly ambiguous, default to neutral.\n\nYour responses should be structured and concise, adhering to the defined output schema."
},
],
responseConstraint: schema
}
);
La ejecución del código anterior devuelve una respuesta que contiene un objeto JSON stringificado como:
{"sentiment": "negative", "confidence": 0.95}
A continuación, puede usar la respuesta en la lógica del código analizándola mediante la JSON.parse() función:
// Parse the JSON string generated by the model and extract the sentiment and
// confidence values.
const { sentiment, confidence } = JSON.parse(response);
// Use the values.
console.log(`Sentiment: ${sentiment}`);
console.log(`Confidence: ${confidence}`);
Enviar varios mensajes por indicación
Además de cadenas, los prompt métodos and promptStreaming también aceptan una matriz de objetos que se usa para enviar múltiples mensajes con roles personalizados. Los objetos que envíe deben tener el formato { role, content }, donde role está o assistantuser , y content es el mensaje.
Por ejemplo, para proporcionar varios mensajes de usuario y un mensaje de asistente en el mismo mensaje:
// Create a LanguageModel session.
const session = await LanguageModel.create();
// Prompt the model by sending multiple messages at once.
const result = await session.prompt([
{ role: "user", content: "First user message" },
{ role: "user", content: "Second user message" },
{ role: "assistant", content: "The assistant message" }
]);
Dejar de generar texto
Para anular una solicitud antes de que se haya resuelto la promesa devuelta por session.prompt() o antes de que finalice la secuencia devuelta session.promptStreaming() , use una AbortController señal:
// Create a LanguageModel session.
const session = await LanguageModel.create();
// Create an AbortController object.
const abortController = new AbortController();
// Prompt the model by passing the AbortController object by using the signal
// option.
const stream = session.promptStreaming(myPromptString , {
signal: abortController.signal
});
// Later, perhaps when the user presses a "Stop" button, call the abort()
// method on the AbortController object to stop generating text.
abortController.abort();
Destruir una sesión
Destruya la sesión para que el explorador sepa que ya no necesita el modelo de lenguaje, de modo que el modelo se pueda descargar de la memoria.
Puedes destruir una sesión de dos maneras distintas:
- Mediante el
destroy()método. - Al usar un
AbortControllercomando .
Destruir una sesión mediante el método destroy()
// Create a LanguageModel session.
const session = await LanguageModel.create();
// Later, destroy the session by using the destroy method.
session.destroy();
Destruir una sesión con un AbortController
// Create an AbortController object.
const controller = new AbortController();
// Create a LanguageModel session and pass the AbortController object by using
// the signal option.
const session = await LanguageModel.create({ signal: controller.signal });
// Later, perhaps when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();
Enviar comentarios
La versión preliminar para desarrolladores de la API de indicaciones está pensada para ayudar a descubrir casos de uso para los modelos de lenguaje proporcionados por el explorador.
Nos interesa obtener información sobre:
- La gama de escenarios para los que piensa usar la API Prompt.
- Cualquier problema con la API Prompt.
- Cualquier problema con los modelos de lenguaje.
- Si serían útiles nuevas API específicas de tareas.
Para enviar comentarios sobre los escenarios y las tareas que desea realizar, agregue un comentario al problema de comentarios de la API de aviso.
Si observa algún problema al usar la API en su lugar, infórmelo en el repositorio.
También puede contribuir a la discusión sobre el diseño de la API Prompt en el repositorio del W3C Web Machine Learning Working Group.
Vea también
- Especificación de borrador de API de solicitud
- webmachinelearning/prompt-api Repositorio de GitHub
- Escribir, reescribir y resumir texto con las API de asistencia de escritura
- Corregir errores gramaticales, ortográficos y de puntuación en texto con la API Proofreader
- Traducir texto con la API de Translator
- /built-in-ai/ : código fuente y léame de áreas de juego de IA integradas, incluido el área de juegos de la API de indicaciones.