Pesquisa de vetor da Vertex AI para aplicativos SAP inteligentes

Este documento descreve uma arquitetura de referência para criar aplicativos SAP inteligentes com a Vertex AI Vector Search usando o SDK da Vertex AI para ABAP. Com a pesquisa de vetores, é possível criar aplicativos SAP que vão além da correspondência de palavras-chave, usando a compreensão semântica para ajudar os usuários a encontrar precisamente o que precisam nos dados corporativos. Você também pode usar a Pesquisa vetorial com a geração aumentada de recuperação (RAG, na sigla em inglês) para criar aplicativos de IA avançados no seu ambiente SAP. A RAG melhora a qualidade das respostas do modelo de IA fornecendo um contexto relevante dos dados corporativos, garantindo que o modelo de IA seja baseado nos dados da empresa.

O público-alvo deste documento inclui desenvolvedores ABAP, arquitetos de soluções SAP e arquitetos de nuvem. Este documento pressupõe que você conheça a terminologia da Pesquisa de vetor.

Arquitetura

O diagrama a seguir mostra uma arquitetura de referência para usar a pesquisa vetorial na paisagem de aplicativos SAP:

Pesquisa vetorial para SAP

Esta arquitetura de referência inclui os seguintes componentes:

# Componente Detalhes
1 Ponto de partida da consulta no SAP

Inicie uma pesquisa usando uma das seguintes opções:

  • Serviço OData: forneça uma consulta de pesquisa pelo serviço OData no seu aplicativo front-end SAP.
  • Lógica do aplicativo SAP: forneça uma consulta de pesquisa pela lógica do aplicativo SAP, como melhorias, relatórios ou jobs em segundo plano.
2 SDK da Vertex AI para ABAP O módulo Vector Search Invoker do SDK realiza a pesquisa de vetor com base na consulta de pesquisa.
3 Vertex AI Vector Search

Os dados corporativos são indexados como embeddings vetoriais e organizados em um índice implantado.

Quando uma consulta de pesquisa é inserida, uma pesquisa de vetor é realizada nos dados indexados para encontrar as correspondências mais próximas.

Essas correspondências mais próximas são retornadas aos aplicativos SAP, ativando recursos como pesquisa semântica e RAG.

Produtos usados

Esta arquitetura de referência usa os seguintes produtos do Google Cloud:

  • SDK da Vertex AI para ABAP: fornece módulos e ferramentas para criar aplicativos centrados em IA de forma nativa no ABAP.
  • Vertex AI Vector Search: permite pesquisas eficientes em grande escala nos dados corporativos usando embeddings vetoriais. Isso significa que você pode pesquisar por significado e contexto, e não apenas por palavras-chave.

Casos de uso

A lista a seguir mostra casos de uso da Pesquisa de vetor em aplicativos SAP:

  • Criação de mecanismos de recomendação: analise as entradas e o comportamento do usuário para sugerir itens relevantes em empresas SAP, como produtos, códigos da empresa e contas de razão geral, além da correspondência de palavras-chave.
  • Criação de pipelines de RAG: acesse e integre informações de várias fontes para enriquecer o contexto de um modelo de IA com informações relevantes do SAP e não SAP para gerar respostas precisas e relevantes do modelo.
  • Realizar pesquisa semântica de imagens: ative a pesquisa de imagens visualmente semelhantes, útil para compras, descoberta visual e análise de imagens médicas.
  • Realizar pesquisa semântica de texto: entenda o significado e o contexto do texto para melhorar a precisão da pesquisa em análises jurídicas, acadêmicas e de feedback do cliente.
  • Realizar pesquisas com base em linguagem natural: forneça respostas instantâneas às perguntas dos usuários, melhorando as perguntas frequentes, as bases de conhecimento e as ferramentas educacionais.
  • Realizar a detecção de anomalias: identifique padrões incomuns e possíveis ameaças em finanças, segurança de rede e fabricação.

Considerações sobre o design

Esta seção fornece orientações para ajudar você a usar essa arquitetura de referência para desenvolver arquiteturas que atendam aos seus requisitos específicos de segurança, privacidade, compliance, custo e desempenho.

segurança, privacidade e conformidade

A segurança e a conformidade são responsabilidades compartilhadas. Para informações detalhadas, consulte Responsabilidade compartilhada da Vertex AI.

Para informações sobre o compromisso do Google Cloud com a privacidade de dados, consulte a Central de recursos de privacidade.

Otimização de custos

Para reduzir os custos, escolha tamanhos de fragmentos menores e incorporações de dimensões menores para seus índices, o que permite usar uma máquina de computação menor para implantar os índices.

A Vertex AI é um serviço pago do Google Cloud. Para informações sobre preços, consulte Preços da Vertex AI e Preços da pesquisa de vetor. Para gerar uma estimativa de custo com base na projeção de uso, use a calculadora de preços.

Otimização de desempenho

Para melhorar a latência na pesquisa de grandes conjuntos de dados, escolha tamanhos de fragmento maiores ao criar seu índice e máquinas de computação de alto desempenho ao implantar seu índice. Para saber mais sobre os tamanhos de fragmentos de um índice, consulte Tamanho do índice.

Para aumentar a relevância das respostas de pesquisa, gere embeddings dos dados da empresa em dimensões maiores. Máquinas de computação e dimensões de incorporação mais altas são custosas. Para gerar uma estimativa de custo com base na projeção de uso, use a calculadora de preços.

Antes de começar

Antes de usar a pesquisa de vetor no seu ambiente de aplicativos SAP, verifique se você ou seus administradores concluíram o seguinte:

Criar e gerenciar índice vetorial

Para usar a pesquisa de vetor, é necessário ter os dados corporativos indexados e implantados na forma de embeddings de vetor. Para fazer isso, siga estas etapas:

  1. Gere embeddings de vetor usando modelos de IA de embeddings de texto ou multimodais na Vertex AI ou em qualquer outra plataforma.
  2. Faça upload dos embeddings em um bucket do Cloud Storage.
  3. Crie um índice de vetores com o bucket do Cloud Storage que contém as informações de embeddings.
  4. Crie um endpoint de índice e implante o índice vetorial no endpoint para realizar uma pesquisa semântica nos dados empresariais indexados.

É possível realizar as etapas anteriores no console do Google Cloud ou usar o SDK da Vertex AI para ABAP para acionar essas ações no seu ambiente SAP.

Para receber os resultados mais precisos da Pesquisa de vetores para uma solução de IA corporativa, também é necessário manter o índice atualizado com os dados mais recentes da empresa. Para mais informações, consulte Atualizar e recriar um índice vetorial.

Invocar a Pesquisa Vetorial de aplicativos SAP

Nos seus aplicativos SAP, é possível usar o SDK da Vertex AI para ABAP para realizar pesquisas semânticas nos dados corporativos indexados das seguintes maneiras:

Você pode usar os resultados da pesquisa de vetor para melhorar o contexto do seu modelo de IA com o contexto da empresa usando a RAG. Isso mantém as respostas do modelo com base nos dados da sua empresa. Você também pode usar esses resultados como entrada para processos de negócios ou para gerar recomendações.

Pesquisa semântica usando comandos de texto

Para pesquisar nos dados multimodais e de texto indexados usando comandos de texto, use o método FIND_NEIGHBORS_BY_STRING da classe /GOOG/CL_VECTOR_SEARCH do SDK da Vertex AI para ABAP. É possível encadenar a chamada GET_NEAREST_NEIGHBORS do método com a chamada FIND_NEIGHBORS_BY_STRING do método para receber a resposta da pesquisa.

O exemplo de código abaixo ilustra como realizar uma pesquisa semântica usando comandos de texto:

TRY.
    DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key  = 'SEARCH_KEY' ).
    DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_string(
                                                          iv_search_string         = 'SEARCH_STRING'
                                                          iv_embeddings_model_key  = 'MODEL_KEY'
                                                          iv_neighbor_count        = NEIGHBOR_COUNT
                                                     )->get_nearest_neighbors( ).
    cl_demo_output=>display( lt_vector_search_response ).
  CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
    cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).

ENDTRY.

Substitua:

  • SEARCH_KEY: a chave de pesquisa, que é configurada nos parâmetros da pesquisa de vetor.
  • SEARCH_STRING: o comando de texto de entrada.
  • MODEL_KEY: a chave do modelo configurada nos parâmetros de geração de modelos. Esse modelo é usado para converter a consulta de pesquisa em embeddings.
  • NEIGHBOR_COUNT: o número de vizinhos mais próximos a serem recuperados pela consulta de pesquisa.

Para encontrar exemplos de pesquisa baseada em texto em dados empresariais e multimodais, consulte os exemplos de código do GitHub para Pesquisa semântica em um conjunto de dados de texto usando comandos de texto e Pesquisa semântica em imagens usando comandos de texto.

Pesquisa semântica usando comandos multimodais

Esse tipo de pesquisa é útil quando você quer encontrar as correspondências mais próximas dos seus dados multimodais, que podem ser imagens ou vídeos. Por exemplo, se você tiver um aplicativo da Web SAP (Fiori ou UI5) e quiser tirar uma foto de uma peça de roupa, de um produto ou de uma parte de equipamento e encontrar as correspondências mais próximas em relação à imagem, escolha essa opção de pesquisa.

Para pesquisar nos dados multimodais indexados usando comandos multimodais, use o método FIND_NEIGHBORS_BY_EMBEDDING da classe /GOOG/CL_VECTOR_SEARCH do SDK da Vertex AI para ABAP. É possível encadenar a chamada do método GET_NEAREST_NEIGHBORS com a chamada do método FIND_NEIGHBORS_BY_EMBEDDING para receber a resposta da pesquisa.

O exemplo de código abaixo ilustra como realizar uma pesquisa semântica usando uma imagem:

DATA lv_search_string TYPE string,
DATA ls_image TYPE /goog/cl_embeddings_model=>ty_image.

TRY.
    DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key = 'SEARCH_KEY' ).
    DATA(lo_embeddings_model) = NEW /goog/cl_embeddings_model( iv_model_key = 'MODEL_KEY' ).

    ls_image-bytes_base64_encoded = 'RAW_DATA'.

    DATA(lt_embeddings) = lo_embeddings_model->gen_image_embeddings( iv_image     = ls_image
                                                                     iv_dimension = 'DIMENSION'
                                            )->get_vector( ).
    DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_embedding(
                                                          iv_neighbor_count = NEIGHBOR_COUNT
                                                          it_embeddings     = lt_embeddings
                                                     )->get_nearest_neighbors( ).
    cl_demo_output=>display( lt_vector_search_response ).
  CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
    cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).

ENDTRY.

Substitua:

  • SEARCH_KEY: a chave de pesquisa, que é configurada nos parâmetros da pesquisa de vetor.
  • MODEL_KEY: a chave do modelo configurada nos parâmetros de geração de modelos. Esse modelo é usado para converter a consulta de pesquisa em embeddings.
  • RAW_DATA: os dados brutos codificados em base64 da imagem, do PDF ou do vídeo a serem incluídos inline na consulta.
  • DIMENSION: o número de dimensões para os embeddings de saída.
  • NEIGHBOR_COUNT: o número de vizinhos mais próximos a serem recuperados pela consulta de pesquisa.

Para encontrar exemplos de pesquisa baseada em imagens em dados corporativos, consulte o exemplo de código do GitHub.

Pesquisa semântica usando um ID de entidade empresarial

Esse tipo de pesquisa pode ser útil para casos de uso da SAP em que você quer procurar entidades empresariais semelhantes para um ID de entidade específico, por exemplo, encontrar ou recomendar produtos semelhantes se um produto específico estiver fora de estoque. Os IDs de entidade correspondem aos pontos de dados armazenados no índice vetorial.

Para pesquisar um índice de vetor usando um ID de entidade empresarial, use o método FIND_NEIGHBORS_BY_ENTITY_ID da classe /GOOG/CL_VECTOR_SEARCH do SDK da Vertex AI para ABAP. É possível encadenar a chamada do método GET_NEAREST_NEIGHBORS com a chamada do método FIND_NEIGHBORS_BY_ENTITY_ID para receber a resposta da pesquisa.

O exemplo de código abaixo ilustra como realizar uma pesquisa semântica usando um ID de entidade empresarial:

Below is a code snippet that can be taken as reference for an entity id search.
TRY.
    DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key  = 'SEARCH_KEY' ).
    DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_entity_id(
                                                          iv_entity_id = 'ENTITY_ID'
                                                     )->get_nearest_neighbors( ).
    cl_demo_output=>display( lt_vector_search_response ).
  CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
    cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).

ENDTRY.

Substitua:

Para encontrar exemplos de pesquisa usando o ID de entidade em dados empresariais de amostra, consulte o exemplo de código do GitHub.

Use a Pesquisa Vetorial com RAG para fornecer mais contexto ao seu modelo de IA

A pesquisa de vetor mostra os dados empresariais mais relevantes como resposta com base na sua consulta de pesquisa. É possível fornecer mais contexto ao seu modelo de IA alimentando-o com a resposta da pesquisa da Pesquisa Vetorial usando o RAG. A RAG melhora a qualidade das respostas do modelo de IA fornecendo contexto relevante dos dados corporativos recuperados, garantindo que as respostas do modelo permaneçam com base nos dados da empresa.

Para fornecer mais contexto ao seu modelo de IA usando a pesquisa vetorial com RAG, siga estas etapas:

  1. Prepare uma consulta de pesquisa para acessar o contexto empresarial.
  2. Realize a pesquisa de vetor no índice que tem os dados da empresa.
  3. Concatenar ou aumentar a resposta da pesquisa para o comando final seguindo as práticas recomendadas para comandos eficientes.

Para receber as respostas mais relevantes dos modelos de IA para suas arquiteturas baseadas em RAG, mantenha o índice atualizado com as incorporações dos dados empresariais mais recentes. Para mais informações, consulte Atualizar e recriar um índice vetorial.

Para testar um caso de uso empresarial com conjuntos de dados de exemplo, teste a solução de exemplo Vector Search powered by Embeddings from SAP no GitHub. Esta solução de exemplo mostra um mecanismo de recomendação de produtos no ABAP, fornecendo orientação sobre as configurações necessárias e os detalhes de implementação. É possível usar os códigos de exemplo e as referências como base para outros sistemas de recomendação, em que você pode executar a pesquisa semântica diretamente dos seus aplicativos SAP.

A seguir

Colaboradores

Autor: Devesh Singh | Engenheiro de aplicativos SAP

Outro colaborador: Vikash Kumar | Redator técnico