Corrigir gramática e ortografia com a API de Revisor

A API Proofreader é uma API Web experimental que permite corrigir erros gramaticais, ortográficos e de pontuação no texto usando um modelo de linguagem pequena (SLM) integrado ao Microsoft Edge, a partir do código JavaScript do seu site ou extensão do navegador.

Para obter informações introdutórias sobre a API do Revisor, consulte Explicador da API do Revisor.

Conteúdo detalhado:

Disponibilidade da API de Revisor

A API Proofreader está disponível como uma versão prévia do desenvolvedor nos canais Canary ou Dev do Microsoft Edge, a partir da versão 142.

A API Proofreader é otimizada para corrigir erros gramaticais, ortográficos e de pontuação no conteúdo de texto. Para saber mais sobre uma alternativa para cenários de engenharia de prompt mais personalizados que podem não ser atendidos por essas APIs, consulte Solicitar um modelo de linguagem interno com a API de prompt.

Decidir qual API usar

Para aproveitar os recursos de IA em sites e extensões de navegador, você também pode usar os seguintes métodos:

A API Proofreader usa um modelo de linguagem pequena (SLM) que é executado no mesmo dispositivo em que as entradas e saídas do modelo são usadas (ou seja, localmente). Isso tem os seguintes benefícios em comparação com soluções baseadas em nuvem:

  • Custo reduzido: Não há nenhum custo associado ao uso de um serviço de IA na nuvem.

  • Independência de rede: Além do download inicial do modelo, não há latência de rede ao solicitar o modelo, e o modelo também pode ser usado quando o dispositivo está offline.

  • Privacidade aprimorada: Os dados que são inseridos no modelo nunca saem do dispositivo e não são coletados (por exemplo, para treinar modelos de IA).

A API Proofreader usa um modelo fornecido pelo Microsoft Edge e integrado ao navegador, que vem com benefícios adicionais em relação a soluções locais personalizadas, como aquelas baseadas em WebGPU, WebNN ou WebAssembly:

  • Custo único compartilhado: O modelo fornecido pelo navegador é baixado quando a API é chamada pela primeira vez e, em seguida, o modelo é compartilhado em todos os sites executados no navegador, reduzindo os custos de rede para o usuário e o desenvolvedor.

  • Uso simplificado para desenvolvedores da Web: O modelo interno pode ser executado usando APIs Web simples e não requer experiência em IA/ML ou estruturas de terceiros.

O modelo Phi-4-mini

A API de Revisor usa o modelo Phi-4-mini integrado ao Microsoft Edge. O Phi-4-mini é um poderoso modelo de linguagem pequena que se destaca em tarefas baseadas em texto. Para saber mais sobre o Phi-4-mini e seus recursos, consulte o modelo de card em microsoft/Phi-4-mini-instruct.

Aviso de isenção

Como outros modelos de linguagem, a família de modelos Phi pode se comportar de maneiras injustas, não confiáveis ou ofensivas. Para saber mais, consulte Considerações sobre IA responsável.

Requisitos de hardware

A versão prévia do desenvolvedor da API de Revisor destina-se a funcionar em dispositivos com recursos de hardware que produzem saídas de SLM (Modelo de Linguagem Pequena) com qualidade e latência previsíveis.

A API Proofreader tem os seguintes requisitos:

  • Sistema operacional: Windows 10 ou 11 e macOS 13.3 ou posterior.

  • Armazenamento: Pelo menos 20 GB disponíveis no volume que contém seu perfil do Edge. Se o armazenamento disponível cair abaixo de 10 GB, o modelo será excluído para garantir que outros recursos do navegador tenham espaço suficiente para funcionar.

  • GPU: 5,5 GB de VRAM ou mais.

  • Rede: Plano de dados ilimitado ou conexão ilimitada. O modelo não será baixado se estiver usando uma conexão limitada.

Para marcar se o dispositivo dá suporte à visualização do desenvolvedor da API de Revisão, consulte Habilitar a API de Revisão abaixo e marcar a classe de desempenho do dispositivo.

Devido à natureza experimental da API Proofreader, você pode observar problemas em configurações de hardware específicas. Se você encontrar problemas em configurações de hardware específicas, forneça comentários abrindo um novo problema no repositório MSEdgeExplainers.

Disponibilidade de modelo

Um download inicial do modelo é necessário na primeira vez que um site chama uma API de IA interna. Você pode monitorar o download do modelo usando a opção de monitor ao criar uma nova sessão da API do Revisor de Prova. Consulte Monitorar o progresso do download do modelo, abaixo.

Habilitar a API de Revisor

Para usar qualquer uma das APIs de Revisor no Microsoft Edge:

  1. Verifique se você está usando a versão mais recente do Microsoft Edge Canary ou Dev (versão 142 ou mais recente). Consulte Torne-se um Microsoft Edge Insider.

  2. No Microsoft Edge Canary ou Dev, abra uma nova guia ou janela e vá para edge://flags.

  3. Na caixa de pesquisa, na parte superior da página, insira API de Revisor para Phi mini.

    A página é filtrada para mostrar o sinalizador correspondente.

  4. Selecione Habilitado ao lado da API de Revisor para Phi mini sinalizador:

    Página Sinalizadores do navegador

  5. Opcionalmente, para registrar informações localmente que podem ser úteis para problemas de depuração, habilite também o sinalizador Habilitar logs de depuração do modelo de IA no dispositivo .

  6. Reinicie o Microsoft Edge Canary ou Dev.

  7. Para marcar se o dispositivo atende aos requisitos de hardware para a visualização do desenvolvedor da API do Revisor, abra uma nova guia, acesse edge://on-device-internalse marque o valor da classe de desempenho do dispositivo.

    Se a classe de desempenho do dispositivo for alta ou superior, espera-se que a API de Revisor seja compatível com seu dispositivo. Se você continuar a notar problemas, registre um novo problema.

Veja um exemplo de trabalho

Para ver a API Proofreader em ação e examinar o código existente que usa essas APIs:

  1. Habilite a API do Revisor, conforme descrito acima.

  2. No navegador Microsoft Edge Canary ou Dev, abra uma guia ou janela e vá para o playground da API do Revisor.

  3. Na faixa de informações na parte superior, marque o status. O status inicialmente é API no dispositivo e download de modelo:

    Indicador de status mostrando o progresso do download do modelo

    Após o download do modelo, a faixa de informações exibe API no dispositivo e modelo disponível, indicando que a API e o modelo podem ser usados:

    Faixa de informações mostrando a mensagem: API no dispositivo e modelo prontos.

    Se o modelo não iniciar o download, reinicie o Microsoft Edge e tente novamente.

    A API Proofreader só tem suporte em dispositivos que atendem a determinados requisitos de hardware. Para obter mais informações, consulte Requisitos de hardware, acima.

  4. Opcionalmente, altere o conteúdo e as configurações da página. Por exemplo, modifique o texto para revisão ou altere o idioma de entrada esperado.

  5. Clique no botão Revisar , na parte inferior da página.

    A saída é gerada na seção de resposta da página:

    A página de demonstração do Revisor, contendo as configurações e um botão de Revisão

Veja também:

  • /built-in-ai/ - Leiame e código-fonte para a demonstração de playgrounds de IA integrada.

Usar a API de Revisor de Texto

Verificar se a API está habilitada

Antes de usar a API de Revisão no código do seu site, Marque se a API está habilitada, testando a presença do Proofreader objeto:

if (!Proofreader) {
  // The Proofreader API is not available.
}

Verifique se o modelo pode ser usado

A API de Revisor só poderá ser usada se o dispositivo der suporte à execução do modelo e depois que o modelo de linguagem e o tempo de execução do modelo tiverem sido baixados pelo Microsoft Edge.

Para marcar se a API pode ser usada, use o availability() método:

const availability = await Proofreader.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.
}

Criar uma nova sessão

A criação de uma sessão instrui o navegador a carregar o modelo de linguagem na memória, para que ele possa ser usado. Antes de usar a API Proofreader para corrigir texto, crie uma nova sessão usando o create() método:

// Create a Proofreader session.
const session = await Proofreader.create();

Para personalizar a sessão de modelo, você pode passar opções para o create() método:

// Create a Proofreader session with options.
const session = await Proofreader.create(options);

As opções disponíveis estão listadas abaixo:

Opção Descrição
monitor Uma função usada para monitorar o progresso do download do modelo. Consulte Monitorar o progresso do download do modelo, abaixo.
expectedInputLanguages Uma matriz de sequências de caracteres. Cada cadeia de caracteres é um idioma que se espera que o texto de entrada contenha. Por exemplo: ["en", "es"].
Monitorar o progresso do download do modelo

Você pode acompanhar o progresso do download do modelo usando a monitor opção. Isso é útil quando o modelo ainda não foi totalmente baixado no dispositivo em que será usado, para informar os usuários para aguardar.

// Create a Proofreader session with the monitor option to monitor the model
// download.
const session = await Proofreader.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;
      }
    });
  }
});

Executar a API do Revisor

Para gerar texto revisado usando a API de Revisor de Texto, depois de criar a sessão de modelo correspondente, use o session.proofread() método. Esse método retorna uma promessa que é resolvida após a API Proofreader terminar de gerar o texto corrigido.

// Create a Proofreader session.
const session = await Proofreader.create();

// Correct the text and wait for the result.
const result = await session.proofread(textToBeCorrected);

// Use the result.
console.log(result);

Usar o resultado da API Revisor

O session.proofread() método retorna uma promessa que é resolvida para um objeto que tem as seguintes propriedades:

Propriedade Descrição
correctedInput O texto corrigido, como uma cadeia de caracteres.
corrections Uma matriz de objetos de correção.

Um objeto de correção tem as seguintes propriedades:

Propriedade Descrição
startIndex O índice do primeiro caractere, no texto de entrada, que foi corrigido.
endIndex O índice do último caractere, no texto de entrada, que foi corrigido.
correction A cadeia de caracteres que substitui o texto incorreto.

O exemplo a seguir mostra como usar o resultado do session.proofread() método:

// Create a Proofreader session.
const session = await Proofreader.create();

// Correct the text and wait for the result.
const result = await session.proofread(textToBeCorrected);

// Log the corrected text.
console.log("Corrected text:", result.correctedInput);

// Log each correction.
result.corrections.forEach(({ startIndex, endIndex, correction }) => {
  const initialText = textToBeCorrected.slice(startIndex, endIndex);
  console.log(`Replaced text "${initialText}" (index ${startIndex} to ${endIndex}) with "${correction}"`);
});

Destruir uma sessão

Destrua a sessão para que o navegador saiba que você não precisa mais do modelo de linguagem, para que o modelo possa ser descarregado da memória.

Você pode destruir uma sessão de duas maneiras diferentes:

  • Usando o destroy() método.
  • Ao usar um AbortControllerarquivo .
Destrua uma sessão usando o método destroy()

Você pode usar o session.destroy() método para destruir uma sessão de Revisor:

const session = await Proofreader.create();

// Later, destroy the session by using the destroy method.
session.destroy();
Destrua uma sessão usando um AbortController

Como alternativa, você pode criar um AbortController objeto, criar uma Proofreader sessão e chamar abort():

// Create an AbortController object.
const controller = new AbortController();

// Create a Proofreader session and pass the 
// AbortController signal object by using the signal option.
const session = await Proofreader.create({ signal: controller.signal });

// Later, such as when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();

Enviar comentários

Estamos muito interessados em saber mais sobre a variedade de cenários para os quais você pretende usar a API de Revisão, quaisquer problemas com a API ou com o modelo de linguagem e se novas APIs específicas de tarefas seriam úteis.

Para enviar comentários sobre seus cenários e as tarefas que você deseja realizar, adicione um comentário ao problema de comentários da API do Revisor.

Se você notar algum problema ao usar a API, informe-o no repositório.

Você também pode contribuir para a discussão sobre o design da API de Revisor no repositório do Grupo de Trabalho de Aprendizado de Máquina da Web do W3C.

Confira também