前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
返回 AI 情报前线
All News · 全部资讯9919
  • Rust 官方源码:编译器与标准库入口
  • 让 AI 巡检任务重启后仍能可靠续跑
  • LocalRAG 开源本地文档问答完整链路
  • Meta 推出百万上下文开放权重模型
  • Copilot群聊支持在同一对话处理多个仓库
  • Agent 执行工具前需要哪些安全关卡
  • 让 Claude Code 参考后端而不误改代码
  • Opus 快速模式开放,提速成本需细算
  • 让编程 Agent 看懂仓库依赖关系
  • 分类与抽取任务可让模型直接选答案
  • 为付费 API Agent 强制设置支出上限
  • n8n 长任务先响应,避免超时重试
  • Meta 新开放权重模型支持苹果芯片本地运行
  • 英伟达推出百万上下文开放多模态 Agent 模型
  • 用Claude Code做手机声波联机游戏
  • Google OAuth 支持刷新令牌密钥绑定
  • 将低频流程移入 Claude Code 按需技能
  • Copilot 多模型编排需累计计算调用费用
  • Gemini CLI 消费者登录退役带来的迁移提醒
  • 编码智能体自动放行配置可能成为攻击入口
  • 用事件钩子识别编码智能体何时等待操作
  • 并行编程 Agent 背后的 Git 工作树机制
  • Copilot 部分模型将于11月16日退役
  • NoteBank 用片段回放补强长上下文记忆
  • Meta 推出8160亿参数开放权重多模态模型
  • 两台 M5 Ultra Mac 可运行 Muse 开放模型
  • SageMaker 支持部署 Muse Spark Open
  • 谷歌 ADK 配方库贯通 Agent 开发部署
  • 为多轮 Agent 建立持续评估流水线
  • ctxtrim 压缩日志,节省编程上下文
  • 技能触发不准,先改好 description
  • AI 生成页面上线前,补验 GA4 事件链路
  • 让客服机器人把处理结果反馈到检索排序
  • 已加载 33 / 9919
8.0
热点
AI SCORE
开源项目2026-10-16 10:58

LocalRAG 开源本地文档问答完整链路

dev.to · AI#RAG#本地部署#开源
Editor brief · 编辑速览

LocalRAG 使用本地 bge-m3 生成嵌入、Qdrant 存储向量,并由本地大模型回答文档问题、返回来源引用,支持 PDF、DOCX、TXT 和 Markdown。作者称 v0.1.0 已完成端到端验证,无需云端 AI API。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

许多团队希望用 AI 回答内部文档中的问题,但他们不能把这些文档发送到云服务。

法律团队有保密的案件资料,诊所有患者数据,财务团队有客户工作底稿,制造企业有专有的工艺文档。有些组织则运行在隔离网络中。

对这些团队来说,云优先的 RAG 技术栈根本不在考虑范围内。

我构建 LocalRAG,是为了验证一个简单的想法:

文档问答系统应该能够在受控环境中运行,使用本地模型,并为每个回答提供来源引用。

这个项目已经开源,当前的 v0.1.0 版本也已通过端到端验证。

代码仓库:Pingredsai/local-rag

发布版本:v0.1.0

LocalRAG 允许用户上传文档,并针对这些文档提问。

已经验证的流程如下:

  1. 上传 PDF、DOCX、TXT 或 Markdown 文档。
  2. 解析文档,并将其切分为文本块。
  3. 使用本地 bge-m3 模型生成 embedding。
  4. 将向量存入 Qdrant。
  5. 将用户的问题转换为 embedding。
  6. 检索最相关的文本块。
  7. 使用本地 LLM 生成回答。
  8. 返回回答及来源引用。

应用在运行时不会调用云端 AI API。

首次安装仍然需要联网,以拉取 Docker 镜像和 Ollama 模型。完成这些准备后,整套系统就可以在本地或物理隔离的环境中运行。

LocalRAG 使用三个主要容器:

Browser UI
    |
    v
FastAPI Backend
  - document parsing
  - chunking
  - RAG orchestration
  - REST API and static frontend
    |
    +--> Qdrant
    |      vector storage and search
    |
    +--> Ollama
           bge-m3 embeddings
           local LLM generation

为什么选择这些组件?

我有意没有重新构建模型运行时、向量数据库或 Agent 引擎。

真正有意思的工程问题,不是重新发明 Ollama,而是让完整工作流在私有部署中做到可复现、可观测,而且好用。

我使用以下配置测试了当前版本:

  • Docker Desktop 4.95.0
  • bge-m3,用于生成 embedding
  • qwen2.5:3b,用于生成回答

测试文档是一本虚构的员工手册。

系统将它切分为三个文本块并建立索引。

随后收到问题:“全职员工每年有多少天年假?”

系统检索到了相关的政策文本。

UI 中也显示了来源文档和相似度分数。

健康检查返回如下结果:

{
  "status": "ok",
  "qdrant": "ok",
  "ollama": "ok",
  "llm_model": "qwen2.5:3b",
  "embed_model": "bge-m3"
}

代码仓库中提供了截图和一段 42 秒的演示视频。

git clone https://github.com/Pingredsai/local-rag.git
cd local-rag
cp .env.example .env
docker compose up -d

docker exec localrag-ollama ollama pull qwen2.5:3b
docker exec localrag-ollama ollama pull bge-m3
http://localhost:8080

我遇到的四个问题

1. Ollama 官方镜像太大

使用最新的 Docker 镜像很方便,但镜像解包后的体积可能接近 9 GB。在网络较慢的环境中,这是一个严重的部署问题。

我将项目固定在一个体积更小、兼容的 Ollama 版本上,并在文档中说明了这一部署取舍。

这也提醒我,运行时的体积和下载行为都是产品体验的一部分,不只是基础设施细节。

2. Docker 镜像仓库慢,不代表 Docker 安装有问题

在我的环境中,Docker Hub 的速度极慢。最终采用的解决办法结合了镜像源、可断点续传的拉取方式,以及部分情况下的本地模型导入。

我没有在项目中硬编码第三方镜像源,而是在部署说明中介绍了处理方法,方便运维人员自行替换。

3. 最初的流式响应没有显示来源

最初的实现通过流式端点返回文本,而来源信息只在非流式端点中提供。

这让 UI 看起来就像一个普通聊天机器人。对于业务系统至关重要的来源引用,用户却看不到。

我修改了流式端点,让它通过响应头返回来源元数据。前端读取响应头,流式展示回答,并在回答完成后渲染来源卡片。

4. 1.5B 模型的可靠性不足以支撑演示

较小的模型在短上下文中可以正常工作,但文档稍长一些,回答就会变得不稳定。

我将演示使用的模型切换为 qwen2.5:3b,并进一步收紧了 prompt 和生成选项。

本地 AI 不会因为模型更小就自动变得更好。模型大小必须与硬件、使用场景和所需的回答质量相匹配。

第一个版本的范围是刻意收窄的。

  • 多租户权限
  • 多个相互隔离的知识库
  • 可视化 Agent 编排

v0.1.0 的目标,是让这条核心路径稳定可靠:

upload -> index -> retrieve -> answer -> show sources

我宁愿把这些边界说清楚,也不愿让人误以为这个项目已经是一个生产级平台。

接下来打算做什么

长期目标是大幅简化私有 AI 的部署,然后让用户能够组装自己的本地 Agent。

但我不会一上来就再造一个通用 Agent 平台。

Dify、Flowise、Langflow、Open WebUI、AnythingLLM、RAGFlow 和 FastGPT 等现有项目,已经覆盖了这个领域的很大一部分需求。

缺少的是切实可用的部署与运维层:

  • 安装编排
  • Agent 包的导入与导出
  • 权限与沙箱隔离

我计划按以下顺序推进:

  1. 通过真实 POC 验证 LocalRAG。
  2. 构建一层轻量的一键部署控制层。
  3. 定义可移植的 agent.yaml 格式。
  4. 等到有了付费使用和反复出现的需求,再考虑构建更广泛的平台。

平台不是起点,而是反复交付之后沉淀下来的东西。

如果你的文档不能离开内部网络

我正在寻找以下领域的真实 POC:

  • 法律文档检索
  • 医疗政策与记录
  • 财务与审计知识库
  • 制造业手册
  • 物理隔离或私有网络环境

第一个 POC 可以很小。我们只需要验证:

  • 你的文档能否被正确解析?
  • 检索能否找到正确的来源段落?
  • 回答能否切实节省时间?
  • 能否满足数据与权限边界要求?

代码仓库:Pingredsai/local-rag

如果你也在做本地优先的 AI 项目,我很乐意交流经验。

如需采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
让 AI 巡检任务重启后仍能可靠续跑
下一篇
Meta 推出百万上下文开放权重模型