El SDK de IA y ML de BigQuery para ABAP te permite generar y administrar incorporaciones en tus datos empresariales en la fuente en BigQuery.
BigQuery puede servir como una base de datos vectorial rentable para usar sus capacidades de búsqueda vectorial, lo que te permite almacenar y consultar incorporaciones (representaciones vectoriales de datos) directamente en el almacén de datos, lo que podría reducir la necesidad de tener una infraestructura de base de datos vectorial independiente.
Puedes generar incorporaciones para tus datos empresariales almacenados en tus conjuntos de datos de BigQuery con la función ML.GENERATE_EMBEDDING
de BigQuery.
Para acceder a los modelos de incorporación en Vertex AI, crea un modelo remoto en BigQuery ML que represente el extremo del modelo de Vertex AI. Una vez que hayas creado un modelo remoto sobre el modelo de Vertex AI que deseas usar, puedes acceder a las capacidades de ese modelo mediante la ejecución de la función de BigQuery ML en el modelo remoto.
Con el SDK de BigQuery AI y ML para ABAP, puedes usar modelos de incorporación para lo siguiente:
- Genera y almacena incorporaciones para datos de texto
- Genera y almacena incorporaciones para datos multimodales
- Mantén tu base de datos vectorial de BigQuery actualizada con los datos empresariales más recientes
Antes de comenzar
Antes de usar el SDK de BigQuery AI y AA para ABAP con los modelos de embedding, asegúrate de que tú o tus administradores hayan completado los siguientes requisitos previos:
- Habilitaste la API de BigQuery, la API de BigQuery Connection y la API de Vertex AI en tu proyecto de Google Cloud. Para obtener información sobre cómo habilitar las Google Cloud APIs, consulta Habilita las APIs.
- Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- La cuenta de servicio configurada en la clave de cliente para la autenticación debe tener los permisos necesarios.
- Instalaste el SDK de BigQuery AI y ML para ABAP en tu entorno de SAP.
- Creaste un modelo remoto para los modelos de incorporación compatibles.
Precios
El SDK de BigQuery AI y ML para ABAP se ofrece sin costo. Sin embargo, eres responsable de los cargos en las plataformas de BigQuery y Vertex AI:
- BigQuery ML: Se generan costos por los datos que procesas en BigQuery.
- Vertex AI: Se generan costos por las llamadas al servicio de Vertex AI que representa el modelo remoto.
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Para obtener más información sobre los precios de BigQuery, consulta la página Precios de BigQuery.
Para obtener más información sobre los precios de Vertex AI, consulta la página Precios de Vertex AI.
Genera embeddings en BigQuery
En esta sección, se explica cómo generar embeddings para los datos empresariales almacenados en BigQuery desde la lógica de tu aplicación de ABAP con el SDK de BigQuery AI y ML para ABAP.
Crea una instancia de la clase de invocador de incorporaciones de BigQuery
Para invocar los modelos multimodales y de incorporación de texto en conjuntos de datos de BigQuery, debes crear una instancia de la clase /GOOG/CL_BQ_GENERATIVE_MODEL
.
TRY.
DATA(lo_bqml_embeddings_model) = NEW /goog/cl_bq_embeddings_model( iv_key = 'CLIENT_KEY' ).
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( lo_cx_sdk->get_text( ) ).
ENDTRY.
Reemplaza CLIENT_KEY
por la clave de cliente que configuraste para la autenticación en Google Cloud durante la configuración de autenticación.
Genera embeddings
Para ejecutar consultas que generen incorporaciones de texto y datos multimodales con la función ML.GENERATE_EMBEDDING
de BigQuery, usa el método GENERATE_EMBEDDINGS
de la clase /GOOG/CL_BQ_EMBEDDINGS_MODEL
.
El objeto de la clase /GOOG/CL_BQ_QUERY
establecido con la consulta se pasa como entrada al método.
lo_bqml_embeddings_model->generate_embeddings( io_query = lo_bq_query ).
LO_BQ_QUERY
es la referencia de la clase /GOOG/CL_BQ_QUERY
después de configurar la consulta.
Cómo anular los parámetros de generación de modelos
Puedes definir los parámetros de generación del modelo de incorporación en la consulta guardada en BigQuery o en el texto de la consulta que se pasó.
Sin embargo, si necesitas anular los parámetros de la misma consulta desde la lógica de la aplicación ABAP, puedes usar el método SET_GENERATION_CONFIG
de la clase /GOOG/CL_BQ_EMBEDDINGS_MODEL
.
Los parámetros de generación en la consulta inicial se
superponen con los parámetros que se pasan a través de este método.
lo_bqml_embeddings_model->set_generation_config( iv_flatten_json_output = 'IS_FLATTEN_JSON_OUTPUT'
iv_task_type = 'TASK_TYPE'
iv_output_dimensionality = 'OUTPUT_DIMENSIONALITY' ).
Reemplaza lo siguiente:
IS_FLATTEN_JSON_OUTPUT
: Es un valor booleano que determina si el contenido JSON que muestra la función se analiza en columnas separadas.TASK_TYPE
: Es el valor que especifica la aplicación descendente prevista para ayudar al modelo a producir incorporaciones de mejor calidad. Busca valores probables del argumentotask_type
en la sintaxis de entrada paraML.GENERATE_EMBEDDING
.OUTPUT_DIMENSIONALITY
: Es el valor que especifica la cantidad de dimensiones que se usarán cuando se generen embeddings. Busca valores probables del argumentooutput_dimensionality
en la sintaxis de entrada paraML.GENERATE_EMBEDDING
.
Obtén resultados de consultas para generar incorporaciones
Para recibir respuestas procesadas de BigQuery ML para generar incorporaciones y presentarlas de una manera significativa, el SDK usa métodos encadenados en la clase /GOOG/CL_BQ_GENERATIVE_MODEL
, de modo que puedas acceder directamente a la respuesta en una sola sentencia sin necesidad de variables para almacenar los resultados intermedios.
Obtén vectores de incorporación de texto
Para obtener los vectores de inserción de texto para cada fila en la lógica de tu aplicación ABAP, usa el método GET_TEXT_EMBEDDING_VECTORS
.
DATA(lt_embeddings) = lo_bqml_embeddings_model->generate_embeddings( io_query = lo_bq_query
)->get_text_embedding_vectors( ).
Obtén el estado de las incorporaciones de texto
Para obtener el estado de cada generación de incorporaciones de texto para cada fila, usa el método GET_TEXT_EMBEDDING_STATUS
.
Si la operación se realizó correctamente, el estado estará vacío.
DATA(lt_embeddings_status) = lo_bqml_embeddings_model->generate_embeddings( io_query = lo_bq_query
)->get_text_embedding_status( ).
Obtén el estado del trabajo de consulta
Cada consulta en BigQuery se ejecuta como un trabajo de consulta.
Para obtener el estado del trabajo de consulta de las incorporaciones, usa el método GET_QUERY_JOB_STATUS
.
lo_bqml_embeddings_model->generate_embeddings( io_query = lo_bq_query
)->get_query_job_status(
IMPORTING ev_job_complete = DATA(lv_job_complete)
ev_job_creation_reason = DATA(lv_job_creation_reason)
ev_job_id = DATA(lv_job_id)
ev_query_id = DATA(lv_query_id)
ev_total_bytes_processed = DATA(lv_total_bytes_processed)
ev_total_rows = DATA(lv_total_rows) ).
El método muestra las siguientes métricas de estado del trabajo:
- Indica si la consulta se completó o no.
- Es el motivo por el que se creó un trabajo.
- Es la referencia al trabajo que se creó para ejecutar la consulta.
- Es el ID generado automáticamente para la consulta.
- Es la cantidad total de bytes procesados para esta consulta.
- Es la cantidad total de filas en el conjunto de resultados de la consulta completa.
Cómo obtener errores de trabajos de consulta
Para recuperar los errores de la tarea de consulta (si los hay), usa el método GET_QUERY_JOB_ERRORS
.
DATA(lt_query_job_errors) = lo_bqml_embeddings_model->execute_query( io_query = lo_bq_query
)->get_query_job_errors( ).
Obtén una respuesta general para las incorporaciones de texto
Para obtener una tabla de respuestas general de la consulta de incorporaciones de texto que ejecutas, usa el método GET_TEXT_EMBEDDING_RESPONSE
.
Una respuesta se propaga solo cuando el parámetro de generación de modelos FLATTEN_JSON_OUTPUT
se establece en TRUE
en la consulta.
DATA(lt_text_embeddings_response) = lo_bqml_embeddings_model->execute_query( io_query = lo_bq_query
)->get_text_embedding_response( ).