Indexe verwalten

Ein Vision Warehouse-Index (verfügbar für Bild- und Batch-Video-Branchen) ist eine Ressource auf Korpus-Ebene, die eine verwaltete Darstellung der analysierten Assets und Annotationen ist. Ein Index kann als Dataset von Einbettungsvektoren und semantischen Einschränkungen betrachtet werden, das die Bedeutung der Media-Inhalte repräsentiert. Indizes können für die Suche in Indexendpunkten bereitgestellt werden.

Wenn Sie einen Index für ein corpus erstellen, enthält er alle analysierten Assets und alle vorhandenen Anmerkungen im Korpus. Wenn Sie nach der Erstellung des Index Assets oder Anmerkungen hinzufügen, müssen Sie das Korpus oder diese Assets noch einmal analysieren und den Index aktualisieren, damit sie im Index enthalten sind.

Warehouse-Index erstellen

REST

Senden Sie zum Erstellen einer Indexressource eine POST-Anfrage mit der Methode projects.locations.corpora.indexes.create.

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.
  • INDEX_ID: (Optional) Ein vom Nutzer angegebener Wert für die Index-ID. In dieser Anfrage wird der Wert in der folgenden Form in die Anfrage-URL eingefügt:
    • https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID

HTTP-Methode und URL:

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

JSON-Text der Anfrage:

{
  "display_name": "DISPLAY_NAME",
  "description": "INDEX_DESCRIPTION",
}

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/indexes"

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/indexes" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata"
  }
}

Warehouse-Index aktualisieren

Mit der UpdateIndex API können Sie die Metadatenfelder des Index wie display_name und description sowie den zugrunde liegenden Indexinhalt (assets und deren annotations) aktualisieren.

Das Feld update_mask in der Anfrage, auch als Feldmaske bezeichnet, wird verwendet, um die Felder anzugeben, die durch die Aktualisierung in der Indexressource überschrieben werden sollen. Die in update_mask angegebenen Felder beziehen sich auf die Ressource, nicht auf die vollständige Anfrage. Ein Feld der Ressource wird überschrieben, wenn es in der Maske enthalten ist. Eine leere Feldmaske ist nicht zulässig. Wenn die Maske „*“ ist, wird eine vollständige Aktualisierung des Index und auch ein vollständiger Neuaufbau der Indexdaten ausgelöst.

REST

Senden Sie zum Aktualisieren einer Indexressource eine PATCH-Anfrage mit der Methode projects.locations.corpora.indexes.patch.

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.
  • INDEX_ID: Die ID Ihres Zielindex.
  • ?update_mask=fieldToUpdate: Liste der verfügbaren Felder, auf die Sie einen update_mask anwenden möchten. Geben Sie die entsprechenden Werte für die neuen Felder im Anfragetext an. Dieser neue Wert ersetzt den vorhandenen Feldwert. Sie können mehrere Felder als durch Kommas getrennte Werte angeben. Verfügbare Felder:
    • Anzeigename: ?update_mask=display_name
    • Beschreibung: ?update_mask=description
    • Aktualisieren Sie die zugrunde liegenden Indexdaten: ?update_mask=entire_corpus
    • Aktualisieren Sie alle Felder: ?update_mask=*

HTTP-Methode und URL:

PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID?update_mask=display_name,entire_corpus

JSON-Text der Anfrage:

{
  "display_name": "DISPLAY_NAME",
  "entire_corpus": 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 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/indexes/INDEX_ID?update_mask=display_name,entire_corpus"

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/indexes/INDEX_ID?update_mask=display_name,entire_corpus" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.UpdateIndexMetadata"
  }
}

Streamingindex-Updates

Mit den APIs IndexAsset und RemoveIndexAsset können Streaming-Updates für Indexe durchgeführt werden. Diese APIs werden nur im Vision Warehouse für Batch-Videos unterstützt.

Indexe in einem Warehouse auflisten

REST

Senden Sie eine GET-Anfrage mit der Methode projects.locations.corpora.indexes.list, um die Indexe unter einem Korpus aufzulisten.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

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

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes" | Select-Object -Expand Content

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

{
  "indexes": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_1",
      "display_name": "DISPLAY_NAME_1",
      "description": "DESCRIPTION_1",
      "entireCorpus": true,
      "state": "CREATED"
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID_2",
      "display_name": "DISPLAY_NAME_2",
      "description": "DESCRIPTION_2",
      "entireCorpus": true,
      "state": "CREATED"
    }
  ]
}

Index abrufen

REST

Wenn Sie Details zu einem Index abrufen möchten, senden Sie eine GET-Anfrage mit der Methode projects.locations.corpora.indexes.get.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
  "display_name": "DISPLAY_NAME",
  "description": "DESCRIPTION",
  "entireCorpus": true,
  "state": "CREATED"
}

Assets unter einem Index ansehen

REST

Wenn Sie Details zu den Assets unter einem Index abrufen möchten, senden Sie eine GET-Anfrage mit der Methode projects.locations.corpora.indexes.viewAssets.

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.
  • INDEX_ID: Die ID Ihres Zielindex.
  • PAGE_SIZE: (Optional) Die Anzahl der zurückzugebenden Ergebnisse.
  • PAGE_TOKEN: (Optional) Der nextPageToken, der von der Antwort des vorherigen Aufrufs bereitgestellt wurde. Damit kann die nächste Seite der Ergebnisse abgerufen werden.

HTTP-Methode und URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN" | Select-Object -Expand Content

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

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

Indexierte Assets mit einem Filter ansehen

Sie können eine Liste mit durch Kommas getrennten Asset-IDs über das Feld filter in der Methode projects.locations.corpora.indexes.viewAssets angeben, um alle Assets unter einem Index zu filtern und nur die angegebenen Assets anzuzeigen.

REST

Wenn Sie die Assets unter einem Index auflisten und filtern möchten, senden Sie eine GET-Anfrage mit der Methode projects.locations.corpora.indexes.viewAssets.

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.
  • INDEX_ID: Die ID Ihres Zielindex.
  • PAGE_SIZE: (Optional) Die Anzahl der zurückzugebenden Ergebnisse.
  • PAGE_TOKEN: (Optional) Der nextPageToken, der von der Antwort des vorherigen Aufrufs bereitgestellt wurde. Damit kann die nächste Seite der Ergebnisse abgerufen werden.
  • ASSET_ID_FILTER: (Optional) Eine durch Kommas getrennte Liste von Asset-IDs, die in der zurückgegebenen Liste gefiltert werden sollen. Beispiel:
    • ?filter=ASSET_ID_1"
    • ?filter=ASSET_ID_1,ASSET_ID_2"

HTTP-Methode und URL:

GET https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID:viewAssets?page_size=PAGE_SIZE&page_token=NEXT_PAGE_TOKEN&filter=ASSET_ID_FILTER" | Select-Object -Expand Content

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

{
  "indexedAssets": [
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1"
    },
    {
      "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID",
      "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2"
    }
  ],
  "nextPageToken": "NEXT_PAGE_TOKEN"
}

Index löschen

Ein Index kann nur gelöscht werden, wenn er nicht in einem indexEndpoint bereitgestellt wird. Folgen Sie der Anleitung zum Aufheben der Bereitstellung eines Index, bevor Sie einen bereitgestellten Index löschen.

REST

Senden Sie eine DELETE-Anfrage mit der Methode projects.locations.corpora.indexes.delete, um eine Indexressource zu löschen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

HTTP-Methode und URL:

DELETE https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"

PowerShell

Führen Sie folgenden Befehl aus:

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

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID" | Select-Object -Expand Content

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

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
}