ling-baseling-base

Rerank 重排序

文档重排序与检索精排

在线 Playground

在浏览器中直接体验本页相关 API,无需本地安装 Go 环境。

Rerank 重排序

Client.Rerank 对候选文档按与 query 的相关性重新排序,常用于 RAG 检索后精排。

基本用法

resp, err := client.Rerank(ctx, &relay.RerankRequest{
    Model:     "rerank-english-v3.0",
    Query:     "What is vector search?",
    Documents: []string{
        "Vector databases store embeddings.",
        "Redis is an in-memory data store.",
        "RAG combines retrieval with generation.",
    },
    TopN: 3,
})
if err != nil {
    log.Fatal(err)
}

for _, r := range resp.Results {
    fmt.Printf("index=%d score=%.4f doc=%s\n", r.Index, r.RelevanceScore, r.Document)
}

与 knowledge 包配合

// 1. knowledge 向量检索 TopK=20
candidates := kb.Search(ctx, query, 20)

// 2. relay Rerank 精排 TopN=5
docs := extractTexts(candidates)
ranked, _ := client.Rerank(ctx, &relay.RerankRequest{
    Model: "jina-reranker-v2-base-multilingual",
    Query: query,
    Documents: docs,
    TopN: 5,
})

支持的 Provider

Provider模块模型示例
Cohererelay/channel/coherererank-english-v3.0
Jinarelay/channel/jinajina-reranker-v2-base-multilingual
Voyage / 自建通过 openai 兼容端点视部署而定

请求字段

字段说明
Model重排模型 ID
Query查询文本
Documents待排序文档列表
TopN返回前 N 条
ReturnDocuments是否返回原文

On this page