Une fois que vous avez déployé un point de terminaison d'index d'appairage de réseau VPC ou Private Service Connect, la façon de l'interroger diffère légèrement selon le mode de déploiement :
- Automatisation Private Service Connect
- Configuration manuelle de Private Service Connect
- Appairage de réseaux VPC
Déploiement avec l'automatisation Private Service Connect
Lorsque des IndexEndpoints
sont déployés avec l'automatisation Private Service Connect, le SDK Python mappe automatiquement le réseau Private Service Connect au point de terminaison approprié. Si vous n'utilisez pas le SDK Python, vous devez vous connecter directement à l'adresse IP créée pour votre point de terminaison en suivant les instructions concernant l'interrogation d'un déploiement manuel Private Service Connect.
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.
Déploiement avec la configuration manuelle de Private Service Connect
Lorsque des IndexEndpoints
Private Service Connect sont déployés avec une connexion configurée manuellement, votre point de terminaison est accessible à l'aide de l'adresse IP de l'adresse de calcul transférée au rattachement de service Private Service Connect de votre point de terminaison.
Si vous ne la connaissez pas déjà, vous pouvez obtenir l'adresse IP transmise à l'URI du rattachement de service à l'aide des commandes gcloud ai index-endpoints describe
et gcloud compute forwarding-rules list
.
Effectuez les remplacements suivants :
- INDEX_ENDPOINT_ID : ID complet du point de terminaison de l'index
- REGION : région dans laquelle votre point de terminaison d'index est déployé
SERVICE_ATTACHMENT_URI=`gcloud ai index-endpoints describe INDEX_ENDPOINT_ID \ --region=REGION \ --format="value(deployedIndexes.privateEndpoints.serviceAttachment)"` gcloud compute forwarding-rules list --filter="TARGET:${SERVICE_ATTACHMENT_URI}"
Le résultat inclut l'adresse IP interne à utiliser pour interroger IndexEndpoint
.
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
Pour interroger un DeployedIndex
, connectez-vous à son TARGET_IP
sur le port 10000
, puis appelez la méthode Match
ou BatchMatch
. Vous pouvez également effectuer des requêtes à l'aide d'un ID d'embedding spécifique.
Les exemples suivants utilisent l'outil Open Source grpc_cli
pour envoyer des requêtes gRPC au serveur d'index déployé.
Match
.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'
Dans le deuxième exemple, vous combinez deux requêtes distinctes dans la même requête BatchMatch
.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.BatchMatch 'requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}, {deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.2,..]}]}]'
Vous devez appeler ces API à partir d'un client exécuté dans le même VPC avec lequel le service a été appairé.
Pour exécuter une requête à l'aide d'un embedding_id
, référez-vous à l'exemple suivant.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"
Dans cet exemple, vous envoyez une requête en utilisant des restrictions de jeton et des restrictions numériques.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{name: "double-ns", value_double: 0.3, op: LESS_EQUAL}, {name: "double-ns", value_double: -1.2, op: GREATER}, {name: "double-ns", value_double: 0., op: NOT_EQUAL}], restricts: [{name: "color", allow_tokens: ["red"]}]'
Pour en savoir plus, consultez Présentation des bibliothèques clientes.
Console
Suivez ces instructions pour interroger un index VPC dans 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 VPC que vous souhaitez interroger. La page Informations sur l'index s'affiche.
- 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'affiche.
- Dans la section Interroger l'index, sélectionnez les paramètres de votre requête. Vous pouvez choisir d'effectuer une requête par vecteur ou par point de données spécifique.
- Exécutez la requête à l'aide de l'outil Open Source grpc_cli ou à l'aide du SDK Vertex AI pour Python.
Déploiement avec l'appairage de réseaux VPC
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.
Remarque : Le SDK Python recherche automatiquement l'adresse IP d'un IndexEndpoint
déployé avec l'appairage de réseaux VPC.
Ligne de commande
Chaque DeployedIndex
possède une TARGET_IP
que vous pouvez récupérer dans votre liste d'IndexEndpoints
.
Pour interroger un DeployedIndex
, connectez-vous à son TARGET_IP
sur le port 10000
, puis appelez la méthode Match
ou BatchMatch
. Vous pouvez également effectuer des requêtes à l'aide d'un ID d'embedding spécifique.
Les exemples suivants utilisent l'outil Open Source grpc_cli
pour envoyer des requêtes gRPC au serveur d'index déployé.
Match
.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'
Dans le deuxième exemple, vous combinez deux requêtes distinctes dans la même requête BatchMatch
.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.BatchMatch 'requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}, {deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.2,..]}]}]'
Vous devez appeler ces API à partir d'un client exécuté dans le même VPC avec lequel le service a été appairé.
Pour exécuter une requête à l'aide d'un embedding_id
, référez-vous à l'exemple suivant.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"
Dans cet exemple, vous envoyez une requête en utilisant des restrictions de jeton et des restrictions numériques.
./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{name: "double-ns", value_double: 0.3, op: LESS_EQUAL}, {name: "double-ns", value_double: -1.2, op: GREATER}, {name: "double-ns", value_double: 0., op: NOT_EQUAL}], restricts: [{name: "color", allow_tokens: ["red"]}]'
Pour en savoir plus, consultez Présentation des bibliothèques clientes.
Console
Suivez ces instructions pour interroger un index VPC dans 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 VPC que vous souhaitez interroger. La page Informations sur l'index s'affiche.
- 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'affiche.
- Dans la section Interroger l'index, sélectionnez les paramètres de votre requête. Vous pouvez choisir d'effectuer une requête par vecteur ou par point de données spécifique.
- Exécutez la requête à l'aide de l'outil Open Source grpc_cli ou à l'aide du SDK Vertex AI pour 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
|
Étapes suivantes
- Découvrez comment mettre à jour et recompiler votre index.
- Découvrez comment filtrer les correspondances vectorielles.
- Découvrez comment surveiller un index.