Guía de inicio rápido

La API de Cloud Inference permite la integración sencilla de las tecnologías de Búsqueda y Análisis de Google para los datos de series temporales en tus aplicaciones. La API de Cloud Inference te permite hacer lo siguiente:

  • Procesa los conjuntos de datos de series temporales:
    • Transferencia de JSON a formatos internos con eficiencia de consultas
    • Quita los conjuntos de datos enviados previamente del sistema
    • Enumerar los conjuntos de datos activos en el sistema que envió el proyecto
  • Ejecuta consultas de inferencia sobre conjuntos de datos cargados:
    • ¿Cómo se correlacionan los valores de los diferentes tipos? Por ejemplo: con un conjunto de datos de artículos de noticias etiquetados, ¿qué etiquetas se correlacionan con artículos sobre vacaciones?
    • ¿Cómo varía la frecuencia de los eventos a lo largo del tiempo? Por ejemplo: ¿qué días tienen una cantidad inusualmente alta de eventos relacionados con temas específicos?
    • ¿Cuál es la probabilidad de fondo para un evento en el sistema? Por ejemplo, ¿con qué frecuencia aparecen imágenes de diversos deportes en los artículos?

Consulta ¿Qué es la API de Cloud Inference? para obtener más información.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  4. Habilita la API de Cloud Inference.

    Habilita la API

  5. Crear una cuenta de servicio:

    1. En la consola, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio
    2. Selecciona tu proyecto.
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. La consola completa el campo ID de cuenta de servicio según este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Para proporcionar acceso a tu proyecto, otorga los siguientes roles a tu cuenta de servicio: Proyecto > Propietario .

      En la lista Seleccionar un rol, elige un rol.

      Para obtener roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  6. Para crear una clave de cuenta de servicio, haz lo siguiente:

    1. En la consola, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave y, luego, en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.
  7. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene la clave de tu cuenta de servicio. Esta variable solo se aplica a la sesión actual de shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  8. Instala y, luego, inicializa Google Cloud CLI.
  9. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  10. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  11. Habilita la API de Cloud Inference.

    Habilita la API

  12. Crear una cuenta de servicio:

    1. En la consola, ve a la página Crear cuenta de servicio.

      Ve a Crear cuenta de servicio
    2. Selecciona tu proyecto.
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. La consola completa el campo ID de cuenta de servicio según este nombre.

      Opcional: en el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haz clic en Crear y continuar.
    5. Para proporcionar acceso a tu proyecto, otorga los siguientes roles a tu cuenta de servicio: Proyecto > Propietario .

      En la lista Seleccionar un rol, elige un rol.

      Para obtener roles adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  13. Para crear una clave de cuenta de servicio, haz lo siguiente:

    1. En la consola, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haga clic en Claves.
    3. Haz clic en Agregar clave y, luego, en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON en tu computadora.
    5. Haga clic en Cerrar.
  14. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene la clave de tu cuenta de servicio. Esta variable solo se aplica a la sesión actual de shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  15. Instala y, luego, inicializa Google Cloud CLI.

Suba un conjunto de datos

Crearás un conjunto de datos de la API de Cloud Inference con el método de REST createdataset.

  1. Crea un archivo de solicitud JSON con el siguiente texto y guárdalo como un archivo de texto sin formato create-gdelt-dataset.json:

    {
      "name":"gdelt_2018_04_data",
      "data_names": [
        "PageURL",
        "PageDomain",
        "PageCountry",
        "PageLanguage",
        "PageTextTheme",
        "PageTextGeo",
        "ImageURL",
        "ImagePopularityRawScore",
        "ImagePopularity",
        "ImageSafeSearch",
        "ImageLabel",
        "ImageWebEntity",
        "ImageWebEntityBestGuessLabel",
        "ImageGeoLandmark",
        "ImageFaceToneHas"
      ],
      "data_sources": [
        { "uri":"gs://inference-gdelt-demo/inference-gdelt-demo.201804.json" },
      ]
    }
    

    Este fragmento JSON indica que queremos crear un conjunto de datos compuesto por artículos de noticias anotados de GDELT sobre los que queremos ejecutar las consultas de la API de Cloud Inference (gracias a Kalev Leetaru de GDELT para está disponible). El conjunto de datos es de acceso público, por lo que no necesitarás credenciales de autenticación para acceder a ellos. Sin embargo, ten en cuenta que necesitarás credenciales de autenticación para usar la API.

  2. Verifica si tienes un token de autorización:

    gcloud auth application-default print-access-token
      
  3. Usa curl para hacer una solicitud createdataset y pasa el token de acceso, y el nombre de archivo de la solicitud JSON que configuraste en el paso 1:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets \
      -d @create-gdelt-dataset.json
      

    Ten en cuenta que, para pasar un nombre de archivo a curl, se usa la opción -d (de “datos”) y se incluye un signo @ antes del nombre. Este archivo debe estar en el mismo directorio en el que ejecutaste el comando curl.

    Debería ver una respuesta similar a la siguiente:

    {
      "name": "gdelt_2018_04_data",
      "state": "STATE_PENDING"
    }
    

Obtén el estado de los conjuntos de datos subidos

Puedes obtener el estado de todos los conjuntos de datos que enviaste para el procesamiento a la API de Cloud Inference desde tu proyecto de cliente con el método de REST ListDataSets.

  1. Obtén un token de acceso, como hicimos en el conjunto de datos Crear.

  2. Usa curl para realizar una solicitud listdatasets y pasa el token de acceso:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets
      

Consultar un conjunto de datos cargado

  1. Crea un archivo de solicitud JSON con el siguiente texto y guárdalo como un archivo de texto sin formato query-gdelt-dataset.json:

    {
      "name": "gdelt_2018_04_data",
      "queries": [{
        "query": {
          "type": "TYPE_TERM",
          "term": {
          "name": "ImageWebEntity",
          "value": "Vacation"
          }
        },
        "distribution_configs": {
          "bgprob_exp": 0.7,
          "data_name": "ImageLabel",
          "max_result_entries": 5,
        }
      }]
    }

    En este fragmento JSON, se indica que queremos consultar el conjunto de datos 'gdelt_2018_04_data' que enviamos anteriormente a la API de Cloud Inference con una solicitud createdataset que se informó como en STATE_LOADED. La consulta en sí indica que queremos agregar ImageLabels de todos los artículos que contienen “Vacaciones” como entidad y mostrar las 5 etiquetas con mayor puntuación.

  2. Obtén un token de acceso, como hicimos en el conjunto de datos Crear.

  3. Usa curl para hacer una solicitud query y pasa el token de acceso y el nombre de archivo de la solicitud JSON que configuraste en el paso 1:

    curl -s -H "Content-Type: application/json" \
      -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
      https://infer.googleapis.com/v1/projects/PROJECT_NUMBER/datasets/gdelt_2018_04_data:query \
      -d @query-gdelt-dataset.json
      

    Ten en cuenta que, para pasar un nombre de archivo a curl, se usa la opción -d (de “datos”) y se incluye un signo @ antes del nombre. Este archivo debe estar en el mismo directorio en el que ejecutaste el comando curl.

    Debería ver una respuesta similar a la siguiente:

    {
      "results": [
        {
          "distributions": [
            {
              "dataName": "ImageLabel",
              "matchedGroupCount": "39124",
              "totalGroupCount": "7616785",
              "entries": [
                {
                  "value": "ImageLabel=vacation",
                  "score": 31.515648,
                  "matchedGroupCount": "37806",
                  "totalGroupCount": "52331"
                },
                {
                  "value": "ImageLabel=beach",
                  "score": 15.222198,
                  "matchedGroupCount": "6825",
                  "totalGroupCount": "12527"
                },
                {
                  "value": "ImageLabel=summer",
                  "score": 13.984301,
                  "matchedGroupCount": "6704",
                  "totalGroupCount": "13780"
                },
                {
                  "value": "ImageLabel=travel",
                  "score": 13.344194,
                  "matchedGroupCount": "6837",
                  "totalGroupCount": "15158"
                },
                {
                  "value": "ImageLabel=sun_tanning",
                  "score": 12.208676,
                  "matchedGroupCount": "2048",
                  "totalGroupCount": "2999"
                }
              ]
            }
          ]
        }
      ]
    }
      

    La respuesta que se muestra es una distribución de eventos ImageLabel clasificados por correlación con ImageWebEntity=Vacation. Los eventos con puntuación alta se correlacionan de manera positiva con artículos sobre vacaciones.