1. 项目概述
llm-app(由 Pathway 提供)是一系列即用型、对 Docker 友好的模板,用于构建生产级 RAG(检索增强生成)管道和企业搜索应用,这些应用与 SharePoint、Google Drive、S3、Kafka 和 PostgreSQL 等实时数据源保持持续同步——无需单独的向量数据库或索引服务。
2. 背景与定位
大多数 RAG 教程假设文档集是静态的、一次性加载的。然而,在真实的组织中,知识库在不断变化:新文件被上传,旧文件被删除,权限在改变。llm-app 由 Pathway 构建,该公司是 Rust 驱动的 Pathway 数据处理引擎背后的公司,旨在填补这一空白——每个模板都附带一个实时的、增量的索引管道,可检测底层数据源中的添加、更新和删除操作,并实时反映在检索结果中,无需手动重新索引步骤。
与纯粹关注提示词/链逻辑的典型 RAG 示例仓库相比,llm-app 的不同之处在于:
- 将数据连接器、索引引擎和提供服务的 API 打包到一个可部署单元中,而不是将单独的向量数据库、编排和调度服务拼凑在一起。
- 提供内存中、带缓存的索引(通过
usearch和Tantivy进行向量、混合和全文搜索),可扩展至数百万页而无需外部基础设施。 - 模板驱动——每个用例都是一个完整、可运行的应用程序,而不是文档片段。
3. 功能类别
-
📄 问答与搜索(4 个模板)——用于以自然语言查询文档集的端到端 RAG 应用。
question_answering_rag——带有 LLM 的基准文档问答管道。document_indexing——可供任何下游应用使用的独立实时向量存储/索引服务。slides_ai_search——对 PowerPoint/PDF 幻灯片进行多模态搜索。document_store_mcp_server——将文档存储公开为 MCP 服务器,供代理工具使用。
-
🖼️ 多模态 RAG(2 个模板)——超越纯文本的管道。
multimodal_rag——使用 GPT-4o 解析包含嵌入式图表、表格和图像的 PDF。video_rag_twelvelabs——通过 TwelveLabs API 对视频内容进行问答。
-
⚡ 成本与隐私优化的 RAG(2 个模板)——针对成本或数据驻留限制进行调整的变体。
adaptive_rag——动态调整检索到的上下文块数量,将 token 使用量减少高达 4 倍。private_rag——使用 Mistral 和 Ollama 进行完全本地/离线部署,数据不离开本地。
-
🗄️ 结构化数据与自动化(2 个模板)——将非结构化输入转换为结构化输出或触发操作的管道。
unstructured_to_sql_on_the_fly——将非结构化财务文档即时转换为可查询的 SQL 数据库。drive_alert——监控实时数据源并就相关更改发出警报。
-
🧠 代理模式(1 个集合)——用于高级推理循环的参考笔记本。
cookbooks/self-rag-agents——Self-RAG 风格的代理,可批评和优化自身检索到的上下文。
4. 主要亮点
- 实时数据同步——管道监控 SharePoint、Google Drive、S3、Kafka、PostgreSQL 和实时 API,自动反映添加、编辑和删除操作,无需重建步骤。
- 无需额外基础设施——向量、混合和全文搜索内置于 Pathway 引擎(
usearch+Tantivy)中,并在内存中运行且带有缓存,无需独立的向量数据库。 - Docker 优先部署——每个模板都作为带有 HTTP API 的容器运行,大多数包含可选的 Streamlit UI,用于快速手动测试。
- 框架互操作性——与 LangChain 和 LlamaIndex 的原生集成让团队能够在 Pathway 的实时索引之上重用现有的链和代理。
- 成本感知检索——Adaptive RAG 模板演示了仅检索所需数量的上下文,将 LLM token 支出减少高达 4 倍。
- 经规模测试——旨在从单个管道索引并提供数百万文档页的服务。
5. 按角色划分的用例
- 一般开发者——克隆与您的用例(问答、多模态、SQL 提取)匹配的模板,并使数据连接器和提示词适应您的产品。
- 数据/研究科学家——使用
document_indexing或self-rag-agents笔记本作为基础,试验检索策略、分块和代理自我纠正。 - 项目经理/企业搜索负责人——部署
question_answering_rag或slides_ai_search作为内部知识库搜索工具,该工具保持最新状态,无需维护索引管道。 - 注重安全/合规的团队——使用
private_rag,通过 Mistral/Ollama 将文档内容和模型推理完全保留在本地。
6. 入门指南
找到您需要的内容——浏览 GitHub 上的 templates/ 目录,或 Pathway 模板 页面上的精选列表,以挑选最符合您用例的模板。
安装并运行模板
git clone https://github.com/pathwaycom/llm-app.git
cd llm-app/templates/question_answering_rag
docker compose up
每个模板文件夹都包含自己的 README.md,其中包含该管道的确切环境变量(例如 API 密钥)和运行说明。
贡献——阅读 CONTRIBUTING.md;对于小修复以外的任何事情,请先在 Pathway Discord 的 #get-help 频道进行协调。
7. 项目结构
llm-app/
├── templates/ # 即用型应用模板
│ ├── question_answering_rag/
│ ├── document_indexing/
│ ├── multimodal_rag/
│ ├── adaptive_rag/
│ ├── private_rag/
│ ├── slides_ai_search/
│ ├── unstructured_to_sql_on_the_fly/
│ ├── video_rag_twelvelabs/
│ ├── document_store_mcp_server/
│ └── drive_alert/
├── cookbooks/
│ └── self-rag-agents/ # Self-RAG 代理笔记本
├── assets/ # 图表和演示媒体
├── pyproject.toml / setup.cfg # Python 打包配置
└── README.md
templates/ 下的每个子文件夹都是一个独立的应用程序,具有自己的 Dockerfile/docker compose 设置和配置文件,因此模板可以彼此独立运行。
8. 相关生态系统
- Pathway——底层的 Rust 驱动的 Python 数据处理引擎,提供本仓库所基于的流式 ETL、实时索引和增量计算。
- LangChain / LlamaIndex——作为 Pathway 实时向量索引之上的可选编排层受支持。
- usearch / Tantivy——分别为向量搜索和全文/混合搜索提供支持的嵌入式库。
- Ollama / Mistral——由
private_rag模板用于完全本地的 LLM 推理。 - TwelveLabs——由
video_rag_twelvelabs模板使用的视频理解 API。
9. 许可证
该项目在 MIT 许可证下分发。
- ✅ 可免费使用、复制、修改、合并、发布和分发,包括用于商业产品。
- ✅ 可嵌入专有/闭源应用程序中。
- ❌ 不提供任何担保;作者对其使用产生的损害不承担责任。
- ℹ️ 软件的副本或实质部分必须保留 MIT 许可证文本和版权声明。
10. 常见问题
问:我需要在这些模板旁边运行单独的向量数据库吗?
答:不需要——索引(向量、混合和全文搜索)内置于 Pathway 引擎中,并在内存中运行且带有磁盘缓存,因此不需要外部向量存储。
问:我可以在完全离线的情况下使用它,而不将数据发送到第三方 LLM API 吗?
答:可以——private_rag 模板在本地使用 Mistral 和 Ollama 运行,将文档和推理保留在本地。
问:这些管道可以监控哪些数据源以获取实时更新?
答:SharePoint、Google Drive、S3、Kafka、PostgreSQL、本地文件系统和通用实时数据 API 均受开箱即用的支持。
问:在扩大检索规模时,我该如何降低 LLM token 成本?
答:参见 adaptive_rag 模板,该模板动态调整检索到的上下文大小,并报告称 token 使用量降低高达 4 倍。
问:我如何获得帮助或提出更大的贡献?
答:在 GitHub 上针对错误提出问题,或在开始实质性工作之前加入 Pathway Discord 的 #get-help 频道。
11. 快速链接
- 仓库:https://github.com/pathwaycom/llm-app
- 官方文档/模板目录:https://pathway.com/developers/templates/
- 贡献指南:https://github.com/pathwaycom/llm-app/blob/main/CONTRIBUTING.md
- 社区:https://discord.gg/pathway
12. 总结
llm-app 将 Pathway 的实时数据引擎打包成一组可随时部署的 RAG 和企业搜索模板,这些模板与不断变化的文档源保持自动同步,消除了对单独索引基础设施的需求。它最适合希望快速从 RAG 原型转向生产管道的开发者和团队——无论目标是文档问答、多模态搜索、成本优化检索,还是完全私有的本地部署。