Recopila y visualiza instrucciones y respuestas multimodales

En este documento, se describe cómo puedes configurar un agente de IA creado con el framework del Kit de desarrollo de agentes (ADK) para recopilar y almacenar instrucciones y respuestas multimodales. También se describe cómo puedes ver, analizar y evaluar tu contenido multimedia multimodal almacenado:

Tipos de medios que puedes recopilar

Puedes recopilar los siguientes tipos de contenido multimedia:

  • Audio.
  • Documentos
  • Imágenes
  • Texto sin formato y texto con formato de Markdown
  • Video

Tus instrucciones y respuestas pueden incluir contenido intercalado y vínculos. Los vínculos pueden dirigir a recursos públicos o a buckets de Cloud Storage.

Dónde se almacenan tus instrucciones y respuestas

Cuando tu aplicación agentiva crea o recibe instrucciones o respuestas, el ADK invoca la instrumentación de OpenTelemetry. Esta instrumentación formatea las instrucciones y las respuestas, y los datos multimodales que puedan contener, según la versión 1.37.0 de las convenciones semánticas de OpenTelemetry GenAI. También se admiten versiones posteriores.

A continuación, la instrumentación de OpenTelemetry hace lo siguiente:

  • Crea identificadores de objetos para las instrucciones y los datos de respuesta, y, luego, escribe esos datos en tu bucket de Cloud Storage. Las entradas de tu bucket de Cloud Storage se guardan en formato de líneas JSON.

  • Envía datos de registros y de seguimiento a tu proyecto Google Cloud , en el que los servicios de Logging y Trace transfieren y almacenan los datos. Las convenciones semánticas de OpenTelemetry determinan muchos de los atributos y campos adjuntos a tus entradas de registro o a tus intervalos de seguimiento.

    Cuando la instrumentación de OpenTelemetry crea objetos de bucket de Cloud Storage, también escribe una entrada de registro que contiene referencias a esos objetos. En el siguiente ejemplo, se muestra parte de una entrada de registro que incluye referencias a objetos:

    {
      ...
      "labels": {
        "gen_ai.system": "vertex_ai",
        "event.name": "gen_ai.client.inference.operation.details",
        "gen_ai.output.messages_ref": "gs://my-bucket/eso9aP7NA_GX2PgPkrOi-Qg_output.jsonl",
        "gen_ai.system.instructions_ref": "gs://my-bucket/eso9aP7NA_GX2PgPkrOi-Qg_system_instructions.jsonl",
        "gen_ai.input.messages_ref": "gs://my-bucket/eso9aP7NA_GX2PgPkrOi-Qg_input.jsonl"
      },
      "logName": "projects/my-project/logs/gen_ai.client.inference.operation.details",
      "trace": "projects/my-project/traces/963761020fc7713e4590cad89ad03229",
      "spanId": "1234512345123451",
      ...
    }
    

    En el ejemplo de entrada de registro, observa lo siguiente:

    • La etiqueta "event.name": "gen_ai.client.inference.operation.details" indica que la entrada de registro contiene referencias a objetos de Cloud Storage.
    • Las etiquetas cuyas claves incluyen gen_ai hacen referencia a un objeto en un bucket de Cloud Storage.
    • Todas las entradas de registro que contienen referencias a objetos se escriben en el mismo registro, que se llama projects/my-project/logs/gen_ai.client.inference.operation.details.

    Para obtener información sobre cómo mostrar las entradas de registro que contienen referencias a objetos, consulta la sección Cómo encontrar todas las entradas de registro que hacen referencia a instrucciones y respuestas de este documento.

Recopila instrucciones y respuestas multimodales

El ADK invoca automáticamente OpenTelemetry para almacenar tus instrucciones y respuestas, y para enviar datos de registro y seguimiento a tu proyecto de Google Cloud . No es necesario que modifiques tu aplicación. Sin embargo, debes configurar tu proyecto de Google Cloud y el ADK.

Para recopilar y ver tus instrucciones y respuestas multimodales desde una aplicación, haz lo siguiente:

  1. Configura tu proyecto:

    1. Verify that billing is enabled for your Google Cloud project.

    2. Enable the Vertex AI, Cloud Storage, Telemetry, Cloud Logging, and Cloud Trace APIs.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the APIs

    3. Asegúrate de tener un bucket de Cloud Storage. Si es necesario, crea un bucket de Cloud Storage.

      Te recomendamos que realices estas tareas:

      • Crea tu bucket de Cloud Storage en la misma ubicación que el bucket de registros que almacena los datos de registro de tu aplicación. Esta configuración hace que las consultas de BigQuery sean más eficientes.

      • Asegúrate de que la clase de almacenamiento de tu bucket de Cloud Storage admita tablas externas. Esta capacidad te permite consultar tus instrucciones y respuestas con BigQuery. Si no planeas usar la configuración predeterminada para un nuevo bucket de Cloud Storage, antes de crear el bucket, revisa Crea tablas externas de Cloud Storage.

      • Establece el período de retención de tu bucket de Cloud Storage para que coincida con el período de retención del bucket de registros que almacena tus entradas de registro. El período de retención predeterminado para los datos de registro es de 30 días. Para obtener información sobre cómo configurar el período de retención de tu bucket de Cloud Storage, consulta Bloqueo de buckets.

    4. Otorga a la cuenta de servicio que usa tu aplicación el permiso storage.objects.create en tu bucket de Cloud Storage. Este permiso permite que tu aplicación escriba objetos en tu bucket de Cloud Storage. Estos objetos almacenan las instrucciones y las respuestas que crea o recibe tu aplicación basada en agentes. Para obtener más información, consulta Configura y administra políticas de IAM en buckets.

  2. Configura el ADK:

    1. Instala y actualiza las siguientes dependencias:

      • google-adk>=1.16.0
      • opentelemetry-instrumentation-google-genai>=0.4b0
      • fsspec[gcs]
    2. Actualiza la invocación del ADK para activar la marca otel_to_cloud:

      • Si usas la CLI del ADK, ejecuta el siguiente comando:

        adk web --otel_to_cloud  [other options]
        
      • De lo contrario, pasa la marca cuando crees la app de FastAPI:

        get_fast_api_app(..., otel_to_cloud=True)
        
    3. Configura las siguientes variables de entorno:

      • Indica a OpenTelemetry que dé formato a los objetos de Cloud Storage como líneas JSON.

        OTEL_INSTRUMENTATION_GENAI_UPLOAD_FORMAT='jsonl'
        
      • Indica a OpenTelemetry que suba los datos de las instrucciones y las respuestas en lugar de incorporar este contenido en los intervalos de seguimiento. En una entrada de registro, se incluyen referencias a los objetos subidos.

        OTEL_INSTRUMENTATION_GENAI_COMPLETION_HOOK='upload'
        
      • Indica a OpenTelemetry que use las convenciones semánticas más recientes para la IA generativa.

        OTEL_SEMCONV_STABILITY_OPT_IN='gen_ai_latest_experimental'
        
      • Especifica la ruta de acceso para los objetos:

        OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH='gs://STORAGE_BUCKET/PATH'
        

        En la expresión anterior, STORAGE_BUCKET hace referencia al nombre del bucket de Cloud Storage. PATH hace referencia a la ruta de acceso en la que se almacenan los objetos.

Cómo ver instrucciones y respuestas multimodales

Para determinar las instrucciones y las respuestas que se mostrarán en un intervalo, Cloud Trace emite consultas para leer los datos de registro y los datos almacenados en un bucket de Cloud Storage. Tus roles de Identity and Access Management (IAM) en los recursos consultados determinan si se devuelven datos. En algunos casos, es posible que veas un mensaje de error. Por ejemplo, si no tienes permiso para leer datos de un bucket de Cloud Storage, los intentos de acceder a esos datos generarán un error de permiso denegado.

Las instrucciones y las respuestas aparecen en un formato similar al de un chat, y tú seleccionas si las imágenes, como las de los medios, se renderizan automáticamente o aparecen en formato de fuente. Del mismo modo, puedes ver todo el historial de conversaciones o solo las instrucciones y respuestas adjuntas a un tramo.

Por ejemplo, en el siguiente ejemplo, se ilustra cómo aparecen las instrucciones y las respuestas, y cómo se resumen los atributos de OpenTelemetry:

Ejemplo del resultado renderizado.

Antes de comenzar

Para obtener los permisos que necesitas para ver tus instrucciones y respuestas multimodales, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Encuentra los tramos que contienen instrucciones y respuestas multimodales

Para encontrar los tramos que contienen instrucciones y respuestas multimodales, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página Explorador de seguimiento:

    Ve al Explorador de seguimiento

    También puedes usar la barra de búsqueda para encontrar esta página.

  2. En el panel Span filter, ve a la sección Span name y selecciona generate_content.

    También puedes agregar el filtro gen_ai.operation.name: generate_content.

  3. Selecciona un tramo de la lista de tramos.

    Se abrirá la página Detalles del tramo. En esta página, se muestra el intervalo dentro del contexto del registro. Si el nombre de un tramo tiene un botón etiquetado como Entradas/Salidas, , significa que hay eventos de IA generativa disponibles. En la siguiente sección, Explora tus instrucciones y respuestas multimodales, se explica cómo se presentan los datos y las opciones de visualización.

Explora tus instrucciones y respuestas multimodales

La pestaña Entradas/Salidas contiene dos secciones. Una sección muestra las instrucciones y las respuestas, y la otra muestra OpenTelemetry: Attributes. Esta pestaña solo aparece cuando los intervalos enviados a Trace siguen las convenciones semánticas de OpenTelemetry GenAI, versión 1.37.0 o posterior, lo que genera mensajes cuyos nombres comienzan con gen_ai.

En la pestaña Entradas/Salidas, se muestran tus mensajes en un formato similar al de un chat. Puedes controlar qué mensajes aparecen y su formato con las opciones de la pestaña:

  • Para ver toda la conversación, expande el panel Mensajes históricos.
  • Para ver solo las instrucciones y las respuestas en el período seleccionado, usa el panel Mensajes más recientes.
  • Para ver imágenes, videos o cualquier otro contenido multimedia, selecciona Formateado.

    El sistema no siempre muestra contenido multimedia. Para protegerte, si una instrucción o respuesta incluye un vínculo a una imagen, un documento o un video públicos, debes confirmar que quieres que se muestre el contenido multimedia. Del mismo modo, si una instrucción o respuesta incluye contenido multimedia almacenado en tu bucket de Cloud Storage y si el contenido multimedia es muy grande, debes confirmar que quieres que se muestre.

    Algunos medios, como las imágenes y los videos, aparecen con un menú adjunto. Puedes usar este menú para realizar acciones como descargar una imagen en una unidad local. Las opciones del menú dependen del tipo de medio.

  • Para ver los mensajes con el formato JSON, selecciona Sin procesar. Con esta selección, no se renderizan los medios, como las imágenes.

    Por ejemplo, en la siguiente imagen, se ilustra cómo aparece una conversación en formato sin procesar:

    Ejemplo del resultado sin procesar.

Encuentra todas las entradas de registro que hacen referencia a instrucciones y respuestas

Para enumerar las entradas de registro que incluyen referencias a objetos de instrucciones y respuestas multimodales, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Explorador de registros:

    Accede al Explorador de registros.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. En el selector de proyectos, selecciona tu proyecto de Google Cloud .

  3. En la barra de herramientas, expande Todos los nombres de registro, ingresa gen_ai en el filtro y, luego, selecciona el registro llamado gen_ai.client.inference.operation.details.

    Los pasos anteriores agregan la siguiente consulta al Explorador de registros:

    logName="projects/PROJECT_ID/logs/gen_ai.client.inference.operation.details"
    

    Si lo prefieres, puedes copiar la instrucción y pegarla en el panel Consulta del Explorador de registros, pero reemplaza PROJECT_ID por el ID de tu proyecto antes de copiar la instrucción.

    También puedes filtrar los datos de registro por valor de etiqueta. Por ejemplo, si agregas el siguiente filtro, solo aparecerán las entradas de registro que contengan la etiqueta especificada:

    labels."event.name"="gen_ai.client.inference.operation.details"
    
  4. Para ver las instrucciones y las respuestas a las que se hace referencia en una entrada de registro, haz clic en Ver detalles de seguimiento en la entrada de registro.

    Para obtener información sobre cómo usar las opciones de la pestaña Entradas/Salidas, consulta la sección Explora tus instrucciones y respuestas multimodales de este documento.

Analiza datos de respuestas a instrucciones con BigQuery

Puedes analizar las instrucciones y las respuestas que almacena tu bucket de Cloud Storage con BigQuery. Antes de realizar este análisis, completa los siguientes pasos:

  1. Habilita las APIs necesarias y asegúrate de que se te hayan otorgado los roles de IAM necesarios.
  2. Crea un conjunto de datos vinculado en tu bucket de registros.
  3. Otorga permiso a BigQuery para leer datos de tu bucket de Cloud Storage.
  4. Crea una tabla externa.

Después de crear la tabla externa, une los datos de tu bucket de registros con la tabla externa y realiza tu análisis sobre los datos unidos. En esta sección, se ilustra cómo unir tus tablas y extraer campos específicos. También se ilustra cómo analizar la tabla combinada con las funciones de BigQuery ML.

Antes de comenzar

Los roles de IAM que se enumeran en esta sección son necesarios para realizar acciones como actualizar un bucket de registros y crear una tabla externa. Sin embargo, después de completar la configuración, se requieren menos permisos para ejecutar consultas.

  1. Enable the BigQuery and BigQuery Connection APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  2. Para obtener los permisos que necesitas para configurar el sistema de modo que puedas ver tus instrucciones y respuestas multimodales en BigQuery, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

    Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Crea un conjunto de datos vinculado en tu bucket de registros

  1. Para determinar si el bucket de registros que almacena tus datos de registros se actualizó para usar el Análisis de registros, ejecuta el siguiente comando:

    gcloud logging buckets describe LOG_BUCKET_ID --location=LOCATION
    

    Reemplaza lo siguiente antes de ejecutar el comando:

    • LOG_BUCKET_ID: Es el ID del bucket de registros.
    • LOCATION: Es la ubicación del bucket de registros.

    Cuando se actualiza un bucket de registros para usar Log Analytics, los resultados del comando describe incluyen la siguiente instrucción:

    analyticsEnabled: true
    

    Si tu bucket de registros no se actualizó, ejecuta el siguiente comando:

    gcloud logging buckets update LOG_BUCKET_ID --location=LOCATION --enable-analytics --async
    

    La actualización puede tardar varios minutos en completarse. Cuando el comando describe informa que lifecycleState es ACTIVE, la actualización se completó.

  2. Para crear un conjunto de datos vinculado en tu bucket de registros, ejecuta el siguiente comando:

    gcloud logging links create LINKED_DATASET_NAME --bucket=LOG_BUCKET_ID --location=LOCATION
    

    Reemplaza lo siguiente antes de ejecutar el comando:

    • LOG_BUCKET_ID: Es el ID del bucket de registros.
    • LOCATION: Es la ubicación del bucket de registros.
    • LINKED_DATASET_NAME: Nombre del conjunto de datos vinculado que se creará.

    El conjunto de datos vinculado permite que BigQuery lea los datos de registros almacenados en tu bucket de registros. Para obtener más información, consulta Cómo consultar un conjunto de datos vinculado de BigQuery.

    Para confirmar que el vínculo existe, ejecuta el siguiente comando:

    gcloud logging links list --bucket=LOG_BUCKET_ID --location=LOCATION
    

    Si se ejecuta correctamente, la respuesta al comando anterior incluye la siguiente línea:

    LINK_ID: LINKED_DATASET_NAME
    

Otorga permiso a BigQuery para leer desde tu bucket de Cloud Storage

  1. Para crear una conexión de BigQuery, ejecuta el siguiente comando:

    bq mk --connection --location=CONNECTION_LOCATION --project_id=PROJECT_ID \
          --connection_type=CLOUD_RESOURCE CONNECTION_ID
    

    Reemplaza lo siguiente antes de ejecutar el comando:

    • PROJECT_ID: Es el identificador del proyecto.
    • CONNECTION_ID: Es el ID de la conexión que se creará.
    • CONNECTION_LOCATION: Es la ubicación de la conexión.

    Cuando el comando se completa correctamente, muestra un mensaje similar al siguiente:

    Connection 151560119848.CONNECTION_LOCATION.CONNECTION_ID successfully created
    
  2. Verifica la conexión.

    bq show --connection PROJECT_ID.CONNECTION_LOCATION.CONNECTION_ID
    

    La respuesta a este comando enumera el ID de conexión y una cuenta de servicio:

    {"serviceAccountId": "bqcx-151560119848-s1pd@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
    
  3. Otorga a la cuenta de servicio de la conexión de BigQuery un rol de IAM que le permita leer los datos almacenados en tu bucket de Cloud Storage:

    gcloud storage buckets add-iam-policy-binding gs://STORAGE_BUCKET \
      --member=serviceAccount:SERVICE_ACCT_EMAIL \
      --role=roles/storage.objectViewer
    

    Reemplaza lo siguiente antes de ejecutar el comando:

    • STORAGE_BUCKET: Es el nombre de tu bucket de Cloud Storage.
    • SERVICE_ACCT_EMAIL: Es la dirección de correo electrónico de tu cuenta de servicio.

Crea una tabla externa de BigLake

Para usar BigQuery y consultar datos que BigQuery no almacena, crea una tabla externa. Como un bucket de Cloud Storage almacena las instrucciones y las respuestas, crea una tabla externa de BigLake.

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery Studio

    También puedes usar la barra de búsqueda para encontrar esta página.

  2. En el editor de consultas, escribe la siguiente sentencia:

    CREATE OR REPLACE EXTERNAL TABLE `PROJECT_ID.EXT_TABLE_DATASET_NAME.EXT_TABLE_NAME` (
      -- Schema matching the JSON structure in a Cloud Storage bucket.
      parts ARRAY<
          STRUCT<
            type STRING,
            content STRING,
    
            -- multimodal attachments
            mime_type STRING,
            uri STRING,
            data BYTES,
    
            -- tool calls
            id STRING,
            name STRING,
            arguments JSON,
            response JSON
          >
        >,
        role STRING,
        `index` INT64,
      )
    
    WITH CONNECTION `PROJECT_ID.CONNECTION_LOCATION.CONNECTION_ID`
    OPTIONS (
      format = 'NEWLINE_DELIMITED_JSON',
      uris = ['gs://STORAGE_BUCKET/PATH/*'],
      ignore_unknown_values = TRUE
    );
    

    Reemplaza lo siguiente antes de ejecutar el comando:

    • PROJECT_ID: Es el identificador del proyecto.
    • EXT_TABLE_DATASET_NAME: El nombre del conjunto de datos que se borrará.
    • EXT_TABLE_NAME: Es el nombre de la tabla externa de BigLake que se creará.
    • CONNECTION_LOCATION: Es la ubicación de tu CONNECTION_ID.
    • CONNECTION_ID: Es el ID de la conexión.
    • STORAGE_BUCKET: Es el nombre del bucket de Cloud Storage.
    • PATH: Es la ruta de acceso a las instrucciones y respuestas. La variable de entorno OTEL_INSTRUMENTATION_GENAI_UPLOAD_BASE_PATH especifica la ruta de acceso.
  3. Haz clic en Ejecutar.

Para obtener más información sobre las tablas externas, consulta los siguientes recursos:

Une tu tabla externa con tus datos de registro

En esta sección, se ilustra cómo puedes analizar tus instrucciones multimodales en BigQuery. La solución se basa en unir tu tabla externa de BigLake con tus datos de registro, lo que te permite recuperar objetos de tu bucket de Cloud Storage. El ejemplo une el URI de los mensajes de entrada, gen_ai.input.messages. También puedes unir el URI de los mensajes de salida, gen_ai.output.messages, o las instrucciones del sistema, gen_ai.system.instructions.

Para unir tu tabla externa de BigLake con tus datos de registro, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página BigQuery.

    Ir a BigQuery Studio

    También puedes usar la barra de búsqueda para encontrar esta página.

  2. En el editor de consultas, ingresa la siguiente consulta, que une tus datos de registro y tu tabla externa en la ruta de acceso a las entradas del bucket de Cloud Storage:

    -- Query the linked dataset for completion logs.
    FROM PROJECT_ID.LINKED_DATASET_NAME._AllLogs
    |> WHERE
        log_name = 'projects/PROJECT_ID/logs/gen_ai.client.inference.operation.details'
        AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
    |> SELECT
      insert_id,
      timestamp,
      labels,
      trace,
      span_id,
      STRING(labels['gen_ai.input.messages_ref']) AS messages_ref_uri
    
    -- Join completion log entries with the external table.
    |> JOIN `PROJECT_ID.EXT_TABLE_DATASET_NAME.EXT_TABLE_NAME`
        ON messages_ref_uri = _FILE_NAME
    |> RENAME `index` AS message_idx
    
    -- Flatten.
    |> CROSS JOIN UNNEST(parts) AS part WITH OFFSET AS part_idx
    
    -- Print fields.
    |> SELECT
        insert_id,
        labels,
        timestamp,
        trace,
        span_id,
        role,
        part.content,
        part.uri,
        part.mime_type,
        TO_HEX(MD5(part.data)) AS data_md5_hex,
        part.id AS tool_id,
        part.name AS tool_name,
        part.arguments AS tool_args,
        part.response AS tool_response,
        message_idx,
        part_idx,
    |> ORDER BY timestamp, message_idx, part_idx;
    |> LIMIT 10;
    

    Reemplaza lo siguiente antes de ejecutar la consulta:

    • PROJECT_ID: Es el identificador del proyecto.
    • LINKED_DATASET_NAME: Es el nombre del conjunto de datos vinculado.
    • EXT_TABLE_DATASET_NAME: Es el nombre del conjunto de datos de la tabla externa de BigLake.
    • EXT_TABLE_NAME: Es el nombre de la tabla externa de BigLake.
  3. Opcional: La consulta anterior filtra por el nombre del registro y la marca de tiempo. Si también deseas filtrar por un ID de seguimiento específico, agrega la siguiente instrucción a la cláusula WHERE:

    AND trace = 'projects/PROJECT_ID/traces/TRACE_ID'
    

    En la expresión anterior, reemplaza TRACE_ID por la cadena hexadecimal de 16 bytes que contiene un ID de seguimiento.

Usa las funciones de BigQuery ML

Puedes usar funciones de BigQuery ML, como AI.GENERATE, en las instrucciones y respuestas almacenadas en tu bucket de Cloud Storage.

Por ejemplo, la siguiente consulta une las entradas del registro de finalización con la tabla externa, aplana y filtra el resultado de la unión. A continuación, la instrucción ejecuta AI.GENERATE para analizar si las entradas contienen una imagen y generar un resumen de cada entrada:

-- Query the linked dataset for completion logs.
FROM PROJECT_ID.LINKED_DATASET_NAME._AllLogs
|> WHERE
    log_name = 'projects/PROJECT_ID/logs/gen_ai.client.inference.operation.details'
    AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
|> SELECT
  insert_id,
  timestamp,
  labels,
  trace,
  span_id,
  STRING(labels['gen_ai.input.messages_ref']) AS messages_ref_uri

-- Join completion log entries with the external table.
|> JOIN `PROJECT_ID.EXT_TABLE_DATASET_NAME.EXT_TABLE_NAME`
    ON messages_ref_uri = _FILE_NAME
|> RENAME `index` AS message_idx

-- Flatten.
|> CROSS JOIN UNNEST(parts) AS part WITH OFFSET AS part_idx
|> WHERE part.uri IS NOT NULL AND part.uri LIKE 'gs://%'
|> LIMIT 10

-- Use natural language to search for images, and then summarize the entry.
|> EXTEND
    AI.GENERATE(
      (
        'Describe the attachment in one sentence and whether the image contains a diagram.',
        OBJ.FETCH_METADATA(OBJ.MAKE_REF(part.uri, 'CONNECTION_LOCATION.CONNECTION_ID'))),
      connection_id => 'CONNECTION_LOCATION.CONNECTION_ID',
      endpoint => 'gemini-2.5-flash-lite',
      output_schema => 'description STRING, is_match BOOLEAN') AS gemini_summary
|> SELECT insert_id, trace, span_id, timestamp, part_idx, part.uri, part.mime_type, gemini_summary
|> WHERE gemini_summary.is_match = TRUE
|> ORDER BY timestamp DESC

Reemplaza lo siguiente antes de ejecutar la consulta:

  • PROJECT_ID: Es el identificador del proyecto.
  • LINKED_DATASET_NAME: Es el nombre del conjunto de datos vinculado.
  • EXT_TABLE_DATASET_NAME: Es el nombre del conjunto de datos de la tabla externa de BigLake.
  • EXT_TABLE_NAME: Es el nombre de la tabla externa de BigLake.
  • CONNECTION_LOCATION: Es la ubicación de tu CONNECTION_ID.
  • CONNECTION_ID: ID de la conexión.

Ejecuta evaluaciones sobre los datos de instrucciones y respuestas con Colaboratory

Puedes evaluar tus instrucciones y respuestas con el SDK de Vertex AI para Python.

Para ejecutar evaluaciones con un notebook de Google Colaboratory, haz lo siguiente:

  1. Para ver un notebook de ejemplo, haz clic en evaluating_observability_datasets.ipynb.

    Se abrirá GitHub y se mostrarán instrucciones para usar el notebook.

  2. Selecciona Abrir en Colab.

    Se abrirá Colaboratory y se mostrará el archivo evaluating_observability_datasets.ipynb.

  3. En la barra de herramientas, haz clic en Copiar en Drive.

    Colaboratory crea una copia del notebook, la guarda en tu unidad y, luego, la abre.

  4. En tu copia, ve a la sección titulada Configura la información del proyecto de Google Cloud y, luego, ingresa tu Google Cloud ID del proyecto y una ubicación compatible con Vertex AI. Por ejemplo, puedes establecer la ubicación en "us-central1".

  5. Ve a la sección titulada Carga conjuntos de datos de IA generativa de Observabilidad de Google y, luego, ingresa valores para las siguientes fuentes:

    • INPUT_SOURCE
    • OUTPUT_SOURCE
    • SYSTEM_SOURCE

    Puedes encontrar valores para estos campos con las etiquetas gen_ai que se adjuntan a tus entradas de registro. Por ejemplo, para INPUT_SOURCE, el valor es similar al siguiente:

    'gs://STORAGE_BUCKET/PATH/REFERENCE_inputs.jsonl'
    

    En la expresión anterior, los campos tienen los siguientes significados:

    • STORAGE_BUCKET: Es el nombre del bucket de Cloud Storage.
    • PATH: Es la ruta de acceso a las instrucciones y respuestas.
    • REFERENCE: Es el identificador de los datos en tu bucket de Cloud Storage.

    Para obtener información sobre cómo encontrar valores para estas fuentes, consulta Cómo encontrar todas las entradas de registro que hacen referencia a instrucciones y respuestas.

  6. En la barra de herramientas, haz clic en Ejecutar todo.