Como parte de tu experiencia de generación aumentada por recuperación (RAG) en las aplicaciones de IA, puedes clasificar un conjunto de documentos según una búsqueda.
La API de clasificación toma una lista de documentos y los vuelve a clasificar según su relevancia para una búsqueda. En comparación con las incorporaciones, que solo analizan la similitud semántica de un documento y una búsqueda, la API de Ranking puede proporcionarte puntuaciones precisas sobre qué tan bien un documento responde una búsqueda determinada. La API de clasificación se puede usar para mejorar la calidad de los resultados de la búsqueda después de recuperar un conjunto inicial de documentos candidatos.
La API de clasificación no tiene estado, por lo que no es necesario indexar documentos antes de llamarla. Todo lo que necesitas hacer es pasar la búsqueda y los documentos. Esto hace que la API sea adecuada para volver a clasificar documentos de la Búsqueda vectorial y otras soluciones de búsqueda.
En esta página, se describe cómo usar la API de clasificación para ordenar un conjunto de documentos según una búsqueda.
Casos de uso
El caso de uso principal de la API de clasificación es mejorar la calidad de los resultados de la búsqueda.
Sin embargo, la API de Ranking puede ser valiosa en cualquier situación en la que necesites encontrar qué contenido es más relevante para la búsqueda de un usuario. Por ejemplo, la API de clasificación puede ayudarte con lo siguiente:
Cómo encontrar el contenido adecuado para fundamentar un LLM
Cómo mejorar la relevancia de una experiencia de búsqueda existente
Identificar las secciones pertinentes de un documento
En el siguiente flujo, se describe cómo puedes usar la API de Ranking para mejorar la calidad de los resultados de los documentos segmentados:
Usa la API de Document AI Layout Parser para dividir un conjunto de documentos en fragmentos.
Usa una API de embeddings para crear embeddings para cada uno de los fragmentos.
Carga los embeddings en Vector Search o en otra solución de búsqueda.
Consulta tu índice de búsqueda y recupera los fragmentos más relevantes.
Vuelve a clasificar los fragmentos relevantes con la API de clasificación.
Datos de entrada
La API de clasificación requiere las siguientes entradas:
Es la búsqueda para la que clasificas los registros.
Por ejemplo:
"query": "Why is the sky blue?"
Es un conjunto de registros relevantes para la búsqueda. Los registros se proporcionan como un array de objetos. Cada registro puede incluir un ID único, un título y el contenido del documento. Para cada registro, incluye un título, contenido o ambos. La cantidad máxima de tokens admitidos por registro depende de la versión del modelo que se use. Por ejemplo, los modelos hasta la versión
003
admiten 512 tokens, mientras que la versión004
admite 1,024 tokens. Si la longitud combinada del título y el contenido supera el límite de tokens del modelo, se trunca el contenido adicional. Puedes incluir hasta 200 registros por solicitud.Por ejemplo, un array de registros se ve de la siguiente manera. En realidad, se incluirían muchos más registros en el array y el contenido sería mucho más largo:
"records": [ { "id": "1", "title": "The Color of the Sky: A Poem", "content": "A canvas stretched across the day,\nWhere sunlight learns to dance and play.\nBlue, a hue of scattered light,\nA gentle whisper, soft and bright." }, { "id": "2", "title": "The Science of a Blue Sky", "content": "The sky appears blue due to a phenomenon called Rayleigh scattering. Sunlight is comprised of all the colors of the rainbow. Blue light has shorter wavelengths than other colors, and is thus scattered more easily." } ]
Opcional: Es la cantidad máxima de registros que deseas que devuelva la API de clasificación. De forma predeterminada, se devuelven todos los registros. Sin embargo, puedes usar el campo
topN
para devolver menos registros. Todos los registros se clasifican independientemente del valor establecido.Por ejemplo, este comando devuelve los 10 registros mejor clasificados:
"topN": 10,
Opcional: Es un parámetro de configuración que especifica si solo quieres que la API devuelva el ID del registro o si también quieres que devuelva el título y el contenido del registro. De forma predeterminada, se devuelve el registro completo. El motivo principal para establecer este parámetro es si deseas reducir el tamaño de la carga útil de la respuesta.
Por ejemplo, si se configura en
true
, solo se devuelve el ID del registro, no el título ni el contenido:"ignoreRecordDetailsInResponse": true,
Opcional: Es el nombre del modelo. Especifica el modelo que se usará para clasificar los documentos. Si no se especifica ningún modelo, se usa
semantic-ranker-default@latest
, que apunta automáticamente al modelo disponible más reciente. Para hacer referencia a un modelo específico, especifica uno de los nombres de los modelos que se indican en Modelos compatibles, por ejemplo,semantic-ranker-512-003
.En el siguiente ejemplo,
model
se establece ensemantic-ranker-default@latest
. Esto significa que la API de clasificación siempre usará el modelo disponible más reciente."model": "semantic-ranker-default@latest"
Datos de salida
La API de clasificación devuelve una lista clasificada de registros con los siguientes resultados:
Puntuación: Es un valor de número de punto flotante entre 0 y 1 que indica la relevancia del registro.
ID: Es el ID único del registro.
Si se solicita, el objeto completo: el ID, el título y el contenido.
Por ejemplo:
{
"records": [
{
"id": "2",
"score": 0.98,
"title": "The Science of a Blue Sky",
"content": "The sky appears blue due to a phenomenon called Rayleigh scattering. Sunlight is comprised of all the colors of the rainbow. Blue light has shorter wavelengths than other colors, and is thus scattered more easily."
},
{
"id": "1",
"score": 0.64,
"title": "The Color of the Sky: A Poem",
"content": "A canvas stretched across the day,\nWhere sunlight learns to dance and play.\nBlue, a hue of scattered light,\nA gentle whisper, soft and bright."
}
]
}
Clasifica (o reclasifica) un conjunto de registros según una búsqueda
Por lo general, proporcionarás a la API de Ranking una búsqueda y un conjunto de registros que sean relevantes para esa búsqueda y que ya se hayan clasificado con algún otro método, como una búsqueda de palabras clave o una búsqueda de vectores. Luego, usas la API de clasificación para mejorar la calidad de la clasificación y determinar una puntuación que indique la relevancia de cada registro para la búsqueda.
Obtén la consulta y los registros resultantes. Asegúrate de que cada registro tenga un ID y un título, contenido o ambos.
La cantidad máxima de tokens admitidos por registro depende de la versión del modelo. Los modelos hasta la versión
003
, comosemantic-ranker-512-003
, admiten 512 tokens por registro. A partir de la versión004
, este límite aumenta a 1,024 tokens. Si la longitud combinada del título y el contenido supera el límite de tokens del modelo, se trunca el contenido adicional.Llama al método
rankingConfigs.rank
con el siguiente código:
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/rankingConfigs/default_ranking_config:rank" \
-d '{
"model": "semantic-ranker-default@latest",
"query": "QUERY",
"records": [
{
"id": "RECORD_ID_1",
"title": "TITLE_1",
"content": "CONTENT_1"
},
{
"id": "RECORD_ID_2",
"title": "TITLE_2",
"content": "CONTENT_2"
},
{
"id": "RECORD_ID_3",
"title": "TITLE_3",
"content": "CONTENT_3"
}
]
}'
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID de tu proyecto de Google Cloud .QUERY
: Es la búsqueda con la que se clasifican y puntúan los registros.RECORD_ID_n
: Es una cadena única que identifica el registro.TITLE_n
: Es el título del registro.CONTENT_n
: Es el contenido del registro.
Para obtener información general sobre este método, consulta rankingConfigs.rank
.
Haz clic para ver un ejemplo de comando y respuesta de curl.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: my-project-123" \ "https://discoveryengine.googleapis.com/v1/projects/my-project-123/locations/global/rankingConfigs/default_ranking_config:rank" \ -d '{ "model": "semantic-ranker-default@latest", "query": "what is Google gemini?", "records": [ { "id": "1", "title": "Gemini", "content": "The Gemini zodiac symbol often depicts two figures standing side-by-side." }, { "id": "2", "title": "Gemini", "content": "Gemini is a cutting edge large language model created by Google." }, { "id": "3", "title": "Gemini Constellation", "content": "Gemini is a constellation that can be seen in the night sky." } ] }'
{ "records": [ { "id": "2", "title": "Gemini", "content": "Gemini is a cutting edge large language model created by Google.", "score": 0.97 }, { "id": "3", "title": "Gemini Constellation", "content": "Gemini is a constellation that can be seen in the night sky.", "score": 0.18 }, { "id": "1", "title": "Gemini", "content": "The Gemini zodiac symbol often depicts two figures standing side-by-side.", "score": 0.05 } ] }
Python
Para obtener más información, consulta la documentación de referencia de la API de AI Applications Python.
Para autenticarte en AI Applications, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Modelos compatibles
Están disponibles los siguientes modelos.
Nombre del modelo | Modelo más reciente (semantic-ranker-default@latest ) |
Entrada | Ventana de contexto | Fecha de lanzamiento | Fecha de descontinuación |
---|---|---|---|---|---|
semantic-ranker-default-004 |
Sí | Texto (25 idiomas) | 1024 | 9 de abril de 2025 | Sin establecer |
semantic-ranker-fast-004 |
No | Texto (25 idiomas) | 1024 | 9 de abril de 2025 | Sin establecer |
semantic-ranker-default-003 |
No | Texto (25 idiomas) | 512 | 10 de septiembre de 2024 | Sin establecer |
semantic-ranker-default-002 |
No | Texto (solo en inglés) | 512 | 3 de junio de 2024 | Sin establecer |
¿Qué sigue?
Aprende a usar el método de clasificación con otras APIs de RAG para generar respuestas fundamentadas a partir de datos no estructurados.