Une fois que vous avez créé et déployé l'index, vous pouvez exécuter des requêtes pour obtenir les voisins les plus proches.
Voici des exemples de requête de correspondance visant à identifier les voisins les plus proches à l'aide de l'algorithme des k plus proches voisins (k-NN).
Exemples de requêtes pour un point de terminaison public
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Ligne de commande
Le publicEndpointDomainName
listé ci-dessous est disponible dans Déployer et est au 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}]}'
Cet exemple curl montre comment appeler à partir de clients http(s)
, bien que le point de terminaison public soit compatible avec le double protocole pour RESTful et 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"]}'
Cet exemple curl montre comment effectuer des requêtes avec restrictions de jeton et restrictions numériques.
$ 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
Suivez ces instructions pour interroger un index déployé sur un point de terminaison public depuis la console.
- Dans la section "Vertex AI" de la console Google Cloud , accédez à la section Déployer et utiliser. Sélectionnez Recherche vectorielle.
- Sélectionnez l'index que vous souhaitez interroger. La page Informations sur l'index s'ouvre.
- Faites défiler la page jusqu'à la section Index déployés et sélectionnez celui que vous souhaitez interroger. La page Informations sur l'index déployé s'ouvre.
- Dans la section Interroger l'index, sélectionnez si vous souhaitez effectuer une requête avec une valeur d'embedding dense, une valeur d'embedding creux, une valeur d'embedding hybride (dense et creux) ou un point de données spécifique.
- Saisissez les paramètres correspondant au type de requête que vous avez sélectionné. Par exemple, si vous effectuez une requête avec un embedding dense, saisissez le vecteur d'embedding à utiliser.
- Exécutez la requête à l'aide de la commande curl fournie ou de Cloud Shell.
- Si vous utilisez Cloud Shell, sélectionnez Exécuter dans Cloud Shell.
- Exécutez la requête dans Cloud Shell.
- Les résultats renvoient les voisins les plus proches.
Requêtes hybrides
La recherche hybride utilise des embeddings denses et creux pour les combinaisons de recherche sémantique et par mot clé.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Requêtes avec filtrage et regroupement
Le filtrage des correspondances vectorielles vous permet de limiter les résultats sur les voisins les plus proches à des catégories spécifiques. Les filtres peuvent également désigner des catégories à exclure de vos résultats.
Les limites de voisins par regroupement peuvent augmenter la diversité des résultats en limitant le nombre de résultats renvoyés à partir d'un seul tag de regroupement dans vos données d'index.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Paramètres de requête ayant un impact sur les performances
Les paramètres de requête suivants peuvent avoir un impact sur la latence, la disponibilité et les coûts lors de l'utilisation de la recherche vectorielle. Ces conseils s'appliquent à la plupart des cas. Toutefois, testez toujours vos configurations pour vous assurer qu'elles fonctionnent bien pour votre cas d'utilisation.
Pour les définitions de paramètres, consultez Paramètres de configuration d'index.
Paramètre | À propos | Impact sur les performances |
---|---|---|
approximateNeighborsCount |
Indique à l'algorithme le nombre de résultats approximatifs à récupérer à partir de chaque segment.
La valeur de
Le nom de l'API REST correspondant à ce champ est |
Augmenter la valeur de
Diminuer la valeur de
|
setNeighborCount |
Spécifie le nombre de résultats que la requête doit renvoyer.
Le nom de l'API REST correspondant à ce champ est |
Les valeurs inférieures ou égales à 300 restent performantes dans la plupart des cas d'utilisation. Pour les valeurs plus élevées, testez votre cas d'utilisation spécifique. |
fractionLeafNodesToSearch |
Contrôle le pourcentage de nœuds feuilles à consulter lors de la recherche de voisins les plus proches. Ce paramètre est lié à leafNodeEmbeddingCount , dans le sens où plus il y a d'embeddings par nœud feuille, plus la quantité de données examinées par feuille est importante.
Le nom de l'API REST correspondant à ce champ est |
Augmenter la valeur de
Diminuer la valeur de
|