API писателя

Опубликовано: 20 мая 2025 г.

Объяснитель Веб Расширения Статус Chrome Намерение
GitHub Пробный запуск Пробный запуск Пробный запуск Пробный запуск Вид Намерение экспериментировать

API Writer помогает создавать новый контент, соответствующий конкретной задаче. API Writer и API Rewriter входят в состав предложения Writing Assistance API .

Эти партнерские API могут помочь вам улучшить контент, создаваемый пользователями.

Варианты использования

Напишите новый контент, основанный на вашей первоначальной идее и, возможно, на контексте. Это можно использовать для:

  • Пользователи службы поддержки пишут любой контент, например, обзоры, записи в блогах или электронные письма.
  • Помогите пользователям лучше писать запросы в службу поддержки.
  • Составьте введение для серии примеров работ, чтобы лучше отразить определенные навыки.

Не нашли свой вариант использования? Присоединяйтесь к программе раннего ознакомления и поделитесь своим мнением.

Начать

Присоединяйтесь к пробной версии API Writer, работающей в Chrome 137–142.

Ознакомьтесь с требованиями к оборудованию

Для разработчиков и пользователей, использующих эти API в Chrome, действуют следующие требования. Требования к работе других браузеров могут отличаться.

API определения языка и переводчика работают в Chrome на десктопе. Эти API не работают на мобильных устройствах. API Prompt, API Summarizer, API Writer и API Rewriter работают в Chrome при соблюдении следующих условий:

  • Операционная система : Windows 10 или 11; macOS 13+ (Ventura и выше); или Linux. Chrome для Android, iOS и ChromeOS пока не поддерживаются API, использующими Gemini Nano.
  • Хранилище : не менее 22 ГБ на томе, содержащем ваш профиль Chrome.
  • Видеокарта : строго более 4 ГБ видеопамяти.
  • Сеть : Безлимитные данные или безлимитное соединение.

Точный размер Gemini Nano может незначительно отличаться. Чтобы узнать текущий размер, посетите chrome://on-device-internals и перейдите в раздел «Статус модели» . Откройте указанный путь к файлу , чтобы определить размер модели.

Зарегистрируйтесь для участия в пробной версии Origin

API Writer доступен в совместной пробной версии с API Rewriter. Чтобы начать использовать эти API:

  1. Ознакомьтесь с Политикой Google в отношении запрещенного использования генеративного ИИ .
  2. Перейти к пробной версии API Writer .
  3. Нажмите «Зарегистрироваться» и заполните форму. В поле «Веб-источник» укажите идентификатор вашего источника или расширения chrome-extension://YOUR_EXTENSION_ID .
  4. Чтобы отправить, нажмите кнопку «Зарегистрироваться» .
  5. Скопируйте предоставленный токен и добавьте его на каждую участвующую веб-страницу вашего источника или включите его в манифест расширения .
  6. Начните использовать API Writer и Rewriter.

Узнайте больше о том, как начать работу с испытаниями Origin .

Добавить поддержку localhost

Чтобы получить доступ к API Writer и Rewriter на локальном хосте во время пробного периода, необходимо обновить Chrome до последней версии. Затем выполните следующие действия:

  1. Перейдите по адресу chrome://flags/#writer-api-for-gemini-nano .
  2. Выберите Включено .
  3. Нажмите «Перезапустить» или перезапустите Chrome.

Используйте API Writer

Сначала запустите обнаружение функций, чтобы узнать, поддерживает ли браузер эти API.

if ('Writer' in self) {
  // The Writer API is supported.
}

API Writer и все остальные встроенные API ИИ интегрированы в браузер. Gemini Nano загружается отдельно при первом использовании веб-сайтом встроенного API ИИ. На практике, если пользователь уже взаимодействовал со встроенным API, он загружает модель в свой браузер.

Чтобы определить, готова ли модель к использованию, вызовите асинхронную функцию Writer.availability() . Она возвращает строку, которая может принимать четыре возможных значения:

  • unavailable : Браузер поддерживает API Writer, но в данный момент его невозможно использовать. Это может быть связано с рядом причин, например, с нехваткой места на диске для загрузки модели.
  • available : браузер поддерживает API Writer, и его можно использовать сразу же.
  • downloadable : браузер поддерживает API Writer, но сначала необходимо загрузить модель.
  • downloading : Браузер поддерживает API Writer и в данный момент загружает модель.

Чтобы инициировать загрузку модели и запустить процесс записи, вызовите функцию Writer.create() . Если ответ на availability()downloadable , отслеживайте ход загрузки и сообщайте об этом пользователю, так как загрузка может занять некоторое время.

const writer = await Writer.create({
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API-функции

Функция create() позволяет настроить новый объект Writer. Она принимает необязательный объект options со следующими параметрами:

  • tone : Тон письма может определять стиль, характер или отношение к содержанию. Возможные значения: formal , neutral (по умолчанию) или casual .
  • format : Форматирование вывода с допустимыми значениями markdown (по умолчанию) и plain-text .
  • length : длина выходных данных, допустимые значения: short , medium (по умолчанию) и long .
  • sharedContext : при создании нескольких выходных данных общий контекст может помочь модели создавать контент, лучше соответствующий вашим ожиданиям.

В следующем примере показано, как инициировать объект- writer :

const options = {
  sharedContext: 'This is an email to acquaintances about an upcoming event.',
  tone: 'casual',
  format: 'plain-text',
  length: 'medium',
};

const available = await Writer.availability();
let writer;
if (available === 'unavailable') {
  // The Writer API isn't usable.
  return;
}
if (available === 'available') {
  // The Writer API can be used immediately .
  writer = await Writer.create(options);
} else {
  // The Writer can be used after the model is downloaded.
  const writer = await Writer.create({
    ...options,
    monitor(m) {
      m.addEventListener("downloadprogress", e => {
        console.log(`Downloaded ${e.loaded * 100}%`);
      });
    }
  });
}

Начать писать

Существует два способа вывода записей из модели: непотоковой и потоковый.

Непотоковый вывод

При непотоковой записи модель обрабатывает входные данные как единое целое, а затем выдает выходные данные.

Чтобы получить непоточный вывод, вызовите асинхронную функцию write() . Необходимо включить запрос на вывод содержимого, которое вы хотите записать. Вы можете добавить необязательный context для предоставления справочной информации о модели, что может помочь модели лучше соответствовать вашим ожиданиям относительно вывода.

// Non-streaming
const writer = await Writer.create();
const result = await writer.write(
  "An inquiry to my bank about how to enable wire transfers on my account.", {
    context: "I'm a longstanding customer",
  },
);

Потоковая запись вывода

Потоковая передача данных позволяет получать результаты в режиме реального времени. Выходные данные обновляются непрерывно по мере добавления и корректировки входных данных.

Чтобы получить потоковый редактор, вызовите функцию writeStreaming() и переберите доступные сегменты текста в потоке. Вы можете добавить необязательный context , чтобы предоставить информацию о модели, что может помочь модели лучше соответствовать вашим ожиданиям относительно выходных данных.

// Streaming
const writer = await Writer.create();
const stream = writer.writeStreaming(
  "An inquiry to my bank about how to enable wire transfers on my account.", {
    context: "I'm a longstanding customer",
  },
);
for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

Поделиться контекстом для нескольких задач

Возможно, вам понадобится использовать writer для создания нескольких фрагментов контента. В этом случае полезно добавить sharedContext . Например, вы можете помочь рецензентам давать более качественные отзывы в комментариях.

// Shared context and per writing task context
const writer = await Writer.create({
sharedContext: "This is for publishing on [popular website name], a business and employment-focused social media platform."
});

const stream = writer.writeStreaming(
  "Write a blog post about how I love all this work on gen AI at Google!" +
  "Mention that there's so much to learn and so many new things I can do!",
  { context: " The request comes from someone working at a startup providing an e-commerce CMS solution."}
);

for await (const chunk of stream) {
  composeTextbox.append(chunk);
}

Повторное использование писателя

Вы можете использовать одного и того же автора для создания нескольких фрагментов контента.

// Reuse a writer
const writer = await Writer.create({ tone: "formal" });

const reviews = await Promise.all(
  Array.from(
    document.querySelectorAll("#reviews > .review"),
    (reviewEl) => writer.write(reviewEl.textContent)
  ),
);

Остановите писателя

Чтобы завершить процесс записи, прервите работу контроллера и уничтожьте писатель.

// Aborting a writer
const controller = new AbortController();
stopButton.onclick = () => controller.abort();

const writer = await Writer.create({ signal: controller.signal });
await writer.write(reviewEl.textContent, { signal: controller.signal });

// Destroying a writer
writer.destroy();

Демо

Привлекайте и делитесь отзывами

API Writer и Rewriter находятся в стадии активного обсуждения и могут быть изменены в будущем. Если вы опробуете этот API и у вас есть отзывы, мы будем рады их услышать.

Откройте для себя все встроенные API ИИ , которые используют модели, включая Gemini Nano и другие экспертные модели, в браузере.