ling-baseling-base

Knowledge

RAG 管道,分块/嵌入/向量库/重排

在线 Playground

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

Knowledge (RAG)

agentkit/knowledge 实现完整 RAG 管道:文档摄入 → 分块 → 嵌入 → 向量存储 → 检索 → 可选重排。

Knowledge 接口

type Knowledge interface {
    Ingest(ctx context.Context, source Source) error
    Search(ctx context.Context, req *SearchRequest) ([]*SearchResult, error)
}

快速搭建

import (
    "github.com/LingByte/ling-base/agentkit/knowledge"
    "github.com/LingByte/ling-base/agentkit/knowledge/source/dir"
    "github.com/LingByte/ling-base/agentkit/knowledge/embedder/openai"
    "github.com/LingByte/ling-base/agentkit/knowledge/vectorstore/sqlitevec"
)

emb := openai.New(openai.Config{APIKey: "sk-xxx", Model: "text-embedding-3-small"})
vs, _ := sqlitevec.New(sqlitevec.Config{Path: "vectors.db"})

kb, _ := knowledge.New(knowledge.Config{
    Embedder:    emb,
    VectorStore: vs,
})

src := dir.New(dir.Config{Path: "./docs"})
_ = kb.Ingest(ctx, src)

results, _ := kb.Search(ctx, &knowledge.SearchRequest{
    Query: "如何配置限流器?",
    TopK:  5,
})

文档来源 (source)

来源
source/file单文件
source/dir目录递归
source/urlHTTP URL
source/repoGit 仓库
source/auto自动检测类型

文档解析 (document/reader)

支持 PDF、DOCX、Markdown、CSV、JSON、Python/Go 源码 AST 等。

向量库 (vectorstore)

后端
vectorstore/inmemory内存
vectorstore/sqlitevecSQLite-vec
vectorstore/pgvectorPostgreSQL pgvector
vectorstore/qdrantQdrant
vectorstore/milvusMilvus
vectorstore/elasticsearchElasticsearch

嵌入 (embedder)

openaigeminiollamahuggingface 等。

重排 (reranker)

cohereinfinitytopk 对初检结果精排。

接入 Agent

import knowledgetool "github.com/LingByte/ling-base/agentkit/knowledge/tool"

searchTool := knowledgetool.NewSearchTool(kb)
ag, _ := llmagent.New("rag-bot", llmagent.WithTools([]tool.Tool{searchTool}))

知识图谱

knowledge/graph + graphstore/age 支持图结构知识存储与检索。

On this page