xb

Qdrant 高级 API

本文档是 xb/doc/QDRANT_ADVANCED_API.md 的中文版本。它记录了 xb 如何在 JsonOfSelect() 下统一 Recommend、Discover 和 Scroll 工作流。


1. 功能矩阵

API 何时使用 构建器入口
Recommend 对正面与负面反馈进行重排序 NewQdrantBuilder().Recommend(func(*RecommendBuilder)).Build()
Discover 围绕上下文向量探索内容 NewQdrantBuilder().Discover(func(*DiscoverBuilder)).Build()
Scroll 对超大集合进行分页 NewQdrantBuilder().ScrollID(string).Build()

每个 API 配置都附加到同一个构建器。JsonOfSelect() 检查状态并自动发出正确的 JSON 模式。


2. Recommend 速查表

json, _ := xb.Of(&FeedVector{}).
    Custom(
        xb.NewQdrantBuilder().
            Recommend(func(rb *xb.RecommendBuilder) {
                rb.Positive(501, 502).
                    Negative(999).
                    Limit(40).
                    WithPayloadSelector(map[string]any{
                        "include": []string{"id", "title"},
                    })
            }).
            Build()
    ).
    Build().
    JsonOfSelect()

3. Discover 速查表

json, _ := xb.Of(&ArticleVector{}).
    Custom(
        xb.NewQdrantBuilder().
            Discover(func(db *xb.DiscoverBuilder) {
                db.TargetVector("topic_vec", queryVec).
                    Strategy("best_score").
                    Filter(func(f *xb.QFilterBuilder) {
                        f.MustEq("region", "us")
                    })
            }).
            Build()
    ).
    Build().
    JsonOfSelect()

4. Scroll 速查表

json, _ := xb.Of(&FeedVector{}).
    Custom(
        xb.NewQdrantBuilder().
            Scroll(func(sb *xb.ScrollBuilder) {
                sb.PayloadSelector([]string{"id", "tags"}).
                    Limit(100).
                    OffsetID("9012:5")
            })
    ).
    Build().
    JsonOfSelect()

5. 测试和回归


6. 延伸阅读