TL;DR: Com o Semantic Reranker, times de engenharia podem reordenar os resultados de qualquer query (vetorial, full-text, híbrida) com uma única chamada SDK, usando um modelo de IA que pontua a relevância semântica. Para empresas brasileiras que constroem experiências de busca ou grounding de agentes com RAG, o ganho em qualidade de resposta é imediato, mas é essencial medir o impacto na latência e o custo de $1/1.000 chamadas antes de adotar em produção.
O que é o Semantic Reranker?
O Semantic Reranker é uma nova capacidade do Azure Cosmos DB for NoSQL que usa um modelo de IA — o Microsoft AI Semantic Ranker — para reordenar os resultados de uma query já executada (vetorial, full-text, híbrida ou qualquer outra) com base na relevância semântica em relação a uma frase ou contexto fornecido pelo usuário. Cada resultado rerankado retorna: os documentos originais reordenados, uma pontuação de relevância (0 a 1), latência de inferência e consumo de tokens.
Por que isso é importante para times de engenharia no Brasil?
Quando avaliamos sistemas de busca ou recuperação de informação, métricas como acurácia, recall, latência e relevância definem a experiência final. Buscas vetoriais e híbridas são ótimas para encontrar candidatos (recall), mas a ordenação nem sempre reflete a intenção real do usuário. Exemplo: uma busca por "melhores praias para surf em Florianópolis" deve priorizar um guia curado sobre surf, e não um artigo genérico sobre turismo em Santa Catarina — mesmo que ambos pontuem similarmente em similaridade vetorial. O Semantic Reranker fecha exatamente essa lacuna.
Por que desenvolvedores vão gostar:
- Qualidade dos resultados melhorada: o entendimento semântico coloca resultados mais relevantes no topo, enriquecendo agentes com contexto mais preciso para RAG.
- Integração direta com SDKs existentes: funciona com queries já implementadas (vetorial, full-text, híbrida).
- Mínimas alterações de código: uma única chamada no container que você já usa.
- Flexibilidade: pode rerankar resultados de qualquer query contra qualquer container.
Atenção: reranking adiciona uma chamada extra de rede e tempo de inferência do modelo, aumentando a latência total da busca. Também não beneficiará todos os workloads igualmente. A recomendação é medir a relevância antes e depois para confirmar o ganho real no seu cenário.
Como configurar o Semantic Reranker?
A configuração inicial é feita no portal Azure:
-
Acesse sua conta do Azure Cosmos DB e encontre a experiência de setup do Semantic Reranker no menu "AI Capabilities".

-
Revise as informações da preview e habilite a funcionalidade para seu recurso.
-
Configure as definições do reranker para sua conta e workload.

-
Revise a configuração e salve as alterações.
Atenção: o Semantic Reranker está em preview. Após habilitá-lo no portal, aguarde até 1 hora para ativação.
Em seguida, atribua as roles RBAC adequadas:
- Inference Account Operator: permite habilitar/desabilitar o reranker, mas não executar chamadas runtime.
- Inference Account Owner: permite habilitar/desabilitar e executar chamadas.
- Semantic Reranker User: permite que aplicações, managed identities, service principals ou usuários executem queries de rerank.
Como usar a partir do SDK?
O padrão é simples: execute sua query normalmente, depois passe os resultados mais um contexto (a pergunta ou tarefa do usuário) para o reranker. A seguir, um exemplo em Python que executa uma full-text search e reranka os resultados contra uma string de contexto:
import json
import os
from azure.cosmos import CosmosClient
from azure.identity import DefaultAzureCredential
os.environ["AZURE_COSMOS_SEMANTIC_RERANKER_INFERENCE_ENDPOINT"] = "https://mytestaccount.eastus2.dbinference.azure.com"
endpoint = "https://mytestaccount.documents.azure.com:443/"
database_name = "testdatabase"
container_name = "testcontainer"
credential = DefaultAzureCredential()
client = CosmosClient(endpoint, credential=credential)
database = client.get_database_client(database_name)
container = database.get_container_client(container_name)
query = """
SELECT TOP 15 c.id, c.Title, c.Studio, c.Description, c.YearReleased
FROM c
WHERE FullTextContainsAny(c.Description, "Sandra Bullock", "Johnny Depp", "comedy")
ORDER BY RANK FullTextScore(c.Description, "comedy")
"""
documents = list(container.query_items(
query=query, enable_cross_partition_query=True))
reranking_context = "audience rated PG-13 and public sentiment strong and positive"
reranked_results = container.semantic_rerank(
context=reranking_context,
documents=[json.dumps(document) for document in documents],
options={
"return_documents": True,
"top_k": 5,
"sort": True,
"document_type": "json",
"target_paths": "Description",
})
for score in reranked_results["Scores"]:
print(f"index: {score['index']}, score: {score['score']}, document: {score['document']}")
Os mesmos parâmetros estão disponíveis nos SDKs .NET e Java, com nomes específicos de cada linguagem.
Limitações importantes para considerar
- Máximo de 50 documentos por chamada de rerank.
- Cada par contexto-documento deve ter no máximo 2.048 tokens.
- A latência total aumenta — sempre meça relevância antes e depois.
- Custo: $1 USD por 1.000 chamadas de rerank. Preços regionais podem variar.
- SDKs suportados na preview: .NET (preview), Python e Java.
Perguntas Frequentes
-
O Semantic Reranker funciona com qualquer tipo de query no Cosmos DB?
- Sim. Ele aceita os resultados de queries vetoriais, full-text, híbridas ou mesmo consultas SQL comuns. Você passa os documentos candidatos e um contexto (a intenção do usuário) e o reranker reordena com base na relevância semântica.
-
Quais são as limitações atuais do Semantic Reranker em preview?
- Suporta no máximo 50 documentos por chamada; cada par contexto-documento deve ter no máximo 2.048 tokens; a latência total da busca aumenta devido à chamada extra de rede e inferência do modelo; o custo é $1 USD por 1.000 chamadas de rerank, com variações regionais.
-
Quais SDKs são suportados na preview?
- Os SDKs suportados são .NET (preview), Python e Java. A Microsoft planeja expandir para outras linguagens conforme a funcionalidade avança para GA.
-
Como o Semantic Reranker se diferencia de uma busca vetorial pura?
- A busca vetorial é excelente para recall (encontrar candidatos), mas a ordenação nem sempre reflete a intenção do usuário. O Semantic Reranker refina essa ordenação usando um modelo de IA que entende semântica, melhorando a experiência em buscas e RAG.
Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.