llm-app
实时 RAG 模板集合:让 AI 助手自动掌握企业动态数据,无需 ETL
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
实时 RAG 模板集合:让 AI 助手自动掌握企业动态数据,无需 ETL
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景: 你是一家律所的 IT 管理员,律师们每天要在几十个 SharePoint 文档库、上百 GB 的历史卷宗里找判例。以前他们得手动搜索,或者花几万块买一套传统企业搜索系统——效果还不一定好。现在,你只需要把 Pathway LLM-App 部署上去,它会自动盯着这些数据源,一旦有文件更新,立刻重新索引,律师在聊天界面问一句「近三年关于竞业限制的劳动仲裁案例有哪些」,AI 直接给出答案,引用来源,标注出处时间。
这就是 Pathway LLM-App 解决的核心问题:如何让大语言模型(LLM)实时掌握企业的动态数据,而不是只能靠几个月前训练好的静态知识。
RAG(检索增强生成)已经是 AI 应用的标准范式——让 LLM 在回答问题时先去向量数据库检索相关片段,再把检索结果和用户问题一起发给 LLM 生成答案。这个范式本身没问题,但有一个隐藏的「定时炸弹」:向量数据库的索引是「快照」,不是「直播」。
传统 RAG 系统的数据更新链路是这样的:
对于一个每天更新几百份合同的律所系统来说,这个延迟是致命的——律师问的是今天上午刚更新的合同,但 AI 只能看到昨天的数据。
Pathway 公司(波兰华沙的 AI 基础设施 startup,2023 年获得 Y Combinator 支持)敏锐地捕捉到了这个痛点,推出了 Pathway 核心库和 LLM-App 项目,主打「实时流式 RAG」——数据变更自动触发增量索引,无需 ETL,无需定时任务,延迟从「天」级降到「秒」级。
LLM-App 并不是一个单一工具,而是一个模板集合,每个模板对应一种典型 RAG 场景。目前仓库内置以下模板:
| 模板 | 场景 | 亮点 |
|---|---|---|
question_answering_rag | 文档问答 | 基础 RAG + Streamlit UI |
adaptive_rag | 智能路由 RAG | 自适应选择检索策略,降低 token 消耗达 4x |
private_rag | 私有数据 RAG | 企业内部文档安全检索 |
document_indexing | 文档索引管道 | 批量文档处理 + OCR |
multimodal_rag | 多模态 RAG | 支持图片+文字的混合检索 |
drive_alert | 数据变更告警 | 数据源更新时主动推送通知 |
slides_ai_search | PPT 内容搜索 | 从幻灯片中检索答案 |
unstructured_to_sql_on_the_fly | 自然语言 SQL | 用自然语言查询数据库 |
document_store_mcp_server | MCP 协议服务器 | 支持 Model Context Protocol |
每个模板都提供了完整的代码、配置文件、Dockerfile 和 UI,开箱即用。以最基础的 question_answering_rag 为例,30 行代码即可构建一个完整的企业文档问答系统:
import pathway as pw
from pathway.xpacks.llm import RAGServer
# 定义数据源(可以是 S3、SharePoint、PostgreSQL 等)
source = pw.io.fs.read("./data", format="binary", with_metadata=True)
# 构建 RAG 管道
app = RAGServer(
sources=[source],
llm="openai/gpt-4o",
embedder="openai/text-embedding-3-small"
)
pw.run(app)
这是理解 LLM-App 架构的关键。传统 RAG 依赖独立的向量数据库(Milvus、Pinecone、Chroma 等),数据要先通过 ETL 导入才能检索。Pathway 的方案则完全绕过了这一层:
Pathway 内置了向量存储引擎,直接嵌入在运行时进程中。数据通过 Pathway 的 Connector 实时接入,流式处理后直接写入内置向量存储,没有独立的数据库实例,也就没有「数据同步」这个步骤。
这个设计的优势在于:
Pathway 支持的数据源覆盖主流企业场景:
pw.io.fs — 本地目录、云存储(S3/GCS/Azure Blob)pw.io.postgres、pw.io.mssql每个数据源都有对应的 Connector,支持增量同步(只处理新数据和变化数据)。
LLM-App 不绑定特定的 LLM 后端,开发者可以自由选择:
嵌入模型同样可选:OpenAI text-embedding-3-small、Mixedbread 等。
每个模板都提供了 docker-compose.yml,以 question_answering_rag 为例:
git clone https://github.com/pathwaycom/llm-app
cd llm-app/templates/question_answering_rag
cp .env.example .env
# 编辑 .env,填入 OPENAI_API_KEY
docker-compose up
启动后:
http://localhost:8000(REST API)http://localhost:8501(浏览器访问)Docker 镜像基于官方 pathwaycom/pathway:latest,预装了 opencv、tesseract-ocr、libreoffice 等文档处理依赖。
项目 README 提供了四大云平台的部署指南:
| 资源 | 需求 |
|---|---|
| GPU | 不必需(LLM 调用走 API) |
| RAM | ≥4GB |
| 磁盘 | ≥2GB(文档存储) |
| Python | 3.10–3.12 |
使用本地模型(Ollama)时则需要 GPU 支持。
question_answering_rag 模板附带一个功能完整的 Streamlit 前端,核心功能包括:
/v1/statistics 端点实时显示已索引文档数量和处理状态drive_alert 模板的 UI 则更偏向监控仪表盘:显示最近更新的文档列表、变更告警记录。
Pathway 内置的向量存储引擎适合中小规模数据(数千到数万文档量级),但对于超大规模(百万文档以上)场景,独立向量数据库(Milvus、Pinecone)仍然是更成熟的选择。LLM-App 目前没有提供与这些外部向量库对接的官方 Connector。
默认使用 OpenAI GPT-4o API,企业级使用成本不容忽视。项目支持切换到 Claude 和本地模型,但本地模型对硬件要求较高,中小团队未必具备条件。
对 PDF/Word 等复杂文档的处理依赖 tesseract OCR 和 libreoffice 转换,对于扫描件、低分辨率图片或特殊排版文档,文本提取质量会有波动。这是整个 RAG 领域的共同难题。
Pathway LLM-App 的出现代表了 RAG 领域的一个重要趋势:从「批量索引」到「实时流式索引」的范式转移。
从 GitHub 数据来看(Stars: 59,630 | Forks: 1,430),LLM-App 是目前最受欢迎的企业级 RAG 模板集合之一,在 RAG-LLMops 细分领域具有较高的参考价值。其核心贡献在于:
如果你正在为企业构建 AI 知识库、合同检索系统、内部文档助手,或者想研究实时 RAG 的最佳实践,LLM-App 是一个值得深入研究的方向——它既有完整的工程落地,又保持了足够的可定制性。