Avaliar avaliações de produtos com IA

Maud Nalpas
Maud Nalpas
Kenji Baheux
Kenji Baheux
Alexandra Klepper
Alexandra Klepper

Ao fazer compras on-line, pode ser difícil ver o volume de produtos avaliações e o volume de produtos disponíveis. Como podemos classificar todos esse ruído para encontrar o produto que realmente vai atender às nossas necessidades específicas?

Por exemplo, imagine que estamos comprando uma mochila de trabalho. As mochilas precisam atender a equilibram função, estética e praticidade. O número de avaliações que é quase impossível saber se encontrou a bolsa perfeita. E se pudéssemos usou a IA para filtrar o ruído e encontrar o produto perfeito?

Seria útil ter um resumo de todas as avaliações, junto com uma lista das avaliações prós e contras comuns.

Exemplo de avaliação de usuário com destaques positivos e negativos.
Um exemplo de avaliação de usuário com uma nota e uma lista de prós e contras.

Para criar isso, usamos a IA generativa do lado do servidor. A inferência ocorre em um servidor.

Neste documento, você pode acompanhar um tutorial para a API Gemini com Node.js, usando o SDK da IA do Google para JavaScript para resumir dados de várias avaliações. Nosso foco na parte deste trabalho com a IA generativa; não abordaremos como armazenar resultados ou criar uma fila de jobs.

Na prática, é possível usar qualquer API LLM com qualquer SDK. No entanto, o comando sugerido precisa ser adaptado para atender ao modelo escolhido.

Pré-requisitos

  1. Crie uma chave para a API Gemini. e defini-lo no arquivo de ambiente.

  2. Instale o SDK da IA do Google para JavaScript, por exemplo, com npm: npm install @google/generative-ai

Criar um aplicativo de resumo de avaliações

  1. Inicialize um objeto de IA generativa.
  2. Crie uma função para gerar resumos de avaliações.
    1. Selecione o modelo de IA generativa. No nosso caso de uso, vamos usar o Gemini Pro. Usar um modelo específico para seu caso de uso (por exemplo, gemini-pro-vision) é para entrada multimodal).
    2. Adicione um comando.
    3. Chame generateContent para transmitir o comando como um argumento.
    4. Gere e retorne a resposta.
const { GoogleGenerativeAI } = require("@google/generative-ai");

// Access the API key env
const genAI = new GoogleGenerativeAI(process.env.API_KEY_GEMINI);

async function generateReviewSummary(reviews) {
  // Use gemini-pro model for text-only input
  const model = genAI.getGenerativeModel({ model: "gemini-pro" });
  // Shortened for legibility. See "Write an effective prompt" for
  // writing an actual production-ready prompt.
  const prompt = `Summarize the following product reviews:\n\n${reviews}`;
  const result = await model.generateContent(prompt);
  const response = await result.response;
  const summary = response.text();
  return summary;
}

Escrever um comando eficaz

A melhor maneira de ter sucesso com a IA generativa é criar um comando completo. Neste exemplo, usamos a técnica de comandos one-shot para gerar resultados consistentes.

Os comandos one-shot são representados pelo exemplo de saída para o Gemini modelar.

const prompt =
`I will give you user reviews for a product. Generate a short summary of the
reviews, with focus on the common positive and negative aspects across all of
the reviews. Use the exact same output format as in the example (list of
positive highlights, list of negative aspects, summary). In the summary,
address the potential buyer with second person ("you", "be aware").

Input (list of reviews):
// ... example

Output (summary of reviews):
// ... example

**Positive highlights**
// ... example
**Negative aspects**
// ... example
**Summary**
// ... example

Input (list of reviews):
${reviews}

Output (summary of all input reviews):`;

Este é um exemplo de saída desse comando, que inclui um resumo de todas e análises, além de uma lista de prós e contras.

## Summary of Reviews:

**Positive highlights:**

* **Style:** Several reviewers appreciate the backpack's color and design.
* **Organization:** Some users love the compartments and find them useful for
  organization.
* **Travel & School:** The backpack seems suitable for both travel and school
  use, being lightweight and able to hold necessary items.

**Negative aspects:**

* **Durability:** Concerns regarding the zipper breaking and water bottle holder
  ripping raise questions about the backpack's overall durability.
* **Size:** A few reviewers found the backpack smaller than expected.
* **Material:** One user felt the material was cheap and expressed concern about
  its longevity.

**Summary:**

This backpack seems to be stylish and appreciated for its organization and
suitability for travel and school. However, you should be aware of potential
durability issues with the zippers and water bottle holder. Some users also
found the backpack smaller than anticipated and expressed concerns about the
material's quality.

Limites de tokens

Muitas revisões podem atingir o limite de tokens do modelo. Os tokens nem sempre são iguais a um uma única palavra; um token pode ser parte de uma palavra ou várias palavras juntas. Para Por exemplo, o Gemini Pro com um limite de 30.720 tokens. Isso significa que o comando pode incluir, no máximo, 600 Avaliações de 30 palavras em inglês, menos o restante das instruções.

Usar countTokens() para verificar o número de tokens e reduzir a entrada se o comando for maior do que permitido.

const MAX_INPUT_TOKENS = 30720
const { totalTokens } = await model.countTokens(prompt);
if (totalTokens > MAX_INPUT_TOKENS) {
    // Shorten the prompt.
}

Desenvolvimento para empresas

Se você é um usuário do Google Cloud ou precisa de suporte empresarial, pode acessar o Gemini Pro e outros modelos, como os modelos Claude da Anthropic, com Vertex AI. Você pode querer usar Model Garden para determinar qual modelo que melhor corresponda ao seu caso de uso.

Próximas etapas

O aplicativo que criamos depende muito de avaliações de qualidade para oferecer o máximo resumos eficazes. Para coletar essas avaliações de qualidade, leia o próximo artigo em esta série é Ajude os usuários a escrever avaliações úteis do produto com IA da Web no dispositivo.

Queremos saber sua opinião sobre essa abordagem. Conte-nos quais são os casos de uso mais do seu interesse. Você pode Deixe seu feedback e participe do programa de testes para testar essa tecnologia com protótipos locais.

Sua contribuição pode nos ajudar a tornar a IA uma ferramenta poderosa e prática para todo mundo.

Próximo: ajudar os usuários a escrever avaliações úteis do produto