Streaming-Video-Warehouse-Daten über die Befehlszeile durchsuchen

Nachdem Sie ein Vision Warehouse erstellt, es einer App hinzugefügt und die App bereitgestellt haben, können Sie die im Streamingvideo-Warehouse gespeicherten Daten durchsuchen.

Streamingvideo-Metadaten durchsuchen

Wenn Sie die Daten (assets) in Ihrem Data Warehouse (corpus) durchsuchen möchten, füllen Sie das Feld SearchAssetsRequest mit dem Inhalt aus, den Sie suchen. Diese Inhalte sind in verschiedenen Formaten verfügbar:

  1. criteria: Text-, Zahlen- oder Datumsangaben, die vom Nutzer bereitgestellt werden.
  2. facet_selections: Textinhalte, die vom Server zurückgegeben und vom Nutzer ausgewählt wurden.
  3. content_time_ranges: Zeiträume, in die alle zurückgegebenen Inhalte fallen müssen.

Im folgenden Beispiel wird ein Warehouse betrachtet, das Aufnahmen von Überwachungskameras aus verschiedenen Arten von Geschäften im ganzen Land enthält. Wenn Sie alle Assets für die Jahre 2018 oder 2020 abrufen möchten, die mit der Annotation "state": "California" oder der Annotation "state":"Pennsylvania" getaggt sind, senden Sie die folgende Anfrage:

REST

Senden Sie zum Suchen nach Assets eine POST-Anfrage mit der Methode projects.locations.corpora.searchAssets.

In diesem Beispiel-Body werden im Feld criteria textArray-Werte verwendet, um zwei txt_values anzugeben: „California“ und „Pennsylvania“. Sie können auch Suchkriterien für andere Datentypen angeben. Sie können in jeder Anfrage nur einen Typ von Suchkriterien angeben.

Zusätzliche Optionen für Suchkriterien

Ganzzahlbereiche (einschließlich)

    "int_range_array" : {
      "int_ranges": { "start": "5", "end": "10" }
      "int_ranges": { "start": "20", "end": "30" }
    }
    

Gleitkomma-Bereiche (einschließlich)

    "float_range_array" : {
      "float_ranges": { "start": "2.6", "end": "14.3" }
      "float_ranges": { "start": "205.3", "end": "205.8" }
    }
    

Standorte (Koordinaten und Radius)

    "geo_location_array": {
      "circle_areas": {
        "latitude": "37.4221",
        "longitude": "122.0841",
        "radius_meter": "500"
      },
      "circle_areas": {
        "latitude": "12.46523",
        "longitude": "-95.2146",
        "radius_meter": "100"
      }
    }
    

Boolesche Werte

    "bool_value" : {
      "value": "true"
    }
    

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets

JSON-Text der Anfrage:

{
  "page_size": "2",
  "content_time_ranges": {
    "date_time_ranges": {
      "start": {
        "year":"2018",
        "month":"1",
        "day":"1",
      },
      "end": {
        "year":"2019",
        "month":"1",
        "day":"1",
      }
    },
    "date_time_ranges": {
      "start": {
        "year":"2020",
        "month":"1",
        "day":"1",
      },
      "end": {
        "year":"2021",
        "month":"1",
        "day":"1",
      }
    }
  },
  "criteria": {
    "field": "state",
    "text_array": {
      "txt_values": "California",
      "txt_values": "Pennsylvania"
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

Wenn Sie die nächste Ergebnisseite abrufen möchten, übergeben Sie die ursprünglichen Anfrageparameter, an die das zurückgegebene next_page_token angehängt wird.

Das Array facet_results enthält Inhalte, die mit der ursprünglichen Anfrage übereinstimmen. Die Antwort oben weist darauf hin, dass sich eine der Überwachungskameras in einem Sportgeschäft und die andere in einem Lebensmittelgeschäft befindet.

Wenn Sie diese Anfrage auf die Aufnahmen des Lebensmittelgeschäfts beschränken möchten, senden Sie dieselbe Anfrage mit einer Facettenauswahl zurück.

JSON-Text der Anfrage mit Fadenauswahl:

{
  "page_size": "2",
  "content_time_ranges": {
    "date_time_ranges": {
      "start": {
        "year":"2018",
        "month":"1",
        "day":"1",
      },
      "end": {
        "year":"2018",
        "month":"12",
        "day":"31",
      }
    },
    "date_time_ranges": {
      "start": {
        "year":"2020",
        "month":"1",
        "day":"1",
      },
      "end": {
        "year":"2020",
        "month":"12",
        "day":"31",
      }
    }
  },
  "criteria": {
    "field": "state",
    "text_array": {
      "txt_values": "California",
      "txt_values": "Pennsylvania"
    }
  },
  "facet_selections": {
    "facetId": "state",
    "displayName": "State",
    "buckets": {
        "value": {
         "stringValue": "California"
        }
    },
    "buckets": {
      "value": {
        "stringValue": "Pennsylvania"
      }
    },
    "bucketType": "FACET_BUCKET_TYPE_VALUE"
  },
  "facet_selections": {
    "facetId": "store-type",
    "displayName": "StoreType",
    "buckets": {
      "value": {
        "stringValue": "Sporting Goods"
      }
    },
    "buckets": {
      "value": {
        "stringValue": "Grocery"
      },
      "selected": "true"
    },
    "bucketType": "FACET_BUCKET_TYPE_VALUE"
  }
}

Da die Facette Lebensmittel ausgewählt ist, enthält jede Antwort die Anmerkung "store-type":"Grocery".

Clip-Asset-Metadaten bei der Suche zurückgeben

Mit der Vertex AI Vision API können Nutzer auch zusätzliche Clip-Metadaten angeben, die mit dem Suchergebnis zurückgegeben werden sollen. Dazu verwenden sie result_annotation_keys.

REST

In diesem Beispiel wird der vom Nutzer angegebene Annotationsschlüssel "camera-location" im Anfragebody angegeben und der Wert des Schlüssels ("Sunnyvale") in der Antwort bereitgestellt.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets

JSON-Text der Anfrage:

{
   "page_size": "2",
   "criteria": {
     "field": "state",
     "text_array": {
       "txt_values": "California",
       "txt_values": "Pennsylvania"
     }
   },
   "result_annotation_keys": "camera-location"
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

Kriterien verwenden, um Asset-Metadaten in der Suche zurückzugeben

Sie können in den Suchkriterien angeben, ob die übereinstimmenden Anmerkungen für jedes Suchergebnis zurückgegeben werden sollen. Dieses Feature wird für eingeschränkte Datenschematypen unterstützt: INTEGER, FLOAT, BOOLEAN, STRING (nur EXACT_SEARCH) und die Annotation muss auf Partitionsebene erfolgen.

Angenommen, Sie erstellen das folgende Datenschema in einem Warehouse-Korpus:

{
  "key": "image-classification",
  "schema_details": {
    "type":"STRING",
    "granularity":"GRANULARITY_PARTITION_LEVEL",
    "search_strategy": {
      "search_strategy_type":"EXACT_SEARCH"
    }
  }
}

Einige Anmerkungen für "image-classification" werden über die Aufnahme von Streamingvideos oder eine CreateAnnotation-Anfrage in den Korpus aufgenommen.

Nachdem Anmerkungen aufgenommen wurden, können Sie nach "image-classification" suchen und erhalten Videoergebnisse mit den entsprechenden Anmerkungen:

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets

JSON-Text der Anfrage:

{
  "page_size": "5",
  "facet_selections": {
    "facet_id": "image-classification",
    "fetch_matched_annotations": "true",
    "bucket_type": "FACET_BUCKET_TYPE_VALUE",
      "buckets": {
        "value": {
          "string_value": "cat"
        },
        "selected" : "true"
      },
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

Bei der globalen Suche können Nutzer Suchanfragen eingeben, anstatt einzelne Kriterien anzugeben. Sie können nach String-Kriterien suchen, die in ihrem Datenschema als durchsuchbar festgelegt sind. Die passenden Ergebnisse werden abgerufen und an Sie zurückgegeben.

Wenn Sie diese Funktion verwenden möchten, legen Sie das Feld search_query in SearchAssetsRequest fest:

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets

JSON-Text der Anfrage:

{
    "page_size": "2",
    "search_query': "Pennsylvania"
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

Sortierspezifikation anwenden, um zurückgegebene Asset-Metadaten in der Suche zu sortieren

Mit der Sortierfunktion können Sie Suchergebnisse nach dem vom Nutzer angegebenen annotation sortieren. Das kann nützlich sein, um Ergebnisse mit Datenschematypen zu sortieren, die sortiert werden können, z. B. String- und numerische Typen.

Wenn Sie diese Funktion verwenden möchten, geben Sie schema_key_sorting_strategy an. Dazu sind mindestens ein Schlüssel für das Datenschema und eine aufsteigende oder absteigende Reihenfolge erforderlich:

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets

JSON-Text der Anfrage:

{
    "page_size": "2",
    "schemaKeySortingStrategy":
    { "options": 
      { 
        "data_schema_key": "stream-display-name", 
        "sort_decreasing": true
      } 
    }

}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content

Sie sollten einen erfolgreichen Statuscode (2xx) und eine leere Antwort als Ausgabe erhalten.

Suchkonfigurationen erstellen

Mit Vision Warehouse können Nutzer ihre Suche durch die Suchkonfiguration anpassen. Bei der Suchkonfiguration werden Videodaten wie von Nutzern bereitgestellte Anmerkungen und Statistiken, die von Google Cloud Videomodellen generiert werden, verwendet, um dem Nutzer zusätzliche Suchoptionen zu bieten. Wenn Sie beispielsweise Clips mit bestimmten farbigen Fahrzeugen aus Videodaten von Autos in Ihrem Data Warehouse ausrichten möchten, können Sie eine bestimmte Suchkonfiguration für Ihre Anfrage verwenden.

Mit einem SearchConfig können Sie detailliertere Konfigurationsoptionen festlegen.

Im folgenden Beispiel wird gezeigt, wie Sie eine SearchConfig-Ressource erstellen.

Allgemeine Richtlinien

Für alle Anwendungsfälle muss Ihre Anfrage die folgenden Bedingungen erfüllen, damit sie erfolgreich ausgeführt werden kann:

  1. Request.search_configuration.name darf noch nicht vorhanden sein.
  2. Das Array mapped_fields darf nicht leer sein und muss vorhandenen, vom Nutzer angegebenen Annotationsschlüsseln zugeordnet werden.
  3. Alle mapped_fields müssen vom selben Typ sein.
  4. Für alle mapped_fields muss die Konfiguration für die genaue/intelligente Übereinstimmung verwendet werden.
  5. Alle mapped_fields müssen denselben Detaillierungsgrad haben.

Es gibt mehrere Anwendungsfälle für die Erstellung einer SearchConfig, die jeweils unterschiedliche Richtlinien erfordern.

Suchkonfiguration mit benutzerdefinierten Suchkriterien erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen benutzerdefinierten Operator einem oder mehreren vom Nutzer angegebenen Annotationsschlüsseln zuordnen. In diesem Fall müssen Sie die allgemeinen Richtlinien beim Erstellen Ihrer Anfrage einhalten.

REST

Sie müssen Ihre neue SearchConfig-ID am Ende der Anfrage-URL angeben, nicht als Feld in der Anfrage.

Die vom Nutzer angegebenen Annotierungsschlüssel in diesem Beispiel sind "player", "coach" und "cheerleader".

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGIONALIZED_ENDPOINT: Der Endpunkt kann ein Präfix enthalten, das mit dem LOCATION_ID übereinstimmt, z. B. europe-west4-. Weitere Informationen zu regionalisierten Endpunkten
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • CORPUS_ID: Die ID Ihres Zielkorpus.
  • SEARCHCONFIG: Der Name des Ziel-SearchConfig.
    • Die SearchConfig in diesem Beispiel ist person.

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person

JSON-Text der Anfrage:

{
   "search_criteria_property": {
     "mapped_fields": "player",
     "mapped_fields": "coach",
     "mapped_fields": "cheerleader",
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=person" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/person",
  "searchCriteriaProperty":
    {
      "mappedFields": [
        "player",
        "coach",
        "cheerleader"
      ]
    }
}

Suchkonfiguration mit 1:1-Facettenzuordnung erstellen

Wenn Sie eine Facette für einen einzelnen vom Nutzer angegebenen Annotationsschlüssel erstellen möchten, muss Request.search_configuration.facet_property.mapped_fields ein einzelnes Element enthalten. Der Wert dieses Elements muss ein vom Nutzer angegebener Annotationsschlüsselname sein.

Im folgenden Beispiel sehen Sie, wie Sie eine Facettenzuordnung für den vom Nutzer angegebenen Annotationsschlüssel "Location" erstellen.

REST

Sie müssen Ihre neue SearchConfig-ID am Ende der Anfrage-URL angeben, nicht als Feld in der Anfrage.

In diesem Beispiel ist die Anfrage erfolgreich, da der search_config_id-Parameter (Location) in der Anfrage-URL auf einen vorhandenen vom Nutzer angegebenen Annotationsschlüssel verweist, und mapped_fields genau ein Element mit dem Wert search_config_id (Location) enthält.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGIONALIZED_ENDPOINT: Der Endpunkt kann ein Präfix enthalten, das mit dem LOCATION_ID übereinstimmt, z. B. europe-west4-. Weitere Informationen zu regionalisierten Endpunkten
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • CORPUS_ID: Die ID Ihres Zielkorpus.
  • SEARCHCONFIG: Der Name des Ziel-SearchConfig.
    • Die SearchConfig in diesem Beispiel ist Location.

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location

JSON-Text der Anfrage:

{
   "facet_property": {
     "mapped_fields": "Location",
     "display_name": "Location",
     "result_size": "5",
     "bucket_type":"FACET_BUCKET_TYPE_VALUE"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
 

Die folgenden Anfragen schlagen fehl, weil die erforderlichen Voraussetzungen nicht erfüllt sind.

Fehlerhafte Anfragen

Fehlgeschlagene Anfrage 1:

      curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
      https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \
      -d "{
         "facet_property": {
           "mapped_fields": "City", /* City is not equal to search_config_id. */
           "display_name": "City",
           "result_size": "5",
           "bucket_type":"FACET_BUCKET_TYPE_VALUE"
        }
      }"
    

Fehlgeschlagene Anfrage 2:

      curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
      https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=City \
      -d "{
         "facet_property": {
           "mapped_fields": "City", /* City doesn't map to an existing user-given annotation key. */
           "display_name": "City",
           "result_size": "5",
           "bucket_type":"FACET_BUCKET_TYPE_VALUE"
        }
      }"
    

Fehlgeschlagene Anfrage 3:

      curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
      https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \
      -d "{
         "facet_property": {
           "mapped_fields": "Location",
           "mapped_fields": "City", /* mapped_fields contains more than 1 element. */
           "display_name": "Location",
           "result_size": "5",
           "bucket_type":"FACET_BUCKET_TYPE_VALUE"
        }
      }"
    

Suchkonfiguration mit benutzerdefinierter 1:1- oder Mehrfach-Facettenzuordnung erstellen

Clients, die eine Zuordnung zwischen einem benutzerdefinierten Attributwert und einem oder mehreren vom Nutzer angegebenen Annotationsschlüsseln erstellen möchten, müssen Folgendes sicherstellen:

  1. Request.search_configuration muss ein SearchCriteriaProperty enthalten, sodass Request.search_configuration.search_criteria_property.mapped_fields dieselben Elemente wie Request.search_configuration.facet_property.mapped_fields enthält.

REST

Sie müssen Ihre neue SearchConfig-ID am Ende der Anfrage-URL angeben, nicht als Feld in der Anfrage.

Im folgenden Beispiel wird gezeigt, wie Sie eine Facettenzuordnung für die vom Nutzer angegebenen Annotationsschlüssel "City" und "State" erstellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGIONALIZED_ENDPOINT: Der Endpunkt kann ein Präfix enthalten, das mit dem LOCATION_ID übereinstimmt, z. B. europe-west4-. Weitere Informationen zu regionalisierten Endpunkten
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • CORPUS_ID: Die ID Ihres Zielkorpus.
  • SEARCHCONFIG: Der Name des Ziel-SearchConfig.
    • Die SearchConfig in diesem Beispiel ist Location.

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location

JSON-Text der Anfrage:

{
  "search_criteria_property": {
     "mapped_fields": "City",
     "mapped_fields": "State",
     "mapped_fields": "Province",
  }
  "facet_property": {
     "mapped_fields": "City",
     "mapped_fields": "State",
     "display_name": "Province",
     "result_size": "5",
     "bucket_type":"FACET_BUCKET_TYPE_VALUE"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location" | Select-Object -Expand Content
 

Die folgenden Anfragen schlagen fehl, weil die erforderlichen Voraussetzungen nicht erfüllt sind.

Fehlerhafte Anfragen

Fehlgeschlagene Anfrage 1:

      curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
      https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \
      -d "{
        "facet_property": { /* Request is missing a SearchCriteriaProperty object.*/
           "mapped_fields": "City",
           "mapped_fields": "State",
           "display_name": "Location",
           "result_size": "5",
           "bucket_type":"FACET_BUCKET_TYPE_VALUE"
        }
      }"
    

Fehlgeschlagene Anfrage 2:

      curl -X POST \
      -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      -H "Content-Type: application/json; charset=utf-8" \
      https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=Location \
      -d "{
        "search_criteria_property": {
           "mapped_fields": "City",
           "mapped_fields": "State",
        }
        "facet_property": {
           "mapped_fields": "City",
           "mapped_fields": "State",
           "mapped_fields": "Province", /* Province is missing from search_criteria_property. */
           "display_name": "Location",
           "result_size": "5",
           "bucket_type":"FACET_BUCKET_TYPE_VALUE"
        }
      }"
    

Suchkonfiguration mit bereichsbasierten Facetten erstellen

Bereichsfacetten ähneln normalen Facetten, aber jeder Facetten-Bucket deckt einen kontinuierlichen Bereich ab. Eine zusätzliche Konfiguration (range_facet_config) liefert dem System Informationen zu diesen Facetten-Bucket-Bereichen.

Bereichs-Facetten sind für Folgendes verfügbar:

  1. Ganzzahlen
  2. Daten

Es gibt drei Arten von Bereichsfacetten:

  1. Fester Bereich: Jeder Bucket hat dieselbe Größe.
  2. Benutzerdefinierter Bereich: Programmierbare Bucket-Größen. Beispiel: logarithmisch.
  3. Zeitraum: Feste Bucket-Granularitäten von DAY, MONTH und YEAR. Dies gilt nur für Zeitrahmen-Dimensionen.

Es gelten dieselben Bedingungen wie für einzelne Facetten, mit einigen zusätzlichen Validierungen in Bezug auf die Bereichsspezifikation.

Bucket-Spezifikation mit festem Bereich

Im folgenden Beispiel wird eine Facettenspezifikation für einen festen Bereich für das Feld inventory-count erstellt. Das Ergebnis sind die folgenden Buckets: [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf].

REST

Sie müssen Ihre neue SearchConfig-ID am Ende der Anfrage-URL angeben, nicht als Feld in der Anfrage.

Bei dieser Anfrage wird FixedRangeBucketSpec verwendet, um mehrere Buckets mit gleicher Granularität zu erstellen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGIONALIZED_ENDPOINT: Der Endpunkt kann ein Präfix enthalten, das mit dem LOCATION_ID übereinstimmt, z. B. europe-west4-. Weitere Informationen zu regionalisierten Endpunkten
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • CORPUS_ID: Die ID Ihres Zielkorpus.
  • SEARCHCONFIG: Der Name des Ziel-SearchConfig.
    • Die SearchConfig in diesem Beispiel ist inventory-count.

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count

JSON-Text der Anfrage:

{
  "facet_property": {
    "mapped_fields": "inventory-count",
    "display_name": "Inventory Count",
    "result_size": "5",
    "bucket_type":"FACET_BUCKET_TYPE_FIXED_RANGE",
    "fixed_range_bucket_spec": {
       "bucket_start": {
         "integer_value": 0
       },
       "bucket_granularity": {
         "integer_value": 10
       },
       "bucket_count": 5
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=inventory-count" | Select-Object -Expand Content
 

Spezifikation für benutzerdefinierte Bereichs-Buckets

Im folgenden Beispiel wird eine Facettenspezifikation für einen festen Bereich für das Feld video-views erstellt. Das Ergebnis sind die folgenden Buckets: [inf, 0), [0, 10), [10, 100), [100, 1000), [1000, 10000), [10000, inf).

REST

Sie müssen Ihre neue SearchConfig-ID am Ende der Anfrage-URL angeben, nicht als Feld in der Anfrage.

In dieser Anfrage wird mit CustomRangeBucketSpec angegeben, wie Werte in Buckets aufgeteilt werden sollen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGIONALIZED_ENDPOINT: Der Endpunkt kann ein Präfix enthalten, das mit dem LOCATION_ID übereinstimmt, z. B. europe-west4-. Weitere Informationen zu regionalisierten Endpunkten
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • CORPUS_ID: Die ID Ihres Zielkorpus.
  • SEARCHCONFIG: Der Name des Ziel-SearchConfig.
    • Die SearchConfig in diesem Beispiel ist video-views.

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views

JSON-Text der Anfrage:

{
  "facet_property": {
    "mapped_fields": "video-views",
    "display_name": "Video Views",
    "result_size": "6",
    "bucket_type":"FACET_BUCKET_TYPE_CUSTOM_RANGE",
    "custom_range_bucket_spec": {
       "endpoints": {
         "integer_value": 0
       },
       "endpoints": {
         "integer_value": 10
       },
       "endpoints": {
         "integer_value": 100
       },
       "endpoints": {
         "integer_value": 1000
       },
       "endpoints": {
         "integer_value": 10000
       }
    }
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=video-views" | Select-Object -Expand Content
 

Bucket-Spezifikation für Datums-/Uhrzeitbereich

Im folgenden Beispiel wird eine Spezifikation für den Zeitraum für das Feld film-date mit der Granularität DAY erstellt.

REST

Sie müssen Ihre neue SearchConfig-ID am Ende der Anfrage-URL angeben, nicht als Feld in der Anfrage.

In dieser Anfrage wird mit DateTimeBucketSpec angegeben, wie Datumswerte in Buckets aufgeteilt werden.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • REGIONALIZED_ENDPOINT: Der Endpunkt kann ein Präfix enthalten, das mit dem LOCATION_ID übereinstimmt, z. B. europe-west4-. Weitere Informationen zu regionalisierten Endpunkten
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiele: us-central1, europe-west4. Verfügbare Regionen
  • CORPUS_ID: Die ID Ihres Zielkorpus.
  • SEARCHCONFIG: Der Name des Ziel-SearchConfig.
    • Die SearchConfig in diesem Beispiel ist film-date.

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date

JSON-Text der Anfrage:

{
  "facet_property": {
    "mapped_fields": "film-date",
    "display_name": "Film Date",
    "result_size": "5",
    "bucket_type": "FACET_BUCKET_TYPE_DATETIME",
    "datetime_bucket_spec": {
       "granularity": "DAY"
    }
 }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs?search_config_id=film-date" | Select-Object -Expand Content
 

Nachdem Sie diese Facetten-Buckets erstellt haben, können Sie damit im Data Warehouse suchen.

REST

In dieser Anfrage werden facetSelections-Objekte verwendet, um eine Gruppe von Facetten-Buckets anzugeben.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets

JSON-Text der Anfrage:

{
   "page_size": "10",
   "facet_selections": {
     "facet_id": "inventory-count",
     "buckets": {
       "range": {
         "end" : {
           "integer_value": 0
         }
       }
     },
     "buckets": {
       "range": {
         "start" : {
           "integer_value": 20
         },
         "end" : {
           "integer_value": 30
         }
       }
     }
   },
   "facet_selections": {
     "facet_id": "video-views",
     "buckets": {
       "range": {
         "start" : {
           "integer_value": 100
         },
         "end" : {
           "integer_value": 1000
         }
       }
     }
   },
   "facet_selections": {
     "facet_id": "film-date",
     "buckets": {
       "range": {
         "start" : {
           "datetime_value": {
             "year": 2022,
             "month": 9,
             "day": 10
           }
         },
         "end" : {
           "datetime_value": {
             "year": 2022,
             "month": 9,
             "day": 11
           }
         }
       }
     }
   }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:searchAssets" | Select-Object -Expand Content
 

Suchkonfiguration aktualisieren

Damit Sie die aktuelle SearchConfig aktualisieren können, muss Ihre Anfrage die folgenden Anforderungen erfüllen:

  1. Request.searchConfig.name muss bereits vorhanden sein.
  2. Die Anfrage muss mindestens ein nicht leeres searchCriteriaProperty oder facetProperty enthalten.
  3. Das mappedFields-Array darf nicht leer sein und muss vorhandenen, vom Nutzer angegebenen Annotationsschlüsseln zugeordnet werden.
  4. Alle mappedFields müssen vom selben Typ sein.
  5. Alle mappedFields müssen denselben Detaillierungsgrad haben.
  6. Für alle mappedFields müssen dieselben semantischen SearchConfig-Abgleichsoptionen verwendet werden.

REST UND BEFEHLSZEILE

Im folgenden Codebeispiel wird eine Ressource für die Konfiguration der Warehouse-Suche mit der Methode projects.locations.corpora.searchConfigs.patch aktualisiert.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID

JSON-Text der Anfrage:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1",
  "searchCriteriaProperty": {
    "mappedFields": "dataschema2"
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/searchConfigs/SEARCHCONFIG_ID1",
  "searchCriteriaProperty": {
    "mappedFields": [
      "dataschema2"
    ]
  }
}