API Proofreader

Publicado em: 12 de setembro de 2025

Explicação Web Extensões Status do Chrome Intenção
GitHub Teste de origem Teste de origem Teste de origem Teste de origem Ver Intenção de experimentar

A revisão é o processo de procurar e corrigir erros de gramática, ortografia e pontuação. Os navegadores e sistemas operacionais têm oferecido cada vez mais a revisão para as ferramentas de composição, como no Documentos Google.

Com a API Proofreader, você pode fornecer revisão interativa para seu aplicativo ou extensão da Web com IA integrada. Essa API oferece as seguintes funções:

  • Correção: corrige as entradas do usuário para gramática, ortografia e pontuação.
  • Marcadores: marca cada correção pelo tipo de erro.
  • Explicação: define o que é o erro ou por que a correção foi necessária em linguagem simples.

Casos de uso

Há muitos motivos para usar a API Proofreader. Por exemplo:

  • Sugerir correções para mensagens de fórum, comentários em artigos e e-mails antes do envio da postagem.
  • Fornecer correções durante a anotação ativa.

Seu caso de uso está faltando? Participe do programa de prévia antecipada para compartilhar seu feedback.

Primeiros passos

Participe do teste de origem da API Proofreader, executado no Chrome 141 a 145.

Analisar os requisitos de hardware

Os requisitos a seguir existem para desenvolvedores e usuários que operam recursos usando estas APIs no Chrome. Outros navegadores podem ter requisitos operacionais diferentes.

As APIs Language Detector e Translator funcionam no Chrome para computador. Essas APIs não funcionam em dispositivos móveis.

As APIs Prompt, Summarizer, Writer, Rewriter e Proofreader funcionam no Chrome quando as seguintes condições são atendidas:

  • Sistema operacional: Windows 10 ou 11; macOS 13 ou mais recente (Ventura e versões mais recentes); Linux; ou ChromeOS (da plataforma 16389.0.0 e versões mais recentes) em Chromebook Plus dispositivos. O Google Chrome para Android, iOS e ChromeOS em dispositivos não Chromebook Plus ainda não é compatível com as APIs que usam o Gemini Nano.
  • Armazenamento: pelo menos 22 GB de espaço livre no volume que contém seu perfil do Chrome.
  • GPU ou CPU: os modelos integrados podem ser executados com GPU ou CPU.
    • GPU: estritamente mais de 4 GB de VRAM.
    • CPU: 16 GB de RAM ou mais e 4 núcleos de CPU ou mais.
    • Observação: a API Prompt com entrada de áudio requer uma GPU.
  • Rede: dados ilimitados ou uma conexão não limitada.

O tamanho exato do Gemini Nano pode variar à medida que o navegador atualiza o modelo. Para determinar o tamanho atual, acesse chrome://on-device-internals.

Adicionar suporte ao localhost

Todas as APIs de IA integradas estão disponíveis no localhost no Chrome. Defina as seguintes flags como Ativadas:

  • chrome://flags/#optimization-guide-on-device-model
  • chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
  • chrome://flags/#proofreader-api-for-gemini-nano

Em seguida, clique em Reiniciar ou reinicie o Chrome. Se você encontrar erros, resolva problemas do localhost.

Inscrever-se no teste de origem

Para começar a usar a API Proofreader, siga estas etapas:

  1. Reconheça a Política de usos proibidos da IA generativa do Google.
  2. Acesse o teste de origem da API Proofreader.
  3. Clique em Registrar e preencha o formulário. No campo "Origem da Web", forneça sua origem ou ID da extensão, chrome-extension://YOUR_EXTENSION_ID.
  4. Para enviar, clique em Registrar.
  5. Copie o token fornecido e adicione-o a todas as páginas da Web participantes na sua origem ou inclua-o no manifesto da extensão.
  6. Comece a usar a API Proofreader.

Saiba mais sobre como começar a usar os testes de origem.

Usar a API Proofreader

Para determinar se o modelo está pronto para uso, chame Proofreader.availability(). Se a resposta a availability() foi "downloadable", ouça o progresso do download e informe o usuário, já que o download pode levar algum tempo.

const options = {
  expectedInputLanguages: ['en'],
};
const available = if (Proofreader.availability("downloadable") === true);

Para acionar o download e instanciar o revisor, verifique a ativação do usuário. Em seguida, chame a função assíncrona Proofreader.create().

const session = await Proofreader.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
  ...options,
});

Criar um objeto Proofreader

Para criar um revisor, use a função Proofreader.create().

const proofreader = await Proofreader.create({
  expectedInputLanguages: ["en"],
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(Downloaded ${e.loaded * 100}%);
    });
  }
};

O método create() inclui as seguintes opções:

  • expectedInputLanguages: uma matriz de idiomas de entrada esperados.

As opções includeCorrectionTypes e includeCorrectionExplanation da explicação não são aceitas.

Começar a revisar o texto do usuário

Chame proofread() para receber correções de um texto de entrada:

const proofreadResult = await proofreader.proofread(
  'I seen him yesterday at the store, and he bought two loafs of bread.',
);

As correções são um tipo de ProofreadResult. Encontre a entrada totalmente corrigida no atributo correctedInput e a lista de correções na matriz corrections:

let inputRenderIndex = 0;

console.log(proofreadResult.correction);

for (const correction of proofreadResult.corrections) {
  // Render part of input that has no error.
  if (correction.startIndex > inputRenderIndex) {
    const unchangedInput = document.createElement('span');
    unchangedInput.textContent = input.substring(inputRenderIndex, correction.startIndex);
    editBox.append(unchangedInput);
  }
  // Render part of input that has an error and highlight as such.
  const errorInput = document.createElement('span');
  errorInput.textContent = input.substring(correction.startIndex, correction.endIndex);
  errorInput.classList.add('error');
  editBox.append(errorInput);
  inputRenderIndex = correction.endIndex;
}

// Render the rest of the input that has no error.
if (inputRenderIndex !== input.length){
  const unchangedInput = document.createElement('span');
  unchangedInput.textContent = input.substring(inputRenderIndex, input.length);
  editBox.append(unchangedInput);
}

Política de permissões, iframes e Web Workers

Por padrão, a API Proofreader só está disponível para janelas de nível superior e para iframes de mesma origem. O acesso à API pode ser delegado a iframes de origem cruzada usando o atributo allow="" da política de permissões:

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Proofreader API by
  setting the `allow="proofreader"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="proofreader"></iframe>

A API Proofreader não está disponível em Web Workers. Isso ocorre devido à complexidade de estabelecer um documento responsável para cada worker, a fim de verificar o status da política de permissões.

Demonstração

Brinque com o playground da API Proofreader e confira o código-fonte.

Interagir e compartilhar feedback

A API Proofreader está em discussão ativa e sujeita a mudanças no futuro. Se você testar essa API e tiver feedback, gostaríamos de ouvir.

Descubra todas as APIs de IA integradas que usam modelos, incluindo modelos de linguagem grandes, no navegador.