2 de junho de 20265 min de leitura

Semantic Reranker no Azure Cosmos DB para NoSQL: o que muda na busca semântica e no RAG para empresas brasileiras

Banner - Semantic Reranker no Azure Cosmos DB para NoSQL: o que muda na busca semântica e no RAG para empresas brasileiras

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:

  1. Acesse sua conta do Azure Cosmos DB e encontre a experiência de setup do Semantic Reranker no menu "AI Capabilities".

    Configuração do Semantic Reranker no portal Azure

  2. Revise as informações da preview e habilite a funcionalidade para seu recurso.

  3. Configure as definições do reranker para sua conta e workload.

    Configuração das definições

  4. 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.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset