THINGJS RAG 知识库 · 项目概览
项目背景
THINGJS RAG 知识库面向 ThingJS API 文档。对外是四项交付:在线文档助手、MCP 知识服务、RAG 质量评测平台、运维监控大屏。前两项共用同一套文档索引和检索生成;评测平台用这套链路做回归;运维大屏只读观测请求。文档变化后可重建并发布索引;服务监听文档时,保存 Markdown 后也可增量嵌入并热加载。
要解决的问题
- 准确找到 API 成员:文档按类和方法组织,固定长度切片容易把方法签名、说明和示例拆散,影响检索与引用。
- 理解不同问法:用户可能用中文口语、类名或拼错的标识符提问;只靠关键词或只靠向量,都可能漏掉目标方法。
- 兼顾多个类:同一问题涉及多个类时,单纯按融合排名截取前几条,可能让先出现的类占满上下文。
- 控制回答依据:回答需要引用本次交给生成模型的文档;文档检索失败、目录外类名、非文档闲聊和生成内容错误,应有不同处理方式。
- 拦住目录外的类名:问句里的类样子标识都不在类目录、也没有别名时,不应再做向量或关键词检索。
- 安全发布更新:文档和别名变化后,新索引需要经过校验再切换,并保留回退路径。
- 发现检索或生成退步:规则或文档变更后,要用同一套黄金集判断能否发版,而不是凭感觉切换索引。
- 回看一次真实请求:在线助手和 MCP 的失败、空答、低置信需要能按问题回放,同时不把评测流量当成用户质量。
项目范围
- 知识内容:以 ThingJS API 的 Markdown 文档为主要语料,按类、成员和章节组织检索;语料带来源标记。
- 使用入口:网页给开发者检索和提问;编辑器 MCP 给 IDE 和编码 Agent 调用;黄金集和评测中心给研发回归;运维大屏给值班回放请求。在线文档助手与 MCP 知识服务共用检索。
- 模型使用:本地
Qwen3-Embedding-4B生成文档与问句向量;有可用证据时,问答调用qwen3.8-flash生成回答。 - 回答边界:网页
POST /api/search与 MCPsearch_thingjs_docs返回检索片段;网页POST /api/chat与 MCPask_thingjs_docs基于可用证据生成回答。非文档问句直接返回固定话术;目录外类名直接空结果。
主要交付
- 在线文档助手:面向 ThingJS 开发者的网页检索与问答,支持引用和点踩。没有可用证据时以低置信说明资料不足,不调用生成模型。
- MCP 知识服务:向 IDE 和编码 Agent 提供同一套检索与问答,并记录调用方鉴权、用量和请求。
- RAG 质量评测平台:检索黄金集按规则检查类命中、成员命中、误空,以及口语、点名成员和拼写分层。生成黄金集检查回答结构、置信、引用、类名与成员覆盖、路径、负例和期望类是否被滤掉,再由裁判模型按依据、答问、引用对齐和幻觉打分。默认发版门槛在核心交付的检索发版指标和生成发版指标。未通过时沿用上一版索引。
- 运维监控大屏:按在线文档助手、MCP 知识服务和评测流量回放请求,并查看实时运行状态、当前健康和日报。
- 共用基础设施:文档索引、向量检索、BM25、融合排序、生成模型和请求库供四项交付共用。索引、问句规划和双路检索供在线文档助手与 MCP 知识服务使用,评测平台回归这条链路,大屏观测请求留痕。详见核心交付。
当前结果
- 在线文档助手:网页可检索片段,并基于可用证据生成带引用的回答;非文档话术和目录外类名不调用生成模型。
- MCP 知识服务:编辑器使用同一套索引;正式接入按 API Key 记录用量。
- 共用检索:例如“摄像机看向某点”可关联到
Camera/lookAt;Box、Sphere、Cylinder一起提问时按类留出片段位置。文档更新可发布新版本,保存 Markdown 后也可增量热加载。 - 评测与发布:检索黄金集按规则计分类命中、成员命中和误空。生成黄金集得到回答后,由裁判模型对照本次证据判断这次回答是否正确。未通过对应门禁时沿用上一版索引。
- 运维观察:可按在线文档助手、MCP 知识服务和评测流量回放请求,并查看实时连接、正在执行的请求、熔断和日报。