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.
Las API de asistencia para escritura son API web experimentales que permiten resumir, escribir y reescribir texto mediante un modelo de lenguaje pequeño (SLM) integrado en Microsoft Edge, a partir del código JavaScript de la extensión del sitio web o del explorador.
Para obtener información introductoria sobre summarizer API, Writer API y Rewriter API, consulte Writing Assistance API Explainer.
Contenido detallado:
- Disponibilidad de las API de asistencia para escritura
- Alternativas y ventajas de las API de asistencia para escritura
- Modelo Phi-4-mini
- Habilitación de las API de asistencia para escritura
- Consulte ejemplos de trabajo
- Uso de las API de asistencia para escritura
- Enviar comentarios
- Ver también
Disponibilidad de las API de asistencia para escritura
Las API Summarizer, Writer y Rewriter están disponibles como versión preliminar para desarrolladores en los canales Canary o Dev de Microsoft Edge, a partir de la versión 138.0.3309.2.
Las API de asistencia para escritura están optimizadas para tareas específicas para generar, modificar y resumir contenido de texto. Para obtener más información sobre una alternativa para escenarios de ingeniería de avisos más personalizados que pueden no ser atendidos por estas API, consulte Preguntar un modelo de lenguaje integrado con prompt API.
Alternativas y ventajas de las API de asistencia para escritura
Para aprovechar las funcionalidades de inteligencia artificial en sitios web y extensiones de explorador, también puede usar los métodos siguientes:
Enviar solicitudes de red a servicios de inteligencia artificial basados en la nube, como soluciones de Azure AI.
Ejecute modelos de inteligencia artificial locales mediante la API de red neuronal web (WebNN) o el entorno de ejecución de ONNX para Web.
Las API de asistencia para escritura usan un modelo de lenguaje pequeño (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 inteligencia artificial en la nube.
Independencia de red: Más allá de la descarga del modelo inicial, no hay latencia de red al solicitar el modelo y también se puede usar cuando el dispositivo está sin conexión.
Privacidad mejorada: La entrada de datos al modelo nunca sale del dispositivo y no se recopila para entrenar modelos de inteligencia artificial.
Las API de asistencia para escritura usan un modelo proporcionado por Microsoft Edge y integrado en el explorador, que incluye las ventajas adicionales sobre las soluciones locales personalizadas, como las basadas en WebGPU, WebNN o WebAssembly:
Costo compartido de una sola vez: El modelo proporcionado por el explorador se descarga la primera vez que se llama a la API y se comparte entre 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 API web sencillas y no requiere experiencia en inteligencia artificial o aprendizaje automático ni el uso de marcos de trabajo de terceros.
Modelo Phi-4-mini
Prompt API le permite solicitar Phi-4-mini, un potente modelo de lenguaje pequeño que destaca en las tareas basadas en texto, integrado en Microsoft Edge. 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 potencialmente de maneras injustas, poco confiables o ofensivas. Para obtener más información sobre las consideraciones de inteligencia artificial del modelo, consulte Consideraciones de IA responsable.
Requisitos de hardware
La versión preliminar del desarrollador de Prompt API está diseñada para funcionar en dispositivos con funcionalidades de hardware que generan salidas SLM con una calidad y latencia predecibles.
La API de aviso está limitada actualmente a:
Sistema operativo: Windows 10 o 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 espacio suficiente para funcionar.
GPU: 5,5 GB de VRAM o más.
Red: Plan de datos ilimitado o conexión sin medidor. El modelo no se descarga si se usa una conexión de uso medido.
Para comprobar si el dispositivo admite la versión preliminar para desarrolladores de las API de asistencia para escritura, consulte Habilitar las API de asistencia para escritura a continuación y comprobar la clase de rendimiento del dispositivo.
Debido a la naturaleza experimental de las API de asistencia para escritura, es posible que observe problemas en configuraciones de hardware específicas. Si ve problemas en configuraciones de hardware específicas, proporcione comentarios abriendo un nuevo problema en el repositorio MSEdgeExplainers.
Disponibilidad del modelo
Se necesitará una descarga inicial del modelo la primera vez que un sitio web llame a una API de inteligencia artificial integrada. Puede supervisar la descarga del modelo mediante la opción de supervisión al crear una nueva sesión de Summarizer, Writer o Rewriter API. Para más información, consulte Supervisión del progreso de la descarga del modelo, a continuación.
Habilitación de las API de asistencia para escritura
Para usar cualquiera de las API de asistencia para escritura en Microsoft Edge:
Asegúrese de que usa la versión más reciente de Microsoft Edge Canary o Dev (versión 138.0.3309.2 o posterior). Consulte Convertirse en un insider de Microsoft Edge.
En Microsoft Edge Canary o Dev, abra una nueva pestaña o ventana y vaya a
edge://flags/
.En el cuadro de búsqueda, en la parte superior de la página:
- Para habilitar summarizer API, escriba Summarizeation API for Phi mini.
- Para habilitar writer API, escriba Writer API for Phi mini.
- Para habilitar rewriter API, escriba Rewriter API for Phi mini.
La página se filtra para mostrar la marca coincidente.
Seleccione Habilitado junto a la marca de la API que desea habilitar:
Opcionalmente, para registrar información localmente que puede ser útil para los problemas de depuración, habilite también la marca Habilitar en los registros de depuración del modelo de IA del dispositivo .
Reinicie Microsoft Edge Canary o Dev.
Para comprobar si el dispositivo cumple los requisitos de hardware de la versión preliminar para desarrolladores de las API de asistencia para escritura, abra una nueva pestaña, vaya a
edge://on-device-internals
y compruebe el valor de clase De rendimiento del dispositivo .Si la clase de rendimiento del dispositivo es alta o mayor, las API de asistencia para escritura deben admitirse en el dispositivo. Si sigue observando problemas, presente un nuevo problema.
Consulte ejemplos de trabajo
Para ver las API de asistencia para escritura en acción y revisar el código existente que usa estas API:
Habilite las API de asistencia para escritura, como se describió anteriormente.
En el explorador Microsoft Edge Canary o Dev, abra una pestaña o ventana y vaya al área de juegos de IA integrada.
En el panel de navegación izquierdo:
- Para la API Summarizer, haga clic en Summarizer.
- En Writer API, haga clic en Escritor.
- En Rewriter API, haga clic en Rewriter.
En el banner de información de la parte superior, compruebe el estado: inicialmente lee Descarga del modelo, espere:
Una vez descargado el modelo, el banner de información lee API y modelo listos, lo que indica que se pueden usar la API y el modelo:
Si no se inicia la descarga del modelo, reinicie Microsoft Edge e inténtelo de nuevo.
Las API de asistencia para escritura solo se admiten en dispositivos que cumplen determinados requisitos de hardware. Para obtener más información, consulte Requisitos de hardware, anteriormente.
Para ejecutar las API, cambie opcionalmente la configuración de las páginas del área de juegos, como el texto para resumir, escribir o reescribir, o la longitud y el formato de la salida esperada.
Haga clic en el botón Resumir, Escribir o Reescribir , en la parte inferior de la página.
La salida se genera en la sección de respuesta de la página.
Haga clic en el botón Detener en cualquier momento para dejar de generar texto:
Para ver el código fuente del área de juegos de las API de asistencia para escritura, consulte el repositorio MicrosoftEdge/Demos en GitHub.
Uso de las API de asistencia para escritura
Las tres API de asistencia para escritura (Summarizer, Writer y Rewriter) se usan de forma muy similar y se documentan juntas en las secciones siguientes.
Comprobación de si las API están habilitadas
Antes de usar cualquiera de las API de asistencia para escritura en el código del sitio web, compruebe que la API está habilitada mediante la prueba de la presencia de los Summarizer
objetos , Writer
o Rewriter
:
if (!Summarizer) {
// The Summarizer API is not available.
}
if (!Writer) {
// The Writer API is not available.
}
if (!Rewriter) {
// The Rewriter API is not available.
}
Comprobación de si se puede usar el modelo
Las API de asistencia para escritura solo se pueden usar si el dispositivo admite la ejecución del modelo y una vez que Microsoft Edge ha descargado el modelo de lenguaje y el entorno de ejecución del modelo.
Para comprobar si se puede usar la API, use el método de la availability()
API. Por ejemplo, para comprobar la disponibilidad del modelo con writer API:
const availability = await Writer.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.
}
Para comprobar la disponibilidad del modelo con las API Rewriter y Summarizer, cambie Writer
a Rewriter
o Summarizer
en el código anterior.
Creación de una nueva sesión
La creación de una sesión indica al explorador que cargue el modelo de lenguaje en la memoria para que se pueda usar. Para poder usar las API de asistencia para escritura para resumir, escribir o reescribir texto, cree una nueva sesión mediante el create()
método :
// Create a Summarizer session.
const summarizerSession = await Summarizer.create();
// Create a Writer session.
const writerSession = await Writer.create();
// Create a Rewriter session.
const rewriterSession = await Rewriter.create();
Para personalizar la sesión del modelo, puede pasar opciones al create()
método :
// Create a Writer session with options.
const session = await Writer.create(options);
Algunas opciones son comunes a las tres API de asistencia para escritura, mientras que otras son diferentes o toman valores diferentes. Las opciones disponibles, por API, se enumeran a continuación:
Opción | Summarizer API | API de escritor | API de reescritura |
---|---|---|---|
monitor |
Supervisar objeto | Supervisar objeto | Supervisar objeto |
type |
Cadena: "tl;dr" , "key-points" , , "teaser" "headline" |
No compatible | No compatible |
tone |
No compatible | Cadena: "formal" , , "neutral" "casual" |
Cadena: "as-is" , , "more-formal" "more-casual" |
length |
Cadena: "short" , , "medium" "long" |
Cadena: "short" , , "medium" "long" |
Cadena: "as-is" , , "shorter" "longer" |
format |
Cadena: "plain-text" , "markdown" |
Cadena: "plain-text" , "markdown" |
Cadena: "as-is" , , "plain-text" "markdown" |
Estas opciones se documentan a continuación.
Supervisión del progreso de la descarga del modelo
Puede seguir el progreso de la descarga del modelo mediante la monitor
opción . Esto resulta útil cuando el modelo aún no se ha descargado por completo en el dispositivo donde se usará, para informar a los usuarios de su sitio web de que deben esperar.
// Create a Summarizer session with the monitor option to monitor the model
// download.
const session = await Summarizer.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;
}
});
}
});
Establecer el tipo de resumen
La type
opción solo es compatible con la API Summarizer. Use la type
opción para pedir al modelo de lenguaje que genere un resumen de uno de los tipos siguientes:
tl;dr
key-points
teaser
headline
Ejemplo de creación de una Summarizer
sesión con la opción de resumen type
de key-points
:
const session = await Summarizer.create({
type: "key-points"
});
Establecer el tono del texto generado
Las API Writer y Rewriter admiten la tone
opción .
Use la tone
opción para establecer el tono del texto que se va a escribir o reescribir.
Writer API admite los siguientes valores para la tone
opción :
formal
neutral
casual
La API Rewriter admite los siguientes valores para la tone
opción :
as-is
more-formal
more-casual
Ejemplo de creación de una Rewriter
sesión, en el que se pide al modelo que vuelva a escribir texto para usar un tone
de more-formal
:
const session = await Rewriter.create({
tone: "more-formal"
});
Establecer la longitud del texto generado
La length
opción es compatible con las API Summarizer, Writer y Rewriter, y se usa para controlar la longitud del texto generado.
Las API Writer y Summarizer admiten los valores siguientes:
short
medium
long
La API Rewriter admite los valores siguientes:
as-is
shorter
longer
Ejemplo de creación de una Writer
sesión, solicitando al modelo que genere texto con length
de long
:
const session = await Writer.create({
length: "long"
});
Establecer el formato del texto generado
La format
opción es compatible con las API Summarizer, Writer y Rewriter, y se usa para pedir al modelo que genere texto sin formato o texto con formato markdown.
Las API Writer y Summarizer admiten los valores siguientes:
plain-text
markdown
La API Rewriter admite los valores siguientes:
as-is
plain-text
markdown
Ejemplo de creación de una Rewriter
sesión, en el que se pide al modelo que vuelva a escribir el texto proporcionado para generar como format
markdown
:
const session = await Rewriter.create({
format: "markdown"
});
Ejecución de las API de asistencia para escritura
Para generar texto, mediante las API Summarizer, Writer o Rewriter, después de crear la sesión de modelo correspondiente, use los métodos siguientes:
summarizerSession.summarize()
writerSession.write()
rewriterSession.rewrite()
O bien, para mostrar el texto generado a medida que se genera, use las versiones de streaming de los métodos anteriores:
summarizerSession.summarizeStreaming()
writerSession.writeStreaming()
rewriterSession.rewriteStreaming()
Las dos versiones de estos métodos se documentan a continuación.
Esperar a que se genere el texto
Para esperar a que el texto se genere por completo antes de seguir ejecutando código, use los summarize()
métodos asincrónicos , write()
y rewrite()
. Estos métodos devuelven una promesa que se resuelve una vez que la API correspondiente ha terminado de generar texto.
Ejemplo de uso del summarize()
método asincrónico de summarizer API:
// Create a Summarizer session.
const summarizerSession = await Summarizer.create();
// Summarize text and wait for the summary to be done.
const summary = await summarizerSession.summarize(textToBeSummarized);
// Use the summary.
console.log(summary);
Mostrar tokens a medida que se generan
Para mostrar los tokens a medida que se generan, use en su lugar las versiones de streaming de los métodos anteriores. Los summarizeStreaming()
métodos , writeStreaming()
y rewriteStreaming()
devuelven un objeto de secuencia de inmediato. Use el objeto de secuencia devuelto para mostrar los tokens de respuesta a medida que se generan.
Ejemplo de uso del summarizeStreaming()
método asincrónico de summarizer API:
// Create a Summarizer session.
const session = await Summarizer.create();
// Ask the model to summarize text.
const stream = session.summarizeStreaming(textToBeSummarized);
// 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);
}
Dejar de generar texto
Para dejar de generar texto antes de que se resuelva o finalice la promesa o la secuencia devuelta por los métodos anteriores, use una AbortController
señal:
Ejemplo de una Rewriter
sesión con una AbortController
señal:
// Create a Rewriter session.
const session = await Rewriter.create();
// Create an AbortController object.
const abortController = new AbortController();
// Use the model session to generate some text and pass the AbortController
// object by using the signal option.
const stream = session.rewriteStreaming(textToBeRewritten, {
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();
Para una Summarizer
sesión o Writer
, en el código anterior:
- Cambie
Rewriter.create()
aSummarizer.create()
oWriter.create()
. - Cambie de usar
session.rewriteStreaming()
.
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.
Puede destruir una sesión de dos maneras diferentes:
- Mediante el
destroy()
método . - Mediante el uso de .
AbortController
Destrucción de una sesión mediante el método destroy()
Puede usar el destroy()
método con una Summarizer
sesión , Writer
o Rewriter
.
Ejemplo de uso de una Summarizer
sesión:
const session = await Summarizer.create();
// Later, destroy the session by using the destroy method.
session.destroy();
Destrucción de una sesión mediante Un abortController
Como alternativa, puede crear un AbortController
objeto, crear una Summarizer
sesión , Writer
o Rewriter
y, a continuación, llamar a abort()
.
Ejemplo de uso de una Writer
sesión:
// Create an AbortController object.
const controller = new AbortController();
// Create a Summarizer, Writer, or Rewriter session and pass the
// AbortController object by using the signal option.
const session = await Writer.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
Estamos muy interesados en conocer la gama de escenarios para los que piensa usar las API de asistencia para escritura, los problemas con las API o los modelos de lenguaje y si las nuevas API, como las API para la revisión, serían útiles.
Para enviar comentarios sobre los escenarios y las tareas que desea lograr, agregue un comentario al problema de comentarios de las API de asistencia para escritura.
Si observa algún problema al usar las API en su lugar, notifíquelo en el repositorio.
También puede contribuir a la discusión sobre el diseño de las API de asistencia para escritura en el repositorio del grupo de trabajo de W3C Web Machine Learning.
Vea también
Explicación de las API de asistencia de escritura en el repositorio de GitHub de Web Machine Learning.