Blog

Utilizando modelos do Amazon Nova no Elasticsearch

Aprenda a usar os modelos Amazon Nova no Elasticsearch para extrair automaticamente sentimentos, autenticidade, resumos e palavras-chave das avaliações de produtos no Elasticsearch.

Neste artigo, discutiremos a família de modelos de IA da Amazon, o Amazon Nova, e aprenderemos como usá-lo em conjunto com o Elasticsearch.

Sobre a Amazon Nova

O Amazon Nova é uma família de modelos de inteligência artificial da Amazon, disponível na plataforma Amazon Bedrock e projetada para oferecer alto desempenho e custo-benefício. Esses modelos operam com entradas de texto, imagem e vídeo, geram saídas textuais e são otimizados para diferentes necessidades de precisão, velocidade e custo.

Modelos principais do Amazon Nova

  • Amazon Nova Micro: Focado exclusivamente em texto, este é um modelo rápido e econômico, ideal para tradução, raciocínio, preenchimento automático de código e resolução de problemas matemáticos. Sua geração ultrapassa 200 tokens por segundo, tornando-o ideal para aplicações que exigem respostas instantâneas.

  • Amazon Nova Lite: modelo multimodal de baixo custo capaz de processar rapidamente imagens, vídeos e textos. Ele se destaca pela rapidez e precisão, sendo indicado para aplicações interativas e de alto volume onde o custo é um fator relevante.

  • Amazon Nova Pro: A opção mais avançada, que combina alta precisão, velocidade e custo-benefício. Ideal para tarefas complexas como resumo de vídeos, perguntas e respostas, desenvolvimento de software e agentes de IA. Avaliações de especialistas atestam sua excelência na compreensão textual e visual, bem como sua capacidade de seguir instruções e executar fluxos de trabalho automatizados.

Os modelos Amazon Nova são adequados para uma variedade de aplicações, desde a criação de conteúdo e análise de dados até o desenvolvimento de software e a automação de processos com inteligência artificial.

A seguir, demonstraremos como usar os modelos do Amazon Nova em conjunto com o Elasticsearch para análise automatizada de avaliações de produtos.

O que faremos:

  1. Crie um endpoint por meio da API de Inferência, integrando o Amazon Bedrock com o Elasticsearch.

  2. Crie um pipeline usando o Processador de Inferência, que fará chamadas para o endpoint da API de Inferência.

  3. Indexe as avaliações de produtos e gere automaticamente uma análise dessas avaliações usando o pipeline.

  4. Analise os resultados da integração.

Criando um endpoint na API de inferência com Amazon Nova Lite

Primeiro, configuramos a API de Inferência para integrar o Amazon Bedrock com o Elasticsearch. Definimos o Amazon Nova Lite, id amazon.nova-lite-v1:0, como o modelo a ser utilizado, pois oferece um equilíbrio entre velocidade, precisão e custo.

Observação: você precisará de credenciais válidas para usar o Amazon Bedrock. Você pode consultar a documentação para obter as chaves de acesso aqui:

PUT _inference/completion/bedrock_completion_amazon_nova-lite
{
   "service": "amazonbedrock",
   "service_settings": {
       "access_key": "#access_key#",
       "secret_key": "#secret_key#",
       "region": "us-east-1",
       "provider": "amazontitan",
       "model": "amazon.nova-lite-v1:0"
   }
}

Criando o pipeline de análise de revisão

Agora, criamos um pipeline de processamento que usará o Processador de Inferência para executar uma solicitação de análise de revisão. Este comando enviará os dados da avaliação para o Amazon Nova Lite, que executará as seguintes ações:

  • Classificação do sentimento (positivo, negativo ou neutro).

  • Resumo da revisão.

  • Geração de palavras-chave.

  • Medição de autenticidade (autêntico | suspeito | genérico).

PUT /_ingest/pipeline/review_analyzer_ai
{
      "processors": [
      {
        "script": 
            {
            "source": """ctx.prompt = "Analyze the following product review and return a structured JSON. Task: - Summarize the review concisely. - Detect and classify the sentiment as positive, neutral, or negative.- Generate relevant tags (keywords) based on the review content and detected sentiment. - Evaluate the authenticity of the review (authentic, suspicious, or generic). Review: " + ctx.review + " Respond in JSON format with the following fields: \"review_analyze\": {\"sentiment\": \"<positive | neutral | negative>\", \"authenticity\": \"<authentic | suspicious | generic>\",\"summary\": \"<short review summary>\", \"keywords\": [\"<keyword 1>\", \"<keyword 2>\", \"...\"]}}}"
            """
            }
      },
      {
        "inference": {
          "model_id": "bedrock_completion_amazon_nova-lite",
          "input_output": {
            "input_field": "prompt",
            "output_field": "result"
          }
        }
      },
      {
        "gsub": {
          "field": "result",
          "pattern": "```json",
          "replacement": ""
        } 
      },
      {
        "json" : {
          "field" : "result",
          "strict_json_parsing": false,
          "add_to_root" : true
        }
      },
      {
        "remove": {
          "field": "result"
        }
      },
      {
        "remove": {
          "field": "prompt"
        }
      }
    ]
}

Avaliações de indexação

Agora, indexamos avaliações de produtos usando a API em lote. O pipeline criado anteriormente será aplicado automaticamente, adicionando a análise gerada pelo modelo Nova aos documentos indexados.

POST bulk/
{ "index": { "_index" : "products", "_id": 1, "pipeline":"review_analyzer_ai" } }
{ "product": "Pampers Pants Premium Care Fralda", "review": "Best diaper ever! Great material, lots of cotton, without all that plastic. Doesn't leak! My baby is a boy and every diaper leaked around the waist, this model solved the problem. Even on a small baby it's worth the effort of putting on the short diaper. I put it on my baby at 9 pm and only take it off in the morning, without any leaks." }
{ "index": { "_index" : "products", "_id": 2, "pipeline":"review_analyzer_ai" } }
{ "product": "Portable Electric Body Massager", "review": "It broke in three months for no apparent reason, thank goodness I didn't review it before. I don't recommend buying it because it has a short lifespan." }
{ "index": { "_index" : "products", "_id": 3, "pipeline":"review_analyzer_ai" } }
{ "product": "Havit Fuxi-H3 Black Quad-Mode Wired and Wireless Gaming Headset", "review": "The sound is good for the price, but the connectivity is horrible. You always need to be playing audio, otherwise it loses connection (I work from home, and this is very annoying). Sometimes it loses connection and you have to turn it off and on again to get it back on. The microphone is very sensitive, so it loses connection frequently and you have to turn the headset off and on for the microphone to work again. The flexibility of the stem is useless, because if you move it, the microphone can turn off. Sometimes I need to use Linux and the headset simply doesn't work. It's light and comfortable, the sound is adequate, but the connectivity is terrible." }
{ "index": { "_index" : "products", "_id": 4, "pipeline":"review_analyzer_ai" } }
{ "product": "Air Fryer 4L Oil Free Fryer Mondial", "review": "For those looking for value for money, it's a good option, but the tray (which is underneath the perforated basket) is already peeling a lot. My mother has one just like it and said that hers is even rusting, in other words, the material is MUCH inferior. There's also something that bothers me, because it looks like a microwave, it doesn't fry evenly, it's weaker in the middle and stronger on the sides. Buy at your own risk." }

Consultar e analisar os resultados

Por fim, executamos uma consulta para ver como o modelo Amazon Nova Lite analisa e classifica as avaliações. Ao executar o comando GET products/_search, obtemos os documentos já enriquecidos com os campos gerados a partir do conteúdo da avaliação.

O modelo identifica o sentimento predominante (positivo, neutro ou negativo), gera resumos concisos, extrai palavras-chave relevantes e estima a autenticidade de cada avaliação. Esses campos ajudam a entender a opinião do cliente sem precisar ler o texto completo.

Para interpretar os resultados, analisamos:

  • O sentimento indica a percepção geral do consumidor em relação ao produto.

  • O resumo destaca os principais pontos mencionados.

  • Palavras-chave, que podem ser usadas para agrupar avaliações semelhantes ou identificar padrões de feedback.

  • Autenticidade, que indica se a avaliação parece confiável. Isso é útil para curadoria ou moderação.

   "hits": [
      {
        "_index": "products",
        "_id": "1",
        "_score": 1,
        "_ignored": [
          "review.keyword"
        ],
        "_source": {
          "product": "Pampers Pants Premium Care Fralda",
          "model_id": "bedrock_completion_amazon_nova-lite",
          "review_analyze": {
            "summary": "The reviewer praises the diaper for its great material, high cotton content, and leak-proof design, especially highlighting its effectiveness for their baby.",
            "sentiment": "positive",
            "keywords": [
              "best diaper",
              "great material",
              "cotton",
              "no plastic",
              "leak-proof",
              "baby",
              "effective"
            ],
            "authenticity": "authentic"
          },
          "review": "Best diaper ever! Great material, lots of cotton, without all that plastic. Doesn't leak! My baby is a boy and every diaper leaked around the waist, this model solved the problem. Even on a small baby it's worth the effort of putting on the short diaper. I put it on my baby at 9 pm and only take it off in the morning, without any leaks."
        }
      },
      {
        "_index": "products",
        "_id": "2",
        "_score": 1,
        "_source": {
          "product": "Portable Electric Body Massager",
          "model_id": "bedrock_completion_amazon_nova-lite",
          "review_analyze": {
            "summary": "The product broke in three months for no apparent reason and the reviewer does not recommend it due to its short lifespan.",
            "sentiment": "negative",
            "keywords": [
              "broke",
              "short lifespan",
              "not recommend"
            ],
            "authenticity": "authentic"
          },
          "review": "It broke in three months for no apparent reason, thank goodness I didn't review it before. I don't recommend buying it because it has a short lifespan."
        }
      },
      {
        "_index": "products",
        "_id": "3",
        "_score": 1,
        "_ignored": [
          "review.keyword"
        ],
        "_source": {
          "product": "Havit Fuxi-H3 Black Quad-Mode Wired and Wireless Gaming Headset",
          "model_id": "bedrock_completion_amazon_nova-lite",
          "review_analyze": {
            "summary": "The headset has good sound quality for the price but suffers from poor connectivity, especially when using the microphone or moving the headset. It also has compatibility issues with Linux.",
            "sentiment": "negative",
            "keywords": [
              "sound",
              "connectivity",
              "microphone",
              "compatibility",
              "annoying",
              "turn off and on",
              "Linux",
              "flexible stem",
              "work from home"
            ],
            "authenticity": "authentic"
          },
          "review": "The sound is good for the price, but the connectivity is horrible. You always need to be playing audio, otherwise it loses connection (I work from home, and this is very annoying). Sometimes it loses connection and you have to turn it off and on again to get it back on. The microphone is very sensitive, so it loses connection frequently and you have to turn the headset off and on for the microphone to work again. The flexibility of the stem is useless, because if you move it, the microphone can turn off. Sometimes I need to use Linux and the headset simply doesn't work. It's light and comfortable, the sound is adequate, but the connectivity is terrible."
        }
      },
      {
        "_index": "products",
        "_id": "4",
        "_score": 1,
        "_ignored": [
          "review.keyword"
        ],
        "_source": {
          "product": "Air Fryer 4L Oil Free Fryer Mondial",
          "model_id": "bedrock_completion_amazon_nova-lite",
          "review_analyze": {
            "summary": "The product offers value for money but has issues with peeling, rusting, and uneven frying.",
            "sentiment": "negative",
            "keywords": [
              "value for money",
              "peeling",
              "rusting",
              "uneven frying",
              "weaker in the middle"
            ],
            "authenticity": "authentic"
          },
          "review": "For those looking for value for money, it's a good option, but the tray (which is underneath the perforated basket) is already peeling a lot. My mother has one just like it and said that hers is even rusting, in other words, the material is MUCH inferior. There's also something that bothers me, because it looks like a microwave, it doesn't fry evenly, it's weaker in the middle and stronger on the sides. Buy at your own risk."
        }
      }
    ]

Conclusão

A integração entre o Amazon Nova Lite e o Elasticsearch demonstrou como os modelos de linguagem podem transformar avaliações brutas em informações estruturadas e valiosas. Ao processar as avaliações por meio de um pipeline, conseguimos extrair automaticamente e de forma consistente informações sobre sentimento, autenticidade, resumos e palavras-chave.

Os resultados mostram que o modelo consegue compreender o contexto das avaliações, classificar as opiniões dos usuários e destacar os pontos mais relevantes de cada experiência. Isso cria um conjunto de dados muito mais rico que pode ser aproveitado para melhorar as capacidades de pesquisa.

Conteúdo relacionado

Técnicas avançadas de RAG, parte 2: Consultas e testes

Han Xiang Choong

Resolução de entidades com Elasticsearch, parte 4: O desafio definitivo

Jessica Moszkowicz

Automatização da análise de logs no Streams com ML

Nastia Havriushenko

Criando um agente de IA para RH com Elastic Agent Builder e GPT-OSS

Tomás Murúa

Técnicas avançadas de RAG, parte 1: Processamento de dados

Han Xiang Choong

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)