Wenn Sie Ihren Onlinespeicher für die Unterstützung von Einbettungen konfiguriert haben, können Sie eine Suche nach Vektorähnlichkeiten ausführen, um eine Liste semantisch ähnlicher oder verwandter Entitäten abzurufen, die auch als ungefähre nächste Nachbarn bezeichnet werden. Sie können anhand einer Entitäts-ID oder einer Einbettung suchen.
Um nach den ungefähren nächsten Nachbarn zu suchen, müssen Sie zuerst Folgendes tun:
Richten Sie die BigQuery-Datenquelle für die Unterstützung von Einbettungen ein, indem Sie die Spalte
embedding
hinzufügen. Optional können Sie Spalten mit Filtern und Mengenbeschränkungen hinzufügen. Weitere Informationen finden Sie unter Vorbereitung der Datenquelle.Erstellen Sie eine Onlinespeicherinstanz, die die Einbettungsverwaltung unterstützt. Weitere Informationen zum Erstellen einer Onlinespeicherinstanz, die die Einbettungsverwaltung unterstützt, finden Sie unter Einbettungsverwaltung für einen Onlinespeicher konfigurieren.
Geben Sie beim Erstellen der Featureansicht die Spalte
embedding
an. Weitere Informationen zum Erstellen einer Featureansicht, die Einbettungen unterstützt, finden Sie unter Vektorabruf für eine Featureansicht konfigurieren.
Auf dieser Seite wird Folgendes beschrieben:
Domainnamen des öffentlichen Endpunkts für den Onlinespeicher abrufen
Übereinstimmungen mit dem nächsten Nachbarn einer Einbettung abrufen
Übereinstimmungen mit dem nächsten Nachbarn einer Entität abrufen
Domainnamen des öffentlichen Endpunkts für den Onlinespeicher abrufen
Wenn Sie eine Onlinespeicherinstanz für die Einbettungsverwaltung erstellen und konfigurieren, generiert Vertex AI Feature Store einen öffentlichen Endpunkt-Domainnamen für den Onlinespeicher. Bevor Sie im Feature Store nach den nächsten Nachbarn aus einer Feature-Ansicht im Onlinespeicher suchen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Onlinespeicherdetails abrufen.
Verwenden Sie das folgende Beispiel, um die Details einer Onlinespeicherinstanz abzurufen.
REST
Sie rufen die Details eines FeatureOnlineStore
Ressource in Ihrem Projekt ab, indem Sie senden eine GET
Anfrage mithilfe des featureOnlineStores.get
-Methode.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATUREONLINESTORE_NAME: Der Name der Onlinespeicherinstanz.
HTTP-Methode und URL:
GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME
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)" \
"http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME_1", "createTime": "2023-09-06T23:25:04.256314Z", "updateTime": "2023-09-06T23:25:04.256314Z", "etag": "AMEw9yMgoV0bAsYuKwVxz4Y7lOmxV7riNVHg217KaQAKORqvdqGCrQ1DIt8yHgoGXf8=", "state": "STABLE", "dedicatedServingEndpoint": { "publicEndpointDomainName": "PUBLIC_ENDPOINT_DOMAIN_NAME" }, "optimized": {} }
Sie benötigen die PUBLIC_ENDPOINT_DOMAIN_NAME aus der Antwort, um im nächsten Schritt die nächsten Nachbarn abzurufen.
Ungefähre nächste Nachbarn einer Einbettung abrufen
Verwenden Sie das folgende Beispiel, um mit einer Einbettung nach semantisch verwandten Entitäten zu suchen, indem Sie eine Einbettung angeben.
REST
Senden Sie eine POST
-Anfrage mit der Methode featureViews.searchNearestEntities, um die nächsten Nachbarn nach einer Einbettung zu suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PUBLIC_ENDPOINT_DOMAIN_NAME: Der Domainname des öffentlichen Endpunkts für die Onlinespeicherinstanz, die Sie mit der Methode
featureOnlineStores.get
abgerufen haben. - PROJECT_ID: Ihre Projekt-ID.
- LOCATION_ID: Die Region, in der sich die Onlinespeicherinstanz befindet, z. B.
us-central1
. - FEATUREONLINESTORE_NAME: Der Name der Onlinespeicherinstanz mit der Featureansicht, in der Sie nach ungefähren nächsten Nachbarn-Übereinstimmungen suchen möchten.
- FEATUREVIEW_NAME: Der Name der Featureansicht, in der Sie nach ungefähren nächsten Nachbarn-Übereinstimmungen suchen möchten.
- EMBEDDING: Einbettung, für die Sie ungefähre nächste Nachbarn-Übereinstimmungen abrufen möchten. Eine Einbettung wird durch ein Array von
double
-Werten dargestellt. - BOOLEAN: Optional: Geben Sie an, ob Sie die Features für die Entitäten in der Antwort ein- oder ausschließen möchten. Geben Sie
true
ein, um die Features zusammen mit den Entitäten in die Antwort aufzunehmen. Der Standardwert istfalse
. - NEIGHBOR_COUNT: Anzahl der ungefähren nächsten Nachbarn, die Sie abrufen möchten.
HTTP-Methode und URL:
POST http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities
JSON-Text der Anfrage:
{ "query": { "embedding": { "value": EMBEDDING }, "neighbor_count": NEIGHBOR_COUNT }, "return_full_entity": BOOLEAN }
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 \
"http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities"
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 "http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "nearestNeighbors": { "neighbors": [ { "entityId": "305281", "distance": -41.115459442138672 }, { "entityId": "80280", "distance": -38.703567504882812 }, { "entityId": "80280", "distance":-38.703567504882812 }, { "entityId": "903779", "distance": -38.214759826660156 }, { "entityId": "1008145", "distance": -36.271354675292969 }, { "entityId": "606431", "distance": -34.791431427001953 } ] } }
Ungefähre nächste Nachbarn einer Entität abrufen
Im folgenden Beispiel wird mithilfe einer Einbettung die Suche nach semantisch verwandten Entitäten ausgeführt. Dazu wird eine Entitäts-ID angegeben.
REST
Senden Sie eine POST
-Anfrage mit der Methode featureViews.searchNearestEntities, um die nächsten Nachbarn nach einer Entitäts-ID zu suchen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PUBLIC_ENDPOINT_DOMAIN_NAME: Der Domainname des öffentlichen Endpunkts für die Onlinespeicherinstanz, die Sie mit der Methode
featureOnlineStores.get
abgerufen haben. - PROJECT_ID: Ihre Projekt-ID.
- LOCATION_ID: Die Region, in der sich die Onlinespeicherinstanz befindet, z. B.
us-central1
. - FEATUREONLINESTORE_NAME: Der Name der Onlinespeicherinstanz mit der Featureansicht, in der Sie nach ungefähren nächsten Nachbarn-Übereinstimmungen suchen möchten.
- FEATUREVIEW_NAME: Der Name der Featureansicht, in der Sie nach ungefähren nächsten Nachbarn-Übereinstimmungen suchen möchten.
- ENTITY_ID: Entitäts-ID der Entität, für die Sie ungefähre nächste Nachbar-Übereinstimmungen abrufen möchten.
- BOOLEAN: Optional: Geben Sie an, ob Sie die Features für die Entitäten in der Antwort ein- oder ausschließen möchten. Geben Sie
true
ein, um die Features zusammen mit den Entitäten in die Antwort aufzunehmen. Der Standardwert istfalse
. - NEIGHBOR_COUNT: Anzahl der ungefähren nächsten Nachbarn, die Sie abrufen möchten.
HTTP-Methode und URL:
POST http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities
JSON-Text der Anfrage:
{ "query": { "entity_id": ENTITY_ID, "neighbor_count": NEIGHBOR_COUNT }, "return_full_entity": BOOLEAN }
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 \
"http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities"
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 "http://PUBLIC_ENDPOINT_DOMAIN_NAME/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:searchNearestEntities" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "nearestNeighbors": { "neighbors": [ { "entityId": "305281", "distance": -41.115459442138672 }, { "entityId": "80280", "distance": -38.703567504882812 }, { "entityId": "80280", "distance":-38.703567504882812 }, { "entityId": "903779", "distance": -38.214759826660156 }, { "entityId": "1008145", "distance": -36.271354675292969 }, { "entityId": "606431", "distance": -34.791431427001953 } ] } }