Como parte da sua experiência de geração aumentada de recuperação (RAG) em aplicações de IA, pode classificar um conjunto de documentos com base numa consulta.
A API Ranking recebe uma lista de documentos e reclassifica-os com base na relevância dos documentos para uma consulta. Em comparação com as incorporações, que analisam apenas a semelhança semântica de um documento e uma consulta, a API Ranking pode fornecer-lhe classificações precisas sobre a qualidade com que um documento responde a uma determinada consulta. A API Ranking pode ser usada para melhorar a qualidade dos resultados da pesquisa após a obtenção de um conjunto inicial de documentos candidatos.
A API Ranking não tem estado, pelo que não é necessário indexar documentos antes de chamar a API. Só tem de transmitir a consulta e os documentos. Isto torna a API adequada para reclassificar documentos da pesquisa vetorial e de outras soluções de pesquisa.
Esta página descreve como usar a API Ranking para classificar um conjunto de documentos com base numa consulta.
Exemplos de utilização
O principal exemplo de utilização da API Ranking é melhorar a qualidade dos resultados da pesquisa.
No entanto, a API Ranking pode ser valiosa para qualquer cenário em que precise de encontrar que partes do conteúdo são mais relevantes para a consulta de um utilizador. Por exemplo, a API Ranking pode ajudar nas seguintes situações:
Encontrar o conteúdo certo para fornecer a um MDG para fundamentação
Melhorar a relevância de uma experiência de pesquisa existente
Identificar secções relevantes de um documento
O fluxo seguinte descreve como pode usar a API Ranking para melhorar a qualidade dos resultados para documentos divididos em partes:
Use a API Document AI Layout Parser para dividir um conjunto de documentos em partes.
Use uma API de incorporações para criar incorporações para cada um dos fragmentos.
Carregue as incorporações na pesquisa vetorial ou noutra solução de pesquisa.
Consultar o seu índice de pesquisa e obter os fragmentos mais relevantes.
Reclassifique os fragmentos relevantes com a API de classificação.
Dados de entrada
A API Ranking requer as seguintes entradas:
A consulta para a qual está a classificar os registos.
Por exemplo:
"query": "Why is the sky blue?"
Um conjunto de registos relevantes para a consulta. Os registos são fornecidos como uma matriz de objetos. Cada registo pode incluir um ID exclusivo, um título e o conteúdo do documento. Para cada registo, inclua um título, conteúdo ou ambos. O número máximo de tokens suportados por registo depende da versão do modelo que está a ser usada. Por exemplo, os modelos até à versão
003
suportam 512 tokens, enquanto a versão004
suporta 1024 tokens. Se o comprimento combinado do título e do conteúdo exceder o limite de tokens do modelo, o conteúdo adicional é truncado. Pode incluir até 200 registos por pedido.Por exemplo, uma matriz de registos tem um aspeto semelhante a este. Na realidade, seriam incluídos muitos mais registos na matriz e o conteúdo seria muito mais longo:
"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: o número máximo de registos que quer que a API Ranking devolva. Por predefinição, são devolvidos todos os registos. No entanto, pode usar o campo
topN
para devolver menos registos. Todos os registos são classificados independentemente do valor definido.Por exemplo, isto devolve os 10 principais registos classificados:
"topN": 10,
Opcional: uma definição que especifica se quer apenas o ID do registo devolvido pela API ou se também quer o título e o conteúdo do registo. Por predefinição, é devolvido o registo completo. O principal motivo para definir esta opção é se quiser reduzir o tamanho do payload de resposta.
Por exemplo, a definição para
true
devolve apenas o ID do registo e não o título nem o conteúdo:"ignoreRecordDetailsInResponse": true,
Opcional: o nome do modelo. Isto especifica o modelo a usar para classificar os documentos. Se não for especificado um modelo, é usado
semantic-ranker-default@latest
, que aponta automaticamente para o modelo mais recente disponível. Para apontar para um modelo específico, especifique um dos nomes de modelos indicados em Modelos suportados, por exemplo,semantic-ranker-512-003
.No exemplo seguinte,
model
está definido comosemantic-ranker-default@latest
. Isto significa que a API Ranking vai usar sempre o modelo mais recente disponível."model": "semantic-ranker-default@latest"
Dados de saída
A API Ranking devolve uma lista classificada de registos com as seguintes saídas:
Score: um valor de ponto flutuante entre 0 e 1 que indica a relevância do registo.
ID: o ID exclusivo do registo.
Se solicitado, o objeto completo: o ID, o título e o conteúdo.
Por exemplo:
{
"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."
}
]
}
Classificar (ou reclassificar) um conjunto de registos de acordo com uma consulta
Normalmente, fornece à API de classificação uma consulta e um conjunto de registos relevantes para essa consulta e que já foram classificados por outro método, como uma pesquisa de palavras-chave ou uma pesquisa vetorial. Em seguida, usa a API de classificação para melhorar a qualidade da classificação e determinar uma pontuação que indica a relevância de cada registo para a consulta.
Obter a consulta e os registos resultantes. Certifique-se de que cada registo tem um ID e um título, conteúdo ou ambos.
O número máximo de tokens suportados por registo depende da versão do modelo. Os modelos até à versão
003
, como osemantic-ranker-512-003
, suportam 512 tokens por registo. A partir da versão004
, este limite aumenta para 1024 tokens. Se o comprimento combinado do título e do conteúdo exceder o limite de tokens do modelo, o conteúdo adicional é truncado.Chame o método
rankingConfigs.rank
com o seguinte 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"
}
]
}'
Substitua o seguinte:
PROJECT_ID
: o ID do seu Google Cloud projeto.QUERY
: a consulta com base na qual os registos são classificados e pontuados.RECORD_ID_n
: uma string exclusiva que identifica o registo.TITLE_n
: o título do registo.CONTENT_n
: o conteúdo do registo.
Para obter informações gerais sobre este método, consulte rankingConfigs.rank
.
Clique para ver um exemplo de comando curl e resposta.
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 mais informações, consulte a documentação de referência da API Python de aplicações de IA.
Para se autenticar em aplicações de IA, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Modelos suportados
Estão disponíveis os seguintes modelos.
Nome do modelo | Modelo mais recente (semantic-ranker-default@latest ) |
Entrada | Capacidade de resposta | Data de lançamento | Data de descontinuação |
---|---|---|---|---|---|
semantic-ranker-default-004 |
Sim | Texto (25 idiomas) | 1024 | 9 de abril de 2025 | A determinar… |
semantic-ranker-fast-004 |
Não | Texto (25 idiomas) | 1024 | 9 de abril de 2025 | A determinar… |
semantic-ranker-default-003 |
Não | Texto (25 idiomas) | 512 | 10 de setembro de 2024 | A determinar… |
semantic-ranker-default-002 |
Não | Texto (apenas em inglês) | 512 | 3 de junho de 2024 | A determinar… |
O que se segue?
Saiba como usar o método de classificação com outras APIs RAG para gerar respostas fundamentadas a partir de dados não estruturados.