aardio 文档

string.rag 库模块帮助文档

string 成员列表 #

string.rag() #

返回对象:stringRagObject

string.rag(dbPath) #

创建 RAG 知识库实例。
dbPath 指定数据库路径,默认为内存数据库。
示例: string.rag("./knowledge.db")

string.rag 成员列表 #

轻量 RAG 知识库。
支持向量搜索、关键词搜索(BM25)、混合搜索(RRF融合)。
使用 SQLite 存储,适合小规模数据集(万级分块以下)。

创建 RAG 知识库实例

string.rag.splitByParagraph(text,maxSize) #

按段落分块,尽量保持段落完整。
maxSize 指定单块最大字符数,默认 800。
返回分块数组。

string.rag.splitText(text,chunkSize,overlap) #

将文本按固定大小分块。
chunkSize 默认 500 字符,overlap 默认 50。
会尝试在句子边界切分。
返回分块数组。

stringRagObject 成员列表 #

stringRagObject.addChunk(docId,content,embedding,chunkIdx,meta) #

添加单个分块。
docId 文档标识(通常为路径)。
content 分块文本内容。
embedding 向量数组,可为 null 后续补充。
chunkIdx 分块序号,默认 0。
meta 可选元数据表。
返回分块 ID。

stringRagObject.addChunks(chunks) #

批量添加分块(使用事务)。
chunks 格式: { { docId; content; embedding; chunkIdx; meta }, ... }

stringRagObject.close() #

关闭数据库连接。

stringRagObject.count() #

返回分块总数。

stringRagObject.getAllDocIds() #

获取所有文档 ID 列表。

stringRagObject.getChunk(id) #

获取指定 ID 的分块。

stringRagObject.getChunksWithoutEmbedding(limit) #

获取未向量化的分块列表。
用于后续批量向量化。

stringRagObject.hasDocument(docId) #

检查文档是否已存在。

stringRagObject.removeDocument(docId) #

删除指定文档的所有分块。

stringRagObject.search(query,embedding,topK,alpha) #

混合搜索(RRF 融合)。
query 查询文本,embedding 查询向量。
alpha 为向量权重(0~1),默认 0.5。
返回融合排序的结果数组,包含 score/vecScore/kwScore。

stringRagObject.searchByKeywords(query,topK) #

BM25 关键词搜索。
自动分词并过滤停用词。
返回按相关度排序的结果数组。

stringRagObject.searchByVector(embedding,topK) #

向量相似度搜索。
返回按相似度排序的结果数组。

stringRagObject.updateEmbedding(chunkId,embedding) #

更新指定分块的向量。

stringRagObject.updateEmbeddings(embeddings) #

批量更新向量。
embeddings 格式: { [chunkId] = vector, ... }

Markdown 格式