Todos os produtos
Search
Central de documentação

Tablestore:Recuperação e classificação

Última atualização: Oct 21, 2026

A API Retrieve recupera conteúdo de uma base de conhecimento do Agent Storage. Ela oferece suporte a recuperação vetorial, recuperação de texto completo e recuperação híbrida. Configure a estratégia de Rerank para controlar como os resultados de múltiplos caminhos de recuperação são combinados e classificados.

Pré-requisitos

  • Você já crie uma base de conhecimento e documentos importados. O status do documento deve ser Completed. Documentos com status Pending ou Indexing não podem ser recuperados.

  • Se os subespaços estiverem ativados para a base de conhecimento, passe o parâmetro subspace ao recuperar o conteúdo.

Prioridade da configuração de recuperação

A configuração de recuperação (retrievalConfiguration) da API Retrieve determina os parâmetros efetivos seguindo esta ordem de prioridade:

Prioridade

Origem

Descrição

1 (mais alta)

Parâmetros da API Retrieve

A retrievalConfiguration enviada na solicitação atual. Tem efeito apenas nessa solicitação específica.

2

Configuração no nível da base de conhecimento

Definida durante a criação da base de conhecimento. Modifique-a a qualquer momento usando UpdateKnowledgeBase.

3 (mais baixa)

Valores padrão do sistema

Recuperação híbrida vetorial e de texto completo com fusão ponderada WEIGHT (vetor 0,7 : texto completo 0,3), retornando 20 resultados.

Para a solicitação de recuperação mais simples, passe apenas knowledgeBaseName e retrievalQuery. O sistema utilizará então a configuração da base de conhecimento ou os valores padrão.

Tipos de recuperação

Tipo

Descrição

Cenários

DENSE_VECTOR

Recuperação vetorial baseada em similaridade semântica.

Descreva necessidades em linguagem natural que exigem compreensão semântica. Por exemplo, "como instale" pode corresponder a "etapas de implantação".

FULL_TEXT

Recuperação de texto completo baseada em correspondência de palavras-chave.

Insira palavras-chave exatas, nomes próprios ou identificadores.

A recuperação vetorial e a recuperação de texto completo são complementares: a primeira é eficaz para compreensão semântica, enquanto a segunda destaca-se na correspondência exata. Ative ambos os tipos de recuperação e use o Rerank para combinar os resultados. Para uma recuperação híbrida, passe ambos os tipos em searchType.

Estratégias de Rerank

O Rerank combina e classifica os resultados provenientes da recuperação vetorial e da recuperação de texto completo, retornando os resultados finais.

WEIGHT (fusão ponderada)

Aplica pesos proporcionais às pontuações das recuperações vetorial e de texto completo. WEIGHT é a estratégia padrão do sistema. Utilize-a quando precisar de controle refinado sobre a contribuição de cada caminho de recuperação. Esta é a escolha recomendada como padrão.

Parâmetro

Tipo

Valor padrão

Descrição

denseVectorSearchWeight

double

0.7

Peso atribuído à recuperação vetorial.

fullTextSearchWeight

double

0.3

Peso atribuído à recuperação de texto completo.

RRF (fusão de classificação recíproca)

Combina resultados de múltiplos caminhos de recuperação ponderando o recíproco de suas classificações. O RRF não exige chamadas adicionais de modelo, oferece baixa latência e entrega resultados estáveis.

Parâmetro

Tipo

Valor padrão

Descrição

denseVectorSearchWeight

double

1.0

Peso atribuído à recuperação vetorial.

fullTextSearchWeight

double

1.0

Peso atribuído à recuperação de texto completo.

k

int

60

Parâmetro do algoritmo RRF. Deve ser maior que 0.

Configure o RRF conforme o exemplo abaixo:

{
  "rerankingConfiguration": {
    "type": "RRF",
    "numberOfResults": 5,
    "rrfConfiguration": {
      "denseVectorSearchWeight": 0.6,
      "fullTextSearchWeight": 0.4,
      "k": 20
    }
  }
}

MODEL (Rerank por modelo)

Invoca um modelo de Rerank, como gte-rerank-v2, para reclassificar os resultados candidatos. Essa estratégia proporciona a maior qualidade de classificação, mas adiciona latência e custo computacional.

Parâmetro

Tipo

Valor padrão

Descrição

provider

string

bailian

Provedor do modelo de Rerank. Atualmente, apenas o Bailian é suportado.

model

string

gte-rerank-v2

Nome do modelo de Rerank.

Recomendações de estratégia

Cenário

Estratégia recomendada

Cenários gerais sensíveis à latência.

RRF

Necessidade de controle refinado da proporção entre recuperação vetorial e de texto completo.

WEIGHT

Exigência da maior qualidade de classificação, com aceitação de latência adicional.

MODEL

Filtragem por metadados

Use o parâmetro filter para filtrar resultados com base em condições de metadados durante a recuperação e restringir o escopo de candidatos. Defina os campos de filtro via metadata no momento da criação da base de conhecimento. Para obter a lista completa de operadores, consulte Retrieve Knowledge API.

Operadores de comparação

Operador

Símbolo

Descrição

Tipos aplicáveis

equals

=

Igual a.

Todos os tipos

notEquals

≠

Diferente de.

Todos os tipos

greaterThan

>

Maior que.

long, double, date

greaterThanOrEquals

≥

Maior ou igual a.

long, double, date

lessThan

<

Menor que.

long, double, date

lessThanOrEquals

≤

Menor ou igual a.

long, double, date

Operadores de conjunto e correspondência

Operador

Descrição

Tipos aplicáveis

in

O valor pertence ao conjunto especificado.

Todos os tipos

notIn

O valor não pertence ao conjunto especificado.

Todos os tipos

startsWith

Corresponde a um prefixo de string.

string

stringContains

Corresponde a texto contido em uma string.

string

listContains

Um campo de lista contém o elemento especificado.

list

Operadores de combinação lógica

Operador

Descrição

andAll

Todas as condições devem ser atendidas.

orAll

Qualquer condição pode ser atendida.

notAll

Nenhuma das condições pode ser atendida.

Os operadores andAll, orAll e notAll suportam aninhamento, permitindo a construção de lógicas de filtro combinadas complexas.

Exemplos de filtro

Consulte documentos cuja categoria seja "technology" ou "science", cuja pontuação seja maior ou igual a 60 e cujo título comece com a palavra chinesa para "product":

{
  "filter": {
    "andAll": [
      {"in": {"key": "category", "value": ["technology", "science"]}},
      {"greaterThanOrEquals": {"key": "score", "value": 60}},
      {"startsWith": {"key": "title", "value": "产品"}}
    ]
  }
}

Use orAll para implementar lógica OR e consultar documentos cujo status seja "active" ou cuja pontuação seja maior que 90:

{
  "filter": {
    "orAll": [
      {"equals": {"key": "status", "value": "active"}},
      {"greaterThan": {"key": "score", "value": 90}}
    ]
  }
}

Execute recuperação

  • O texto de recuperação text pode conter no máximo 128 caracteres ou caracteres chineses. Solicitações que excedam esse limite retornarão erro. Caso tenha requisitos específicos de negócio, abra um ticket ou participe do grupo de troca técnica do Tablestore 36165029092 para entrar em contato com o suporte técnico.

  • Defina os campos de filtro como metadados ao crie a base de conhecimento. Caso contrário, as condições de filtro não terão efeito.

  • O parâmetro k do RRF deve ser maior que 0. Se não for, o sistema retornará VALIDATION_ERROR.

  • Documentos com status Pending ou Indexing não estão disponíveis para recuperação. Aguarde até que o status mude para Completed.

  • Se a base de conhecimento tiver subespaços ativados, passe obrigatoriamente o parâmetro subspace. A ausência desse parâmetro resultará em erro.

Console

Console

Faça login no console do Agent Storage, abra a base de conhecimento desejada, clique em Retrieval Test no painel de navegação à esquerda e verifique o resultado da recuperação conforme descrito a seguir:

  • Insira o texto de recuperação na caixa de entrada Content. Se os subespaços estiverem ativados para a base de conhecimento, insira também o nome do subespaço.

  • Em Search Type, selecione Vector Retrieval ou Full-text Retrieval.

  • Defina Vector TopK, Full-text TopK e Rerank TopK. Mantenha os valores padrão se desejar.

  • Selecione uma Rerank Strategy: Model, Weight ou RRF. Ao escolher Weight, defina os pesos para as recuperações vetorial e de texto completo. Mantenha os valores padrão se desejar.

  • Adicione condições de filtro de metadados caso a base de conhecimento possua campos de metadados definidos.

  • Clique em Run Retrieval. Em Retrieved Chunks, visualize o conteúdo dos trechos correspondentes, a source e a pontuação de relevância. No primeiro teste, utilize os parâmetros padrão. Após confirme que o conteúdo alvo foi recuperado, ajuste gradualmente o TopK e a estratégia de Rerank.

SDK

Python

Python

Exemplo mínimo: sem passagem de parâmetros de recuperação. A solicitação utiliza a configuração no nível da base de conhecimento ou os valores padrão do sistema.

from tablestore_agent_storage import AgentStorageClient

client = AgentStorageClient(
    api_key="<your-api-key>",
    ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
    ots_instance_name="<instance-name>",
)

resp = client.retrieve({
    "knowledgeBaseName": "product_docs_kb",
    "retrievalQuery": {"type": "TEXT", "text": "What are the installation steps for the product?"}
})

for r in resp["data"]["retrievalResults"]:
    print(f"[{r['score']:.4f}] {r['content'][:80]}...")

Exemplo completo: defina parâmetros de recuperação na solicitação para substituir a configuração no nível da base de conhecimento.

resp = client.retrieve({
    "knowledgeBaseName": "product_docs_kb",
    "subspace": ["default"],
    "retrievalQuery": {"type": "TEXT", "text": "What are the installation steps for the product?"},
    "retrievalConfiguration": {
        "searchType": ["DENSE_VECTOR", "FULL_TEXT"],
        "denseVectorSearchConfiguration": {"numberOfResults": 10},
        "fullTextSearchConfiguration": {"numberOfResults": 10},
        "rerankingConfiguration": {
            "type": "RRF",
            "numberOfResults": 5,
            "rrfConfiguration": {
                "denseVectorSearchWeight": 0.6,
                "fullTextSearchWeight": 0.4,
                "k": 60
            }
        },
        "filter": {
            "andAll": [
                {"in": {"key": "category", "value": ["产品文档"]}}
            ]
        }
    }
})

for result in resp["data"]["retrievalResults"]:
    print(f"[score={result['score']:.4f}] {result['content'][:100]}...")
    print(f"  source: {result['ossKey']}, chunkId: {result['chunkId']}")

Utilize classes Model para construir a solicitação, garantindo melhor conclusão de código e verificação de tipos na IDE.

from tablestore_agent_storage import AgentStorageClient
from tablestore_agent_storage.models import (
    RetrieveRequest, RetrievalQuery, RetrievalQueryType
)

client = AgentStorageClient(
    api_key="<your-api-key>",
    ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
    ots_instance_name="<instance-name>",
)

resp = client.retrieve(RetrieveRequest(
    knowledge_base_name="product_docs_kb",
    retrieval_query=RetrievalQuery(
        text="What are the installation steps for the product?",
        type=RetrievalQueryType.TEXT
    )
))

TypeScript

import { AgentStorageClient } from '@tablestore/agent-storage';

const client = new AgentStorageClient({
  apiKey: '<your-api-key>',
  endpoint: 'https://<instance>.<region>.ots.aliyuncs.com',
  instanceName: '<instance-name>',
});

const resp = await client.retrieve({
  knowledgeBaseName: 'product_docs_kb',
  retrievalQuery: { type: 'TEXT', text: 'What are the installation steps for the product?' },
});

for (const r of resp.data.retrievalResults) {
  console.log(`[${r.score.toFixed(4)}] ${r.content.slice(0, 80)}...`);
}

API

Chame Retrieve para execute a recuperação. Para obter detalhes completos sobre campos de solicitação, campos de resposta e descrições de operadores de filtro, consulte Retrieve Knowledge API.

Ajuste fino da recuperação

Relações do parâmetro numberOfResults

O processo de recuperação envolve três configurações de numberOfResults. Compreender a relação entre elas é fundamental para o ajuste fino:

denseVectorSearchConfiguration.numberOfResults = N1  ← Vector retrieval recall count
fullTextSearchConfiguration.numberOfResults          = N2  ← Full-text retrieval recall count
rerankingConfiguration.numberOfResults               = N3  ← Final return count after Rerank
  • N1 e N2 determinam o tamanho do pool de candidatos. Valores maiores aumentam a taxa de recall, mas também elevam o custo computacional.

  • N3 define a quantidade de resultados finais retornados. Geralmente, N3 < N1 e N3 < N2.

  • (Recomendado) Inicie com N1 = N2 = 20 e N3 entre 5 e 10. Ajuste esses valores gradualmente com base nos resultados obtidos.

Seleção do tipo de recuperação

Cenário

Tipo de recuperação recomendado

Descrição

Perguntas em linguagem natural.

DENSE_VECTOR + FULL_TEXT

A recuperação vetorial captura a semântica, enquanto a recuperação de texto completo garante correspondências de palavras-chave.

Palavras-chave ou identificadores exatos.

Priorize FULL_TEXT.

A recuperação vetorial não é sensível a correspondências exatas.

Cenários de compreensão puramente semântica.

Priorize DENSE_VECTOR.

Por exemplo, "como instale" corresponde a "etapas de implantação".

Recomendações de uso do filtro de metadados

  • O filtro restringe o escopo de candidatos antes da recuperação, melhorando tanto a precisão da busca quanto o desempenho.

  • Defina os campos de filtro como metadados durante a criação da base de conhecimento. Não é possível adicioná-los em tempo de execução.

  • Para filtragem por intervalo de datas, prefira o tipo date em vez do tipo string para habilitar operadores de comparação de intervalo.