Nachdem Sie den Index erstellt und bereitgestellt haben, können Sie Abfragen ausführen, um die nächstgelegenen Nachbarn abzurufen.
Im Folgenden finden Sie einige Beispiele für die Übereinstimmungsabfrage, um die nächstgelegenen Nachbarn mit dem Algorithmus „k-Nearest Neighbor“ (k-NN) zu finden.
Beispielabfragen für öffentliche Endpunkte
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Befehlszeile
Den unten aufgeführten publicEndpointDomainName finden Sie unter
Bereitstellen. Er hat folgendes Format:
<number>.<region>-<number>.vdb.vertexai.goog.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://1957880287.us-central1-181224308459.vdb.vertexai.goog/v1/projects/181224308459/locations/us-central1/indexEndpoints/3370566089086861312:findNeighbors -d '{deployed_index_id: "test_index_public1", queries: [{datapoint: {datapoint_id: "0", feature_vector: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}, neighbor_count: 5}]}'
Dieses curl-Beispiel zeigt, wie von http(s)-Clients aus aufgerufen wird.
Allerdings unterstützt der öffentliche Endpunkt ein Dual-Protokoll für RESTful und grpc_cli.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://1957880287.us-central1-181224308459.vdb.vertexai.goog/v1/projects/${PROJECT_ID}/locations/us-central1/indexEndpoints/${INDEX_ENDPOINT_ID}:readIndexDatapoints -d '{deployed_index_id:"test_index_public1", ids: ["606431", "896688"]}'
Dieses curl-Beispiel zeigt, wie mit Token- und numerischen Einschränkungen abgefragt wird.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${PUBLIC_ENDPOINT_DOMAIN}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexEndpoints/${INDEX_ENDPOINT_ID}:findNeighbors -d '{deployed_index_id:"${DEPLOYED_INDEX_ID}", queries: [{datapoint: {datapoint_id:"x", feature_vector: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{namespace: "int-ns", value_int: -2, op: "GREATER"}, {namespace: "int-ns", value_int: 4, op: "LESS_EQUAL"}, {namespace: "int-ns", value_int: 0, op: "NOT_EQUAL"}], restricts: [{namespace: "color", allow_list: ["red"]}]}}]}'
Console
Folgen Sie dieser Anleitung, um einen Index, der auf einem öffentlichen Endpunkt bereitgestellt ist, über die Console abzufragen.
- Wechseln Sie im Abschnitt „Agent Platform“ der Cloud de Confiance Console zum Abschnitt Bereitstellen und verwenden. Wählen Sie Vektorsuche aus.
- Wählen Sie den Index aus, den Sie abfragen möchten. Die Seite Indexinformationen wird geöffnet.
- Scrollen Sie nach unten zum Bereich Bereitgestellte Indexe und wählen Sie den bereitgestellten Index aus, den Sie abfragen möchten. Die Seite Informationen zum bereitgestellten Index wird geöffnet.
- Wählen Sie im Bereich Index abfragen aus, ob Sie nach einem dichten Einbettungswert, einem dünnbesetzten Einbettungswert, einem hybriden Einbettungswert (dichte und dünnbesetzte Einbettungen) oder einem bestimmten Datenpunkt abfragen möchten.
- Geben Sie die Abfrageparameter für den ausgewählten Abfragetyp ein. Wenn Sie beispielsweise nach einer dichten Einbettung abfragen, geben Sie den Einbettungsvektor ein, nach dem Sie abfragen möchten.
- Führen Sie die Abfrage mit dem angegebenen curl-Befehl oder mit Cloud Shell aus.
- Wenn Sie Cloud Shell verwenden, wählen Sie In Cloud Shell ausführen aus.
- In Cloud Shell ausführen
- Die Ergebnisse geben die nächsten Nachbarn zurück.
Hybride Abfragen
Bei der hybriden Suche werden sowohl dichte als auch dünnbesetzte Einbettungen für Suchen verwendet, die auf einer Kombination aus Stichwortsuche und semantischer Suche basieren.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Abfragen mit Filterung und Crowding
Durch das Filtern von Vektorübereinstimmungen können Sie die Ergebnisse der Suche nach nächsten Nachbarn auf bestimmte Kategorien beschränken. Mit Filtern können Sie auch Kategorien angeben, die aus den Ergebnissen ausgeschlossen werden sollen.
Durch die Begrenzung der Anzahl der Nachbarn pro Crowding-Tag kann die Vielfalt der Ergebnisse erhöht werden, indem die Anzahl der Ergebnisse begrenzt wird, die von einem einzelnen Crowding-Tag in Ihren Indexdaten zurückgegeben werden.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Befehlszeile
Die unten aufgeführten PUBLIC_ENDPOINT_DOMAIN finden Sie unter
Bereitgestellter Index. Sie haben folgendes Format:
<number>.<region>-<number>.vdb.vertexai.goog.
Dieses curl-Beispiel zeigt, wie mit Token- und numerischen Einschränkungen abgefragt wird.
$ curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer `gcloud auth print-access-token`" https://${PUBLIC_ENDPOINT_DOMAIN}/v1/projects/${PROJECT_ID}/locations/${LOCATION}/indexEndpoints/${INDEX_ENDPOINT_ID}:findNeighbors -d '{deployed_index_id:"${DEPLOYED_INDEX_ID}", queries: [{datapoint: {datapoint_id:"x", feature_vector: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{namespace: "int-ns", value_int: -2, op: "GREATER"}, {namespace: "int-ns", value_int: 4, op: "LESS_EQUAL"}, {namespace: "int-ns", value_int: 0, op: "NOT_EQUAL"}], restricts: [{namespace: "color", allow_list: ["red"]}]}}]}'
Einstellungen beim Abfragezeitpunkt, die sich auf die Leistung auswirken
Die folgenden Parameter für die Abfragezeit können sich bei der Verwendung der Vektorsuche auf Latenz, Verfügbarkeit und Kosten auswirken. Diese Empfehlung gilt in den meisten Fällen. Testen Sie jedoch immer mit Ihren Konfigurationen, ob sie sich für Ihren Anwendungsfall eignen.
Informationen zu Parameterdefinitionen finden Sie unter Parameter für die Indexkonfiguration.
| Parameter | Info | Auswirkungen auf die Leistung |
|---|---|---|
approximateNeighborsCount |
Gibt dem Algorithmus die Anzahl der ungefähren Ergebnisse an, die von jedem Shard abgerufen werden sollen.
Der Wert von
Der entsprechende REST API-Name für dieses Feld ist
|
Das Erhöhen des Werts von
Wenn Sie den Wert von
|
setNeighborCount |
Gibt die Anzahl der Ergebnisse an, die durch die Abfrage zurückgegeben werden sollen.
Der entsprechende REST API-Name für dieses Feld ist
|
Werte unter oder gleich 300 bleiben in den meisten Anwendungsfällen leistungsfähig. Bei größeren Werten sollten Sie für Ihren spezifischen Anwendungsfall testen. |
fractionLeafNodesToSearch |
Steuert den Prozentsatz der Blattknoten, die bei der Suche nach nächsten Nachbarn besucht werden. Dies steht in Bezug auf die leafNodeEmbeddingCount in
insofern, als je mehr Einbettungen pro Blattknoten umso mehr Daten pro Blatt untersucht werden.
Der entsprechende REST API-Name für dieses Feld ist
|
Das Erhöhen des Werts von
Das Verringern des Werts von
|