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

Nachdem Sie ein Vision Warehouse erstellt, einer App hinzugefügt und die App bereitgestellt haben, können Sie in den im Streaming-Video-Warehouse gespeicherten Daten suchen.

In Metadaten von Streamingvideos suchen

Wenn Sie in den Daten (assets) in Ihrem Data Warehouse (corpus) suchen möchten, geben Sie den Inhalt ein, den Sie finden möchten, in das Feld SearchAssetsRequest. Diese Inhalte gibt es in verschiedenen Formaten:

  1. criteria: Vom Nutzer bereitgestellte Text-, Zahlen- oder Datumsinhalte.
  2. facet_selections: Textinhalt, der vom Server zurückgegeben und vom Nutzer ausgewählt wurde.
  3. content_time_ranges: Zeiträume, in die alle zurückgegebenen Inhalte fallen müssen.

Im folgenden Beispiel geht es um ein Lager, das Sicherheitskameraaufnahmen aus verschiedenen Geschäften im ganzen Land enthält. Wenn Sie alle Assets für die Jahre 2018 oder 2020 abrufen möchten, die mit der Anmerkung "state": "California" oder der Anmerkung "state":"Pennsylvania" getaggt sind, senden Sie die folgende Anfrage:

REST

Senden Sie eine POST-Anfrage mit der Methode projects.locations.corpora.searchAssets, um nach Assets zu suchen.

In diesem Beispieltext 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 Suchkriterientyp angeben.

Zusätzliche Suchkriterien

Ganzzahlbereiche (einschließlich)

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

Gleitkommabereiche (einschließlich)

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

Standort (Koordinate 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 ist.

Das Array facet_results enthält Inhalte, die mit der ursprünglichen Abfrage übereinstimmen. Die obige Antwort gibt an, dass sich eine der Sicherheitskameras in einem Sportgeschäft und die andere in einem Lebensmittelgeschäft befindet.

Wenn Sie diese Abfrage so einschränken möchten, dass nur die Aufnahmen des Lebensmittelgeschäfts angezeigt werden, geben Sie dieselbe Anfrage mit einer Facettenauswahl zurück.

JSON-Text mit Facettenauswahl anfordern:

{
  "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".

Asset-Metadaten von Clips bei der Suche zurückgeben

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

REST

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

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 Suchergebniselement zurückgegeben werden sollen. Diese Funktion wird für begrenzte Datenschematypen unterstützt: INTEGER, FLOAT, BOOLEAN, STRING (nur EXACT_SEARCH) und die Anmerkung muss auf Partitionsebene erfolgen.

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

{
  "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 Streaming-Videoaufnahme oder eine CreateAnnotation-Anfrage in den Corpus aufgenommen.

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

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:

Nutzer können in der globalen Suche Suchanfragen eingeben, anstatt einzelne Kriterien anzugeben. Sie können nach Kriterien des Stringtyps suchen, die im Datenschema für die Suche konfiguriert sind. Die übereinstimmenden Ergebnisse werden abgerufen und an Sie zurückgegeben.

Wenn Sie diese Funktion verwenden möchten, legen Sie das Feld search_query in SearchAssetsRequest so 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:

Sortiervorgaben anwenden, um die zurückgegebenen Asset-Metadaten in der Suche zu sortieren

Mit der Sortierungsfunktion können Sie die Suchergebnisse nach von Nutzern bereitgestellten annotation sortieren. Das kann nützlich sein, um Ergebnisse mit Datenschematypen zu sortieren, die sortiert werden können, z. B. String- und numerische Typen.

Geben Sie schema_key_sorting_strategy an, um diese Funktion zu verwenden. Dazu sind mindestens ein Datenschemaschlüssel und eine aufsteigende/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 die Suche über die Suchkonfiguration anpassen. Bei der Suchkonfiguration werden Videodaten wie von Nutzern bereitgestellte Anmerkungen und Statistiken verwendet, die mithilfe von Google Cloud Videoauffassungsmodellen generiert wurden, um Nutzern zusätzliche Suchoptionen zu bieten. Wenn Sie beispielsweise Clips mit Fahrzeugen einer bestimmten Farbe aus Videodaten zu Autos in Ihrem Inventar auswählen möchten, können Sie für Ihre Suchanfrage eine bestimmte Suchkonfiguration verwenden.

Mit 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 nicht bereits vorhanden sein.
  2. Das Array mapped_fields darf nicht leer sein und muss auf vorhandene von Nutzern angegebene Anmerkungsschlüssel verweisen.
  3. Alle mapped_fields müssen vom selben Typ sein.
  4. Alle mapped_fields müssen dieselbe Konfiguration für die genaue oder intelligente Übereinstimmung haben.
  5. Alle mapped_fields müssen dieselbe Granularität haben.

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

Suchkonfiguration mit benutzerdefinierten Suchkriterien erstellen

In diesem Abschnitt wird beschrieben, wie Sie einen benutzerdefinierten Operator einem oder mehreren von Nutzern angegebenen Anmerkungsschlüsseln zuordnen. In diesem Fall müssen Sie beim Erstellen Ihrer Anfrage die allgemeinen Richtlinien 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 Anmerkungsschlü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. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des 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 von Nutzern angegebenen Anmerkungsschlü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 Schlüsselname für Anmerkungen sein.

Im folgenden Beispiel wird gezeigt, 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 search_config_id (Location) in der Anfrage-URL auf einen vorhandenen von Nutzern angegebenen Anmerkungsschlü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. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des 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, da sie nicht die erforderlichen Anforderungen erfüllen.

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 einer benutzerdefinierten 1:1- oder mehrfachen Facettenzuordnung erstellen

Wenn Sie eine Zuordnung zwischen einem benutzerdefinierten Facettenwert und einem oder mehreren von Nutzern angegebenen Anmerkungsschlüsseln erstellen möchten, müssen folgende Voraussetzungen erfüllt sein:

  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 von Nutzern angegebenen Anmerkungsschlü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. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des 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, da sie nicht die erforderlichen Anforderungen erfüllen.

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) gibt dem System Informationen zu diesen Facetten-Bucket-Bereichen.

Bereichsfacetten sind verfügbar für:

  1. Ganzzahlen
  2. Daten

Es gibt drei Arten von Bereichsfacetten:

  1. Festes Intervall: Jeder Bucket hat dieselbe Größe.
  2. Benutzerdefinierter Bereich: Programmierbare Bucket-Größen. Beispiel: logarithmisch.
  3. Zeitraum: Feste Bucket-Detaillierungsebenen von DAY, MONTH und YEAR. Dies gilt nur für Zeiträume.

Für diese Facetten gelten dieselben Bedingungen wie für einzelne Facetten, mit einigen zusätzlichen Validierungen im Hinblick 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 Bucket [-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.

In dieser Anfrage wird FixedRangeBucketSpec verwendet, um mehrere Buckets mit gleicher Detaillierung 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. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des 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 Bereiche

Im folgenden Beispiel wird eine Facettenspezifikation für einen festen Bereich für das Feld video-views erstellt. Das Ergebnis sind die Bucket [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.

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. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des 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 Detailebene 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. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des 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 sie zum Suchen im Warehouse verwenden.

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 die aktuelle SearchConfig aktualisiert werden kann, 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 von Nutzern angegebenen Annotationsschlüsseln zugeordnet sein.
  4. Alle mappedFields müssen vom selben Typ sein.
  5. Alle mappedFields müssen dieselbe Granularität haben.
  6. Alle mappedFields müssen dieselben semantischen SearchConfig-Übereinstimmungsoptionen haben.

REST UND BEFEHLSZEILE

Im folgenden Codebeispiel wird eine Ressourcenkonfiguration für die Lagersuche mit der Methode projects.locations.corpora.searchConfigs.patch aktualisiert.

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: Ihre Google Cloud Projekt-ID oder Projektnummer.
  • LOCATION_ID: Die Region, in der Sie Vertex AI Vision verwenden. Beispiel: us-central1, europe-west4. Weitere Informationen finden Sie unter Verfügbare Regionen.
  • CORPUS_ID: Die ID des Zielkorpus.
  • SEARCHCONFIG_ID: Die ID Ihres Ziels SearchConfig.
  • "mappedFields": Ein oder mehrere vorhandene von Nutzern angegebene Anmerkungsschlüssel.

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"
    ]
  }
}