RAG 知识处理层 · 原生 MCP over HTTP

把知识库变成可被 MCP 调用的检索服务

Your knowledge base, as an MCP service.

单二进制全栈(REST + MCP + Worker + Web Console),pgvector 向量与 PostgreSQL 全文检索(zhparser 中文分词)双路召回、确定性 RRF 融合,每个结果都带回来源锚点。不生成答案,只把「文档 → 检索」做到生产级。

一键体验GitHub取之有道
langhuan — 80×24
$ docker compose up -d --build
✔ postgres (pgvector + zhparser) Started
✔ redis Started
✔ langhuan (single binary) Started
$ curl :8080/mcp -H "Authorization: Bearer $KEY" \
-d '{"tool":"knowledge_search",
"query":"中文混合检索怎么配"}'
{ "hits": [
{ "content": "第 3 章:向量 + FTS 双路召回,
经 RRF 融合返回可追溯证据。",
"source": "kb-1/doc-7 · 第 3 页" },
{ "content": "中文由 zhparser 分词……" } ] }
ready for queries

Highlights · 特性

为生产级 RAG 而生的知识处理层

不做 LLM 答案生成、不做 Chat 编排——把「文档 → 可追溯检索」这一段做到极致, 作为任何 LLM 应用、MCP 客户端或 Agent 的知识底座。

中文原生的混合检索

Chinese-native hybrid retrieval

pgvector 向量 + PostgreSQL FTS + zhparser 中文分词 + 确定性 RRF 融合。中文关键词不再被整句当词,召回质量开箱即用。

MCP over HTTP 原生

First-class MCP over HTTP

knowledge_search、document_ingest 等工具直接暴露给 MCP 客户端。Claude、Cursor 等拿到即用,无需额外桥接。

单二进制全栈

Single binary, full stack

REST + MCP + 异步 worker + Web Console 内嵌于一个二进制(go:embed)。一个 docker compose 即可起步。

全程可追溯

Fully traceable

每个 chunk 都能回到源文档、版本与页码/行列/偏移锚点。导入、分块、索引全链路幂等,状态以 PostgreSQL 为准。

Workspace 多租户

Workspace-scoped isolation

Workspace 即租户边界,成员角色 + 绑库限权的 API Key 细粒度鉴权,越权访问统一返回 404。

书藏琅嬛,取之有道

A library, retrievable at will

文档 → 规范化事实层 → 可检索投影,原子发布到唯一 active Generation;知识库即藏书楼,检索即取书。

Architecture · 架构

数据流:从文档到可追溯检索

1导入

File / Web / FAQ → 稳定 Document + 不可变 Revision

2任务链

asynq 异步:解析 → 资产归档 → 分块 → 索引

3投影

RetrievalEntry 同行保存 halfvec 向量 + FTS tsvector + 返回内容

4发布

原子发布到唯一 active Generation

5检索

Vector + FTS 双路召回 → 确定性 RRF 融合 → 带锚点证据

6服务

REST /api/v1/* · MCP /mcp

技术基线:Go 1.26 · Gin · GORM · PostgreSQL 17 + pgvector(halfvec / HNSW)· FTS (zhparser) · asynq + Redis · OSS / Local

Quick Start · 快速开始

一条命令,跑起完整知识服务

PostgreSQL(pgvector + zhparser 中文分词)、Redis 与琅嬛本体一键拉起, 打开 http://localhost:8080 完成初始化即可导入文档并检索。

快速开始bash
# 需要 Docker;首次构建约 2-3 分钟
$ git clone https://github.com/amoydavid/langhuan.git
$ cd langhuan && docker compose up -d --build
# 打开 http://localhost:8080 完成初始化
$ open http://localhost:8080
1

初始化

创建管理员账号

2

建库导入

创建知识库,上传 md/txt/csv/xlsx/docx

3

检索

REST / Web / MCP 三端一致检索

Positioning · 定位

不是 Dify / RAGFlow 的替代品,而是它们的下层

琅嬛把「知识处理与检索」这一段做到极致,再通过 MCP 供上层应用调用—— 你的 LLM 应用、Agent、MCP 客户端都可以把琅嬛当作知识底座。

琅嬛 LanghuanDify / RAGFlow 等平台
定位知识处理层(无 LLM 编排)应用平台(含 Chat / Agent)
中文关键词检索zhparser 分词 + RRF 原生依赖向量,FTS 较弱
交付形态单二进制 + 标准 PostgreSQL多容器全家桶
MCP原生 MCP over HTTP需额外桥接
可追溯chunk → 页码/行列锚点全链路部分
接入方式作为你应用的知识底座平台内闭环

Preview · 预览

管理台与检索演示

Web Console 内嵌于同一二进制:知识库、文档、任务、检索测试一站管理。

screenshot coming soon

Web Console 界面截图 · 中英混合检索演示

FAQ · 常见问题

常见问题

琅嬛和 Dify / RAGFlow 有什么区别?+

琅嬛不是应用平台,而是知识处理层:它不生成 LLM 答案、不编排 Chat/Agent,只把「文档 → 可追溯检索」这一段做到生产级,并通过 MCP over HTTP 供上层调用。Dify/RAGFlow 是包含 Chat 编排的完整平台,可以把琅嬛作为它们下层的数据源。

琅嬛支持中文检索吗?+

支持且是原生能力。全文检索路使用 zhparser 中文分词(SCWS 词典),与 pgvector 向量检索双路召回后经确定性 RRF 融合——中文关键词不再被当作整句单 token,召回质量开箱即用。

如何把琅嬛接入 MCP 客户端?+

琅嬛原生提供 MCP over HTTP(/mcp),使用 Workspace API Key 作为 Bearer 认证。Claude、Cursor 等 MCP 客户端配置一个 endpoint 即可调用 knowledge_search、document_ingest 等工具,无需额外桥接服务。

部署需要哪些依赖?+

一条命令即可:docker compose up -d --build(PostgreSQL 17 + pgvector + zhparser、Redis、琅嬛本体)。单二进制内嵌 REST、MCP、异步 worker 与 Web Console,无 Node 运行时、无微服务。

支持哪些文档格式?+

当前支持 markdown、txt、csv、xlsx、docx;PDF 解析(MinerU Cloud)在 v0.7.0 路线中。

琅嬛的开源许可是什么?+

MIT License,可自由使用、修改与商用。