pathwaycom/llm-app · 上手攻略

  • 仓库:pathwaycom/llm-app
  • 链接:https://github.com/pathwaycom/llm-app
  • 分类:ai
  • 作者:Tom
  • 更新:2026-07-10

这是什么

Pathway llm-app 是一套开箱即用的 RAG(检索增强生成)与 AI 流水线云模板集合。它基于 Pathway Live Data Framework,核心解决"数据源实时变化 → RAG 系统如何及时感知并更新索引"这个问题。与传统 VectorDB(如 Pinecone、Milvus)需要独立 ETL 管道不同,Pathway 在内存中直接处理数据同步、向量检索和 LLM 调用,消除了额外基础设施依赖。

解决的问题:企业构建 RAG 系统时,数据源(SharePoint、Google Drive、S3、Kafka、PostgreSQL)随时更新,但传统架构下 ETL 管道滞后严重,导致 LLM 回答用的是过时数据。Pathway 的 Live Data 模式让 RAG 索引随数据源变化实时刷新。


快速安装

方式一:Docker Compose(推荐,快速体验)

git clone https://github.com/pathwaycom/llm-app.git
cd llm-app
cd templates/question_answering_rag   # 以最基础的 QA RAG 为例
docker compose up

方式二:本地 Python 安装(开发用)

git clone https://github.com/pathwaycom/llm-app.git
cd llm-app

# 创建 Python 虚拟环境
python3 -m venv .venv
source .venv/bin/activate

# 安装核心依赖
pip install pathway

# 进入模板目录并安装模板依赖
cd templates/question_answering_rag
pip install -r requirements.txt

环境变量准备(至少配置 LLM API)

export OPENAI_API_KEY="sk-..."
# 其他可选
export OPENAI_API_BASE="https://api.openai.com/v1"  # 使用代理时

核心用法

1. 跑通最简 QA RAG(question_answering_rag 模板)

配置数据源(默认读取 data/ 本地目录):

# 准备测试文档
mkdir -p data
cp your_doc.pdf data/

# 启动服务
python main.py

服务启动后,API 端点可用:

# 检索相关文档片段
curl -X POST http://localhost:8000/v1/retrieve \
  -H "Content-Type: application/json" \
  -d '{"query": "你的问题", "k": 3}'

# 直接让 LLM 回答
curl -X POST http://localhost:8000/v2/answer \
  -H "Content-Type: application/json" \
  -d '{"query": "你的问题"}'

# 文档摘要
curl -X POST http://localhost:8000/v2/summarize \
  -H "Content-Type: application/json" \
  -d '{"texts": ["文本1", "文本2"]}'

2. 连接 Google Drive 数据源

编辑 app.yaml,配置 Google Drive 连接器:

input_sources:
  - pathway:
      driver: google_drive
      connection_config:
        credentials_path: /path/to/credentials.json
        document_ids: ["folder_id_or_file_id"]

(需要先在 Google Cloud Console 创建 OAuth 2.0 凭据)

3. 连接 SharePoint 数据源

input_sources:
  - pathway:
      driver: sharepoint
      connection_config:
        tenant_id: "your-tenant-id"
        client_id: "your-client-id"
        client_secret: "your-client-secret"
        site_url: "https://yourorg.sharepoint.com/sites/sitename"

4. 使用 Adaptive RAG(降低 Token 消耗)

Adaptive RAG 是 Pathway 自研的优化技术,通过智能路由将 Token 消耗降低最高 4 倍,同时保持准确率:

cd templates/adaptive_rag
cp .env.example .env
# 编辑 .env 设置 OPENAI_API_KEY
docker compose up

5. 使用私有本地模型(Ollama/Mistral)

cd templates/private_rag
# 配置使用 Ollama
export OLLAMA_BASE_URL="http://localhost:11434"
export OLLAMA_MODEL="mistral"
docker compose up

6. 混合搜索配置

Pathway 默认使用 usearch 作为向量索引,支持混合全文搜索。编辑 app.py 调整检索策略:

import pathway as pw

# 配置混合检索(向量 + 全文)
app = pw.LLMQuestionAnswerer(
    input_sources=[...],
    embedder=pw.TextEmbedder(model="openai"),
    indexer=pw.HybridIndexer(  # 混合索引
        vector_index=pw.USearchIndex(dim=1536),
        text_index=pw.TantivyTextIndex()
    )
)

核心模板一览

模板 场景 特点
question_answering_rag 基础文档问答 最简 RAG,支持多数据源
document_indexing 实时文档索引 作为 LangChain/LlamaIndex Retriever 后端
adaptive_rag 成本优化问答 自研 Adaptive RAG,Token 节省最高 4x
private_rag 本地私有部署 Ollama + Mistral,零 API 费用
multimodal_rag 多模态文档理解 GPT-4o 解析 PDF 图表/表格
unstructured_to_sql 非结构化→SQL PDF 财务报告自动转 SQL 查询
drive_alert 实时监控告警 数据源内容变化触发告警
video_rag 视频内容问答 TwelveLabs 视频理解

典型适用场景

场景 说明
企业知识库问答 连接 SharePoint/Google Drive,员工用自然语言查询公司文档,实时获取最新内容
金融文档分析 自动解析 PDF 财报、招股书,用 SQL 方式查询非结构化数据
客服机器人 实时接入 Kafka 消息流和数据库,实现动态上下文 RAG
合同审查 多模态 RAG 提取合同关键条款,数据源更新后自动重索引
内部搜索增强 替代传统关键词搜索,用语义检索提升内部工具的查找体验

坑与注意

  1. 内存依赖:Pathway 的向量索引和全文索引都在内存中(usearch + Tantivy),大规模文档(>100万页)需要评估内存容量,避免 OOM。
  2. Python 3.10+:Pathway Live Data Framework 要求 Python ≥ 3.10,部分老项目迁移时需注意。
  3. LLM API 成本:默认使用 OpenAI GPT 模型,文档量大的场景下 Token 消耗不容忽视,建议启用 Adaptive RAG 或切换 Ollama。
  4. 连接器稳定性:Google Drive / SharePoint 连接器依赖微软/Google OAuth,长时间运行可能出现 Token 过期刷新问题,生产部署需配置好刷新机制。
  5. 并发限制:Pathway 的 REST Server(QASummaryRestServer)默认是单进程,生产高并发场景需要配合 gunicorn/uwsgi 部署,或使用其内置的分布式模式。
  6. 部署复杂度:相比纯 API 服务(如 OpenAI、RAGAS),Docker Compose 模板涉及多个容器(API Server + 可选 Streamlit UI),运维有一定学习曲线。

与同类对比

特性 Pathway llm-app LangChain + Pinecone LlamaIndex RAGflow
数据实时性 ✅ 流式实时同步 ❌ 需手动触发重建索引 需配置回调 支持实时增量
向量索引 内置 usearch(内存) 依赖 Pinecone 等外部服务 可选多种 内置多种
部署复杂度 中等(Docker) 高(多组件集成) 中等 低(一键部署)
多数据源 原生支持 GDrive/SharePoint/S3/Kafka 需分别写连接器 连接器丰富 支持多种
多模态 ✅ GPT-4o 原生支持 需自行拼接
私有化部署 ✅ Ollama 原生支持
开源协议 MIT MIT MIT Apache 2.0

Pathway 的核心优势是消除 ETL 管道 + 一站式内置索引,适合不想维护复杂基础设施、希望快速跑通 RAG 场景的团队。如果你已经有 VectorDB 和 LangChain 生态积累,Pathway 更多是补充而非替代。


一句话推荐结论

数据源变化频繁、又不想要 ETL 管道复杂度?Pathway llm-app 把数据同步+向量检索+LLM 调用打包成一个 Docker 服务,30 分钟跑通企业级 RAG——多模态和 Adaptive RAG 更是加分项。


参考来源

  • GitHub README:https://github.com/pathwaycom/llm-app
  • Pathway Live Data Framework:https://github.com/pathwaycom/pathway
  • question_answering_rag 模板:https://github.com/pathwaycom/llm-app/tree/main/templates/question_answering_rag
  • Pathway 官方文档:https://pathway.com/developers/
  • Adaptive RAG 技术介绍:https://pathway.com/blog(搜索 Adaptive RAG)
  • Deploy to GCP/AWS/Azure:https://pathway.com/developers/user-guide/deployment/