Una vez que hayas creado y, además, implementado el índice, puedes ejecutar consultas para obtener los vecinos más cercanos.
Estos son algunos ejemplos de una consulta de coincidencia para encontrar los vecinos más cercanos mediante el algoritmo de k-vecinos más cercanos (k-NN).
Ejemplos de consultas para el extremo público
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la Python documentación de referencia de la API.
Línea de comandos
El publicEndpointDomainName que aparece a continuación se encuentra en
Implementar y tiene el formato
<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}]}'
En este ejemplo de curl, se muestra cómo llamar desde clientes de http(s), aunque el extremo público admite el protocolo doble para RESTful y 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"]}'
En este ejemplo de curl, se muestra cómo consultar con restricciones numéricas y de tokens.
$ 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
Usa estas instrucciones para consultar un índice implementado en un extremo público desde la consola.
- En la sección Plataforma del agente de la Google Cloud consola, ve a la sección Implementación y uso. Elige Vector Search
- Selecciona el índice que deseas consultar. Se abrirá la página Index info.
- Desplázate hacia abajo hasta la sección Índices implementados y selecciona el índice implementado que deseas consultar. Se abrirá la página Deployed index info.
- En la sección Query index , selecciona si deseas consultar por un valor de embedding denso, un valor de embedding disperso, un valor de embedding híbrido (embeddings densos y dispersos) o un dato específico.
- Ingresa los parámetros de consulta para el tipo de consulta que seleccionaste. Por ejemplo, si realizas una consulta por un embedding denso, ingresa el vector de embedding por el que deseas consultar.
- Ejecuta la consulta con el comando curl proporcionado o a través de la ejecución con Cloud Shell.
- Si usas Cloud Shell, selecciona Ejecutar en Cloud Shell.
- Ejecuta en Cloud Shell.
- Los resultados muestran los vecinos más cercanos.
Consultas híbridas
La búsqueda híbrida usa embeddings densos y dispersos para búsquedas basadas en una combinación de búsqueda de palabras clave y búsqueda semántica.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la Python documentación de referencia de la API.
Consultas con filtros y multiplicidad
Filtrar coincidencias de vectores te permite restringir los resultados de los vecinos más cercanos a categorías específicas. Los filtros también pueden designar categorías para excluir de los resultados.
Los límites de vecinos por agrupamiento pueden aumentar la diversidad de resultados si limitan la cantidad de resultados que se muestran desde cualquier etiqueta de agrupamiento en los datos del índice.
Python
Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la Python documentación de referencia de la API.
Línea de comandos
El PUBLIC_ENDPOINT_DOMAIN que aparece a continuación se encuentra en el
índice implementado y tiene el formato
<number>.<region>-<number>.vdb.vertexai.goog.
En este ejemplo de curl, se muestra cómo consultar con restricciones numéricas y de tokens.
$ 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"]}]}}]}'
Configuración del tiempo de consulta que afecta el rendimiento
Los siguientes parámetros de tiempo de consulta pueden afectar la latencia, la disponibilidad y el costo cuando se usa Vector Search. Esta guía se aplica en la mayoría de los casos. Sin embargo, siempre experimenta con tus opciones de configuración a fin de asegurarte de que funcionen para tu caso de uso.
Para ver las definiciones de parámetros, consulta Parámetros de configuración de índices.
| Parámetro | Acerca de | Impacto en el rendimiento |
|---|---|---|
approximateNeighborsCount |
Indica al algoritmo la cantidad de resultados aproximados que se recuperarán de cada fragmentación.
El valor de
El nombre de la API de REST correspondiente para este campo es
|
Aumentar el valor de
Disminuir el valor de
|
setNeighborCount |
Especifica la cantidad de resultados que deseas que muestre la consulta.
El nombre de la API de REST correspondiente para este campo es
|
Los valores inferiores o iguales a 300 siguen teniendo un rendimiento en la mayoría de los casos de uso. Para valores más altos, prueba tu caso de uso específico. |
fractionLeafNodesToSearch |
Controla el porcentaje de nodos de hoja que se visitarán cuando se busquen vecinos más cercanos. Esto se relaciona con el leafNodeEmbeddingCount en
que cuantas más incorporaciones por nodo de hoja, más datos se examinan por hoja.
El nombre de la API de REST correspondiente para este campo es
|
Aumentar el valor de
Disminuir el valor de
|