Búsqueda de vectores de Vertex AI para aplicaciones inteligentes de SAP

En este documento, se describe una arquitectura de referencia para compilar aplicaciones SAP inteligentes con la búsqueda de vectores de Vertex AI mediante el SDK de Vertex AI para ABAP. Con la Búsqueda de vectores, puedes compilar aplicaciones de SAP que vayan más allá de la concordancia de palabras clave y usar la comprensión semántica para ayudar a los usuarios a encontrar con precisión lo que necesitan de sus datos empresariales. También puedes usar la Búsqueda vectorial con la generación de aumento de recuperación (RAG) para compilar aplicaciones de IA potentes en tu entorno de SAP. La RAG mejora la calidad de las respuestas de tu modelo de IA, ya que proporciona contexto relevante a partir de tus datos empresariales, lo que garantiza que el modelo de IA se mantenga basado en tus datos empresariales.

El público objetivo de este documento incluye a desarrolladores de ABAP, arquitectos de soluciones de SAP y arquitectos de nube. En este documento, se supone que estás familiarizado con la terminología de Búsqueda vectorial.

Arquitectura

En el siguiente diagrama, se muestra una arquitectura de referencia para usar la búsqueda vectorial en el entorno de aplicaciones de SAP:

Búsqueda de vectores para SAP

Esta arquitectura de referencia incluye los siguientes componentes:

# Componente Detalles
1 Punto de partida de la consulta en SAP

Inicia una búsqueda con una de las siguientes opciones:

  • Servicio de OData: Proporciona una búsqueda a través del servicio de OData en tu aplicación de frontend de SAP.
  • Lógica de la aplicación de SAP: Proporciona una búsqueda a través de la lógica de la aplicación de SAP, como mejoras, informes o trabajos en segundo plano de SAP.
2 SDK de Vertex AI para ABAP El módulo Vector Search Invoker del SDK realiza la búsqueda vectorial según tu búsqueda.
3 Vector Search de Vertex AI

Los datos empresariales se indexan como incorporaciones vectoriales y se organizan dentro de un índice implementado.

Cuando se ingresa una búsqueda, se realiza una búsqueda vectorial en estos datos indexados para encontrar las coincidencias más cercanas.

Luego, estas coincidencias más cercanas se muestran a las aplicaciones de SAP, lo que habilita funciones como la búsqueda semántica y la RAG.

Productos usados

En esta arquitectura de referencia, se usan los siguientes productos de Google Cloud:

  • SDK de Vertex AI para ABAP: Te proporciona módulos y conjuntos de herramientas para compilar aplicaciones centradas en la IA de forma nativa desde ABAP.
  • Búsqueda de vectores de Vertex AI: Permite realizar búsquedas eficientes y a gran escala en tus datos empresariales mediante incorporaciones vectoriales. Esto significa que puedes realizar búsquedas según el significado y el contexto, y no solo por palabras clave.

Casos de uso

En la siguiente lista, se muestran los casos de uso de la Búsqueda vectorial en las aplicaciones de SAP:

  • Compilar motores de recomendación: Analiza las entradas y el comportamiento de los usuarios para sugerir elementos relevantes en las empresas de SAP, como productos, códigos de empresa y cuentas de GL, y ve más allá de la coincidencia de palabras clave.
  • Compilación de canalizaciones de RAG: Accede a información de varias fuentes y, luego, intégrala para enriquecer el contexto de un modelo de IA con información relevante de SAP y de otros orígenes para generar respuestas del modelo precisas y relevantes.
  • Realizar una búsqueda semántica de imágenes: Habilita la búsqueda de imágenes visualmente similares, que es útil para compras, descubrimiento visual y análisis de imágenes médicas.
  • Realizar una búsqueda semántica de texto: Comprende el significado y el contexto del texto para mejorar la precisión de la búsqueda en el análisis de comentarios legales, académicos y de clientes.
  • Realizar búsquedas basadas en lenguaje natural: Proporciona respuestas instantáneas a las preguntas de los usuarios, mejora las Preguntas frecuentes, las bases de conocimiento y las herramientas educativas.
  • Realizar la detección de anomalías: Identifica patrones inusuales y posibles amenazas en finanzas, seguridad de redes y fabricación.

Consideraciones del diseño

En esta sección, se proporciona orientación para ayudarte a usar esta arquitectura de referencia para desarrollar arquitecturas que te ayuden a cumplir con tus requisitos específicos de seguridad, privacidad, cumplimiento, costo y rendimiento.

Security, privacy, and compliance

La seguridad y el cumplimiento son responsabilidades compartidas. Para obtener información detallada, consulta Responsabilidad compartida de Vertex AI.

Para obtener información sobre el compromiso de Google Cloud con la privacidad de los datos, consulta el Centro de recursos de privacidad.

Optimización de costos

Para reducir los costos, considera elegir tamaños de fragmentos más pequeños y representaciones de menor dimensión para tus índices, lo que te permite usar una máquina de procesamiento más pequeña para implementar los índices.

Vertex AI es una oferta facturable de Google Cloud. Para obtener información sobre los precios, consulta los precios de Vertex AI y los precios de Vector Search. Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Optimización del rendimiento

Para mejorar la latencia de búsqueda de conjuntos de datos grandes, considera elegir tamaños de fragmentos más altos cuando crees tu índice y máquinas de procesamiento de alto rendimiento cuando lo implementes. Para obtener más información sobre los tamaños de fragmentos de un índice, consulta Tamaño del índice.

Para aumentar la relevancia de las respuestas de la búsqueda, genera incorporaciones de tus datos empresariales en dimensiones superiores. Las máquinas de procesamiento y las dimensiones de incorporación más altas son costosas. Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.

Antes de comenzar

Antes de usar Vector Search en tu entorno de aplicaciones de SAP, asegúrate de que tú o tus administradores hayan completado lo siguiente:

Crea y administra el índice vectorial

Para usar Vector Search, debes tener indexados y implementados tus datos empresariales en forma de incorporaciones vectoriales. Para ello, sigue estos pasos:

  1. Genera incorporaciones vectoriales con modelos de IA de incorporaciones multimodales o de texto en Vertex AI o cualquier otra plataforma.
  2. Sube las incorporaciones a un bucket de Cloud Storage.
  3. Crea un índice vectorial con el bucket de Cloud Storage que contiene las incorporaciones.
  4. Crea un extremo de índice y, luego, implementa el índice de vectores en él para realizar una búsqueda semántica en tus datos empresariales indexados.

Puedes realizar los pasos anteriores desde la consola de Google Cloud o usar el SDK de Vertex AI para ABAP para activarlos desde tu entorno de SAP.

Para obtener los resultados de la Búsqueda vectorial más precisos para una solución de IA empresarial, también debes mantener el índice actualizado con los datos empresariales más recientes. Para obtener más información, consulta Cómo actualizar y volver a compilar un índice vectorial.

Invoca la Búsqueda de vectores desde aplicaciones de SAP

Desde tus aplicaciones de SAP, puedes usar el SDK de Vertex AI para ABAP para realizar búsquedas semánticas en tus datos empresariales indexados de las siguientes maneras:

Puedes usar los resultados de la Búsqueda vectorial para mejorar el contexto de tu modelo de IA con el contexto empresarial mediante RAG. Esto mantiene las respuestas del modelo fundamentadas en tus datos empresariales. También puedes usar estos resultados como entrada para los procesos empresariales o para generar recomendaciones.

Búsqueda semántica con instrucciones de texto

Para buscar en tu texto indexado y tus datos multimodales con instrucciones de texto, puedes usar el método FIND_NEIGHBORS_BY_STRING de la clase /GOOG/CL_VECTOR_SEARCH del SDK de Vertex AI para ABAP. Puedes encadenar la llamada al método GET_NEAREST_NEIGHBORS con la llamada al método FIND_NEIGHBORS_BY_STRING para obtener la respuesta de la búsqueda.

En la siguiente muestra de código, se ilustra cómo realizar una búsqueda semántica con instrucciones 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.

Reemplaza lo siguiente:

  • SEARCH_KEY: Es la clave de búsqueda, que se configura en los parámetros de Vector Search.
  • SEARCH_STRING: Es la instrucción de texto de entrada.
  • MODEL_KEY: Es la clave de modelo configurada en los parámetros de generación del modelo. Este modelo se usa para convertir tu búsqueda en incorporaciones.
  • NEIGHBOR_COUNT: Es la cantidad de vecinos más cercanos que recuperará la búsqueda.

Para encontrar ejemplos de búsqueda basada en texto en datos multimodales y de texto empresarial de muestra, consulta los ejemplos de código de GitHub para la búsqueda semántica en un conjunto de datos de texto con instrucciones de texto y la búsqueda semántica en imágenes con instrucciones de texto.

Búsqueda semántica con instrucciones multimodales

Este tipo de búsqueda es útil cuando quieres encontrar las coincidencias más cercanas de tus datos multimodales, que pueden ser imágenes o videos. Por ejemplo, si tienes una aplicación web de SAP (Fiori o UI5) y quieres tomar una foto de una prenda de ropa, un producto o una pieza de equipo, y encontrar las coincidencias más cercanas con respecto a la foto, puedes elegir esta opción de búsqueda.

Para buscar en tus datos multimodales indexados con instrucciones multimodales, puedes usar el método FIND_NEIGHBORS_BY_EMBEDDING de la clase /GOOG/CL_VECTOR_SEARCH del SDK de Vertex AI para ABAP. Puedes encadenar la llamada al método GET_NEAREST_NEIGHBORS con la llamada al método FIND_NEIGHBORS_BY_EMBEDDING para obtener la respuesta de la búsqueda.

En la siguiente muestra de código, se ilustra cómo realizar una búsqueda semántica con una imagen:

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.

Reemplaza lo siguiente:

  • SEARCH_KEY: Es la clave de búsqueda, que se configura en los parámetros de Vector Search.
  • MODEL_KEY: Es la clave de modelo configurada en los parámetros de generación del modelo. Este modelo se usa para convertir tu búsqueda en incorporaciones.
  • RAW_DATA: Son los datos sin procesar codificados en base64 de la imagen, el PDF o el video que se incluirán intercalados en la consulta.
  • DIMENSION: Es la cantidad de dimensiones de las incorporaciones de salida.
  • NEIGHBOR_COUNT: Es la cantidad de vecinos más cercanos que recuperará la búsqueda.

Para encontrar ejemplos de búsqueda basada en imágenes en datos empresariales de muestra, consulta la muestra de código de GitHub.

Búsqueda semántica con un ID de entidad empresarial

Este tipo de búsqueda puede ser útil para casos de uso de SAP en los que deseas buscar entidades empresariales similares para un ID de entidad en particular, por ejemplo, encontrar o recomendar productos similares si un producto en particular está agotado. Los IDs de entidad corresponden a los datos almacenados en tu índice vectorial.

Para buscar un índice de vectores con un ID de entidad empresarial, puedes usar el método FIND_NEIGHBORS_BY_ENTITY_ID de la clase /GOOG/CL_VECTOR_SEARCH del SDK de Vertex AI para ABAP. Puedes encadenar la llamada al método GET_NEAREST_NEIGHBORS con la llamada al método FIND_NEIGHBORS_BY_ENTITY_ID para obtener la respuesta de la búsqueda.

En la siguiente muestra de código, se ilustra cómo realizar una búsqueda semántica con un ID de entidad 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.

Reemplaza lo siguiente:

  • SEARCH_KEY: Es la clave de búsqueda, que se configura en los parámetros de Vector Search.
  • ENTITY_ID: Es el ID de la entidad que se buscará.

Para encontrar ejemplos de búsquedas con el ID de entidad en datos empresariales de muestra, consulta la muestra de código de GitHub.

Usa la Búsqueda de vectores con RAG para proporcionar contexto adicional a tu modelo de IA

Vector Search muestra los datos empresariales más relevantes como respuesta según tu búsqueda. Puedes proporcionar contexto adicional a tu modelo de IA alimentándolo con la respuesta de la búsqueda de Vector Search mediante RAG. La RAG mejora la calidad de las respuestas de tu modelo de IA, ya que proporciona un contexto relevante a partir de los datos empresariales recuperados, lo que garantiza que las respuestas del modelo se basen en tus datos empresariales.

Para proporcionar contexto adicional a tu modelo de IA con la búsqueda de vectores con RAG, sigue estos pasos:

  1. Prepara una búsqueda para obtener el contexto empresarial.
  2. Realiza una Búsqueda de vectores en el índice que tiene los datos empresariales.
  3. Concatena o aumenta la respuesta de la búsqueda a la instrucción final siguiendo las prácticas recomendadas para generar instrucciones eficientes.

Para obtener las respuestas más relevantes de los modelos de IA para tus arquitecturas basadas en RAG, mantén tu índice actualizado con las incorporaciones de tus datos empresariales más recientes. Para obtener más información, consulta Cómo actualizar y volver a compilar un índice vectorial.

Para experimentar con un caso de uso empresarial con conjuntos de datos de muestra, prueba la solución de ejemplo de Búsqueda vectorial potenciada por incorporaciones de SAP en GitHub. En esta solución de ejemplo, se muestra un motor de recomendación de productos en ABAP, que proporciona orientación sobre las configuraciones requeridas y los detalles de implementación. Puedes usar los códigos de muestra y las referencias como base para otros sistemas de recomendación, en los que puedes ejecutar la búsqueda semántica directamente desde tus aplicaciones de SAP.

¿Qué sigue?

Colaboradores

Autor: Devesh Singh | Ingeniero de aplicaciones de SAP

Otro colaborador: Vikash Kumar | Escritor técnico