Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
API-интерфейсы помощника по написанию — это экспериментальные веб-API, которые позволяют суммировать, записывать и перезаписывать текст с помощью модели SLM, встроенной в Microsoft Edge из кода JavaScript веб-сайта или расширения браузера.
Вводные сведения об API сводных данных, API записи и API-интерфейсе перезаписи см. в статье Описание API помощника по написанию.
Подробное содержимое:
- Доступность API-интерфейсов помощи в написании
- Альтернативы и преимущества API помощи в написании
- Модель Phi-4-mini
- Включение API-интерфейсов помощника по написанию
- См. рабочие примеры
- Использование API-интерфейсов помощника по написанию
- Обратная связь
- См. также
Доступность API-интерфейсов помощи в написании
Api Summarizer, Writer и Rewriter доступны в предварительной версии для разработчиков на каналах Microsoft Edge Canary или Dev, начиная с версии 138.0.3309.2.
API-интерфейсы помощника по написанию оптимизированы для задач, относящихся к созданию, изменению и суммированию текстового содержимого. Дополнительные сведения об альтернативе для более пользовательских сценариев разработки запросов, которые могут не обслуживаться этими API, см. в статье Запрос встроенной языковой модели с помощью API запроса.
Альтернативы и преимущества API помощи в написании
Чтобы использовать возможности ИИ на веб-сайтах и расширениях браузера, можно также использовать следующие методы:
Отправка сетевых запросов к облачным службам ИИ, таким как решения ИИ Azure.
Запуск локальных моделей ИИ с помощью API веб-нейронной сети (WebNN) или среды выполнения ONNX для Интернета.
API-интерфейсы помощника по написанию используют модель SLM, которая выполняется на том же устройстве, где используются входные данные и выходные данные модели (то есть локально). Это имеет следующие преимущества по сравнению с облачными решениями:
Снижение стоимости: Использование облачной службы ИИ не связано с затратами.
Независимость сети: После начального скачивания модели при запросе модели не возникает задержки в сети, а также может использоваться, когда устройство находится в автономном режиме.
Улучшенная конфиденциальность: Входные данные для модели никогда не покидают устройство и не собираются для обучения моделей ИИ.
API-интерфейсы помощника по написанию используют модель, предоставляемую Microsoft Edge и встроенную в браузер, которая предоставляет дополнительные преимущества по сравнению с пользовательскими локальными решениями, такими как webGPU, WebNN или WebAssembly:
Общие одноразовые затраты: Модель, предоставляемая браузером, загружается при первом вызове API и совместном использовании на всех веб-сайтах, работающих в браузере, что снижает сетевые затраты для пользователя и разработчика.
Упрощенное использование веб-разработчиков: Встроенная модель может быть запущена с помощью простых веб-API и не требует опыта ИИ/ML или сторонних платформ.
Модель Phi-4-mini
API запросов позволяет запрашивать Phi-4-mini — мощную малоязычную модель, которая отличается от текстовых задач, встроенная в Microsoft Edge. Дополнительные сведения о Phi-4-mini и его возможностях см. в карта модели на странице microsoft/Phi-4-mini-instruct.
Заявление об отказе от ответственности
Как и другие языковые модели, семейство моделей Phi потенциально может вести себя несправедливо, ненадежно или оскорбительно. Дополнительные сведения о рекомендациях по ИИ модели см. в статье Рекомендации по ответственному использованию ИИ.
Требования к оборудованию
Предварительная версия API запроса предназначена для работы на устройствах с аппаратными возможностями, которые создают выходные данные SLM с прогнозируемым качеством и задержкой.
Api запросов в настоящее время ограничен следующими:
Операционная система: Windows 10 или 11 и macOS 13.3 или более поздней версии.
Хранение: По крайней мере 20 ГБ доступно на томе, который содержит профиль Edge. Если доступное хранилище будет меньше 10 ГБ, модель будет удалена, чтобы другие функции браузера имели достаточно места для работы.
GPU: 5,5 ГБ виртуальной памяти или больше.
Сеть: Неограниченный план данных или неограниченные подключения. Модель не загружается при использовании лимитного подключения.
Чтобы проверка, поддерживает ли ваше устройство предварительную версию API помощи для записи, см. статью Включение API помощи по написанию ниже и проверка класс производительности вашего устройства.
Из-за экспериментального характера API помощи в написании вы можете столкнуться с проблемами в определенных конфигурациях оборудования. Если вы видите проблемы с определенными конфигурациями оборудования, отправьте отзыв, открыв новую проблему в репозитории MSEdgeExplainers.
Доступность модели
При первом вызове веб-сайта встроенного API ИИ потребуется начальное скачивание модели. Вы можете отслеживать скачивание модели с помощью параметра монитора при создании нового сеанса API сводных данных, модуля записи или перезаписи. Дополнительные сведения см. в разделе Мониторинг хода загрузки модели ниже.
Включение API-интерфейсов помощника по написанию
Чтобы использовать любой из API-интерфейсов помощника по написанию в Microsoft Edge, выполните следующие действия.
Убедитесь, что используется последняя версия Microsoft Edge Canary или Dev (версия 138.0.3309.2 или более поздняя). См . статью Стать участником программы предварительной оценки Microsoft Edge.
В Microsoft Edge Canary или Dev откройте новую вкладку или окно и перейдите по адресу
edge://flags/
.В поле поиска в верхней части страницы:
- Чтобы включить API средства сводных данных, введите API формирования сводных данных для Phi mini.
- Чтобы включить API записи, введите API записи для Phi mini.
- Чтобы включить API перезаписи, введите API перезаписи для Phi mini.
Страница фильтруется для отображения соответствующего флага.
Выберите Включено рядом с флагом API, который вы хотите включить:
При необходимости, чтобы локально регистрировать сведения, которые могут быть полезны при отладке проблем, также включите флаг Включить журналы отладки модели ИИ устройства .
Перезапустите Microsoft Edge Canary или Dev.
Чтобы проверка, соответствует ли ваше устройство требованиям к оборудованию для предварительной версии API помощника по написанию, откройте новую вкладку, перейдите в
edge://on-device-internals
раздел и проверка значение класса производительности устройства.Если ваш класс производительности устройства имеет высокий или более высокий уровень, на вашем устройстве должны поддерживаться API-интерфейсы помощника по написанию. Если вы продолжаете замечать проблемы, сообщите о новой проблеме.
См. рабочие примеры
Чтобы просмотреть API-интерфейсы помощника по написанию в действии и просмотреть существующий код, в котором используются следующие API:
Включите API-интерфейсы помощника по написанию, как описано выше.
В браузере Microsoft Edge Canary или Dev откройте вкладку или окно и перейдите на тестовую площадку API сводных данных.
В области навигации Встроенные игровые площадки ИИ слева:
- На игровой площадке API сводных данных нажмите кнопку Сводные данные.
- На игровой площадке API записи щелкните Запись.
- На тестовой площадке API перезаписи щелкните Перезапись.
В информационном баннере в верхней части проверка состояние: сначала считывается скачивание модели, подождите:
После скачивания модели информационный баннер считывает API и готово к модели, указывая, что API и модель можно использовать:
Если скачивание модели не запускается, перезапустите Microsoft Edge и повторите попытку.
API-интерфейсы помощника по написанию поддерживаются только на устройствах, которые соответствуют определенным требованиям к оборудованию. Дополнительные сведения см. в разделе Требования к оборудованию выше.
При необходимости измените параметры на страницах игровой площадки, например текст для суммирования, записи или перезаписи, а также длину и формат ожидаемых выходных данных.
Нажмите кнопку Суммировать, Записать или Переписать в нижней части страницы.
Выходные данные создаются в разделе ответа страницы:
Чтобы остановить создание ответа, в любое время нажмите кнопку Остановить .
См. также:
- /built-in-ai/ — исходный код и файл сведений для демонстрации встроенных игровых площадок ИИ.
Использование API-интерфейсов помощника по написанию
Три API-интерфейса помощи в написании — сводные, записыватель и перезапись — используются очень аналогично и описаны вместе в разделах ниже.
Проверьте, включены ли API
Прежде чем использовать любой из API помощи в написании в коде веб-сайта, проверка, что API включен, проверив наличие Summarizer
объектов , Writer
или 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.
}
Проверьте, можно ли использовать модель
API-интерфейсы помощника по написанию можно использовать только в том случае, если устройство поддерживает запуск модели и после загрузки языковой модели и среды выполнения модели Microsoft Edge.
Чтобы проверка, можно ли использовать API, используйте метод APIavailability()
. Например, чтобы проверка для доступности модели с помощью 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.
}
Чтобы проверка для доступности модели с помощью API-интерфейсов перезаписи и средства сводных данных, измените Writer
на Rewriter
или Summarizer
в приведенном выше коде.
Создание нового сеанса
Создание сеанса позволяет браузеру загрузить языковую модель в память, чтобы ее можно было использовать. Прежде чем использовать API-интерфейсы помощника по написанию для сводных данных, записи или перезаписи текста, создайте новый сеанс с помощью create()
метода :
// 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();
Чтобы настроить сеанс модели, можно передать параметры в create()
метод:
// Create a Writer session with options.
const session = await Writer.create(options);
Некоторые параметры являются общими для трех API-интерфейсов помощи в написании, в то время как другие параметры отличаются или принимают разные значения. Доступные параметры для КАЖДОГО API перечислены ниже.
Вариант | API средства формирования сводных данных | API записи | API перезаписи |
---|---|---|---|
monitor |
Объект Monitor | Объект Monitor | Объект Monitor |
type |
Строка: "tl;dr" , "key-points" , "teaser" , "headline" |
Не поддерживается | Не поддерживается |
tone |
Не поддерживается | Строка: "formal" , "neutral" , "casual" |
Строка: "as-is" , "more-formal" , "more-casual" |
length |
Строка: "short" , "medium" , "long" |
Строка: "short" , "medium" , "long" |
Строка: "as-is" , "shorter" , "longer" |
format |
Строка: "plain-text" , "markdown" |
Строка: "plain-text" , "markdown" |
Строка: "as-is" , "plain-text" , "markdown" |
Эти параметры описаны ниже.
Мониторинг хода загрузки модели
Ход загрузки модели можно отслеживать с помощью monitor
параметра . Это полезно, если модель еще не была полностью загружена на устройство, где она будет использоваться, чтобы сообщить пользователям вашего веб-сайта, что они должны ждать.
// 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;
}
});
}
});
Установка типа сводки
Параметр type
поддерживается только API сводных данных.
type
Используйте параметр , чтобы попросить языковую модель создать сводку одного из следующих типов:
tl;dr
key-points
teaser
headline
Пример создания сеанса с параметром Summarizer
сводки key-points
type
:
const session = await Summarizer.create({
type: "key-points"
});
Настройка тона созданного текста
Api записи и перезаписи поддерживают этот tone
параметр.
tone
Используйте параметр , чтобы задать тон текста, который будет написан или переписан.
API записи поддерживает следующие значения для tone
параметра:
formal
neutral
casual
API перезаписи поддерживает следующие значения для tone
параметра:
as-is
more-formal
more-casual
Пример создания сеанса Rewriter
с запросом модели на перезапись текста для использования tone
more-formal
:
const session = await Rewriter.create({
tone: "more-formal"
});
Установка длины созданного текста
Параметр length
поддерживается API-интерфейсами сводных данных, модуля записи и перезаписи и используется для управления длиной созданного текста.
API модуля записи и средства сводных данных поддерживают следующие значения:
short
medium
long
API перезаписи поддерживает следующие значения:
as-is
shorter
longer
Пример создания сеанса с запросом Writer
модели на создание текста с length
помощью long
:
const session = await Writer.create({
length: "long"
});
Настройка формата созданного текста
Этот format
параметр поддерживается API-интерфейсами сводных данных, модуля записи и перезаписи и используется для того, чтобы попросить модель создать обычный текст или текст, отформатированный как markdown.
API модуля записи и средства сводных данных поддерживают следующие значения:
plain-text
markdown
API перезаписи поддерживает следующие значения:
as-is
plain-text
markdown
Пример создания сеанса с запросом Rewriter
на то, чтобы модель перезаписывал предоставленный текст, чтобы создать format
markdown
как :
const session = await Rewriter.create({
format: "markdown"
});
Запуск API-интерфейсов помощника по написанию
Чтобы создать текст, используя API-интерфейсы сводных данных, модуля записи или перезаписи, после создания соответствующего сеанса модели используйте следующие методы:
summarizerSession.summarize()
writerSession.write()
rewriterSession.rewrite()
Или, чтобы отобразить сгенерированный текст по мере его создания, используйте версии потоковой передачи указанных выше методов:
summarizerSession.summarizeStreaming()
writerSession.writeStreaming()
rewriterSession.rewriteStreaming()
Ниже описаны две версии этих методов.
Дождитесь создания текста
Чтобы дождаться полного создания текста перед продолжением выполнения кода, используйте summarize()
асинхронные методы , write()
и rewrite()
. Эти методы возвращают обещание, которое разрешается после завершения создания текста соответствующим API.
Пример использования summarize()
асинхронного метода API Summarizer:
// 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);
Отображение маркеров по мере их создания
Чтобы отобразить маркеры по мере их создания, используйте вместо них версии потоковой передачи указанных выше методов. Методы summarizeStreaming()
, writeStreaming()
и rewriteStreaming()
возвращают объект потока сразу же. Используйте возвращаемый объект потока для отображения маркеров ответа по мере их создания.
Пример использования summarizeStreaming()
асинхронного метода API Summarizer:
// 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);
}
Прекращение создания текста
Чтобы остановить создание текста до разрешения или завершения обещания или потока, возвращенного указанными выше методами, используйте AbortController
сигнал:
Пример сеанса с Rewriter
использованием AbortController
сигнала:
// 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();
Для сеанса Summarizer
или Writer
в приведенном выше коде:
- Измените
Rewriter.create()
значение наSummarizer.create()
илиWriter.create()
. - Измените значение с использования
session.rewriteStreaming()
.
Уничтожение сеанса
Уничтожьте сеанс, чтобы сообщить браузеру, что языковая модель больше не нужна, чтобы ее можно было выгрузить из памяти.
Вы можете уничтожить сеанс двумя разными способами:
- С помощью
destroy()
метода . - С помощью
AbortController
.
Уничтожение сеанса с помощью метода destroy()
Метод можно использовать destroy()
с сеансом Summarizer
, Writer
или Rewriter
.
Пример использования сеанса Summarizer
:
const session = await Summarizer.create();
// Later, destroy the session by using the destroy method.
session.destroy();
Уничтожение сеанса с помощью abortController
Кроме того, можно создать AbortController
объект, создать Summarizer
сеанс , Writer
или Rewriter
, а затем вызвать .abort()
Пример использования сеанса Writer
:
// 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();
Отправка отзывов
Мы очень заинтересованы в том, чтобы узнать о диапазоне сценариев, в которых вы планируете использовать API-интерфейсы помощи в написании, о любых проблемах с API или языковыми моделями, а также о том, будут ли полезны новые API для конкретных задач, например для проверки правописания или перевода.
Чтобы отправить отзыв о своих сценариях и задачах, которые вы хотите выполнить, добавьте комментарий к проблеме обратной связи API помощи в написании.
Если вы заметили какие-либо проблемы при использовании API, сообщите об этом в репозитории.
Вы также можете принять участие в обсуждении разработки API-интерфейсов помощи в написании в репозитории рабочей группы веб-машинного обучения W3C.
См. также
- Написание объяснителя API-интерфейсов помощи в репозитории GitHub для веб-машинного обучения.
- Запрос встроенной языковой модели с помощью API запроса.
- /built-in-ai/ — исходный код и файл сведений для демонстрации встроенных игровых площадок ИИ.