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:
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:
|
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:
- Instalou a versão mais recente do local ou de qualquer edição na nuvem do ABAP SDK for Google Cloud.
- Ativar a API Vertex AI no seu projeto do Google Cloud.
- Configure a autenticação para acessar a API Vertex AI.
- Configurou os parâmetros da pesquisa de vetor.
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:
- Gere embeddings de vetor usando modelos de IA de embeddings de texto ou multimodais na Vertex AI ou em qualquer outra plataforma.
- Faça upload dos embeddings em um bucket do Cloud Storage.
- Crie um índice de vetores com o bucket do Cloud Storage que contém as informações de embeddings.
- 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:
- Pesquisar usando comandos de texto: faça a pesquisa semântica nos seus dados de texto e multimodais usando a string de pesquisa.
- Pesquisar usando comandos multimodais: realize pesquisas semânticas nos dados multimodais usando entradas multimodais, como uma imagem ou um vídeo.
- Pesquisar usando IDs de entidade corporativa: realize uma pesquisa semântica nos dados corporativos usando IDs específicos da empresa, como ID do produto, do pedido ou do cliente.
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:
SEARCH_KEY
: a chave de pesquisa, que é configurada nos parâmetros da pesquisa de vetor.ENTITY_ID
: o ID da entidade a ser pesquisada.
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:
- Prepare uma consulta de pesquisa para acessar o contexto empresarial.
- Realize a pesquisa de vetor no índice que tem os dados da empresa.
- 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
- Para determinar a relevância de cada resultado de pesquisa para sua consulta, consulte Conferir a distância do vizinho buscado.
- Para saber como usar a pesquisa de vetor com o SDK da Vertex AI para ABAP, consulte Usar a pesquisa de vetor da Vertex AI.
Se você precisar de ajuda para resolver problemas com o SDK ABAP para Google Cloud, faça o seguinte:
- Consulte o guia de solução de problemas do ABAP SDK for Google Cloud.
- Faça suas perguntas e discuta o SDK ABAP para Google Cloud com a comunidade nos Fóruns do Cloud.
- Colete todas as informações de diagnóstico disponíveis e entre em contato com o Cloud Customer Care. Para mais informações sobre como entrar em contato com o atendimento ao cliente, consulte Como receber suporte para o SAP no Google Cloud.
Colaboradores
Autor: Devesh Singh | Engenheiro de aplicativos SAP
Outro colaborador: Vikash Kumar | Redator técnico