从零开始:在本地搭建一个带知识库的 AI 助手(Ollama + Open WebUI)

从零开始:在本地搭建一个带知识库的 AI 助手(Ollama + Open WebUI)
一文讲清楚:要选哪些工具、需要什么环境、整体架构长什么样,以及一步步实现到能用的程度。

一、为什么要在本地搭一个 AI 助手?

过去一年,大模型从“新奇玩意儿”迅速变成“日常生产力工具”。但如果你只用网页版 ChatGPT / 文心一言 / 通义千问,会碰到几个很现实的问题:

  • 数据隐私:公司内部文档、个人笔记、聊天记录,你敢全部塞到线上吗?
  • 网络依赖:在飞机上、高铁里,或者公司内网严格管控时,在线 AI 直接“失联”。
  • 额度与费用:免费额度有限,稍微重度一点就要付费,而且你也不知道自己的数据会不会被拿去训练。
    本地部署一套 “AI + 知识库” 的好处就非常直观:
  1. 数据完全不出本地,满足隐私合规要求。
  2. 断网也能用,随时随地调取你的“第二大脑”。
  3. 可定制:可以给团队搭一个“企业 FAQ 助手”,给自己搭一个“读书笔记助手”。
    本系列文章的目标,就是带你从零开始,在本地搭一个类似 ChatGPT 的 Web 界面,并且支持上传文档构建知识库(RAG)的 AI 助手。

二、整体架构:我们要搭的是一个什么样的系统?

用一个简单的架构图来概括一下我们要做的事情:

调用

调用

上传文档

提问

检索结果

回答

浏览器 Web UI

Ollama 模型服务

本地大模型 Qwen2.5

嵌入模型

向量知识库

问题向量化

构建上下文

核心组件:

  • Ollama:本地模型运行时,负责加载和调度大模型、嵌入模型,提供统一的 API。
  • Qwen2.5 系列 / DeepSeek-R1 等:本地对话大模型,作为“大脑”。
  • 嵌入模型(Embedding):把文本转成向量,用于知识库检索,比如 nomic-embed-textbge-m3 等。
  • 向量数据库 / 向量索引:存储文档向量,负责相似度检索(Open WebUI 自带,也可以外接 Chroma、Milvus 等)。
  • Open WebUI:类 ChatGPT 的 Web 界面,支持对话、上传文档、配置知识库。

三、工具选型:为什么推荐 Ollama + Open WebUI?

3.1 大模型运行时:Ollama

对比直接用 transformers + PyTorch 自己搭一套推理服务,Ollama 的优势非常明显:

  • 跨平台:Windows / macOS / Linux 都有官方安装包,安装就是下一步下一步。
  • 一键拉模型ollama pull qwen2.5:7b-instruct 就能拉取并运行模型,不需要自己处理 GGUF、量化、CUDA 等一堆细节。
  • 统一 API:默认在本地 11434 端口提供 REST API,兼容 OpenAI 调用方式,方便后续写代码集成。
  • 资源友好:支持 CPU / Apple Silicon GPU / NVIDIA GPU,自动检测并使用可用硬件加速。
实战经验:如果你只是想“先用起来”,而不是做底层研究,Ollama 是目前性价比最高的选择之一。

3.2 Web 界面:Open WebUI

Open WebUI 是目前社区最活跃的开源大模型 Web 界面之一,主要特点:

  • 界面体验接近 ChatGPT:多轮对话、Markdown 渲染、代码高亮、历史记录管理。
  • 自带 RAG 知识库功能:不用写一行代码,就能在界面上上传文档、构建知识库。
  • 支持多用户:可以给团队部署,每个人有独立账号和空间。
  • 可扩展:支持接入多种模型后端(Ollama、OpenAI 兼容 API 等)。

3.3 模型选择:Qwen2.5 / DeepSeek-R1 等

如果你主要写中文、需求偏通用对话和代码,推荐:

  • Qwen2.5 系列:中文能力强,指令跟随稳定,社区使用非常广泛。
  • DeepSeek-R1 系列:推理和代码能力突出,适合“程序员向”场景。
    具体选多大规模,要看你的硬件配置(后面会详细讲)。

四、硬件与系统环境:你的电脑够不够格?

4.1 硬件建议(以消费级 PC 为例)

场景推荐配置说明
入门体验16GB 内存 + RTX 3060/4060(8GB+ 显存)可以跑 7B~13B 的 INT4 量化模型
舒服使用32GB 内存 + RTX 4070/4090(12GB+ 显存)可以跑 14B~32B 量化模型,并发更稳
Mac 用户M1/M2/M3,16GB+ 统一内存Apple Silicon 对推理优化很好,体验接近中档 GPU
一些经验值:7B 参数 INT4 模型大致需要 4~6GB 显存,13B 需要 8~10GB,32B 需要 16GB+ 显存。

4.2 系统与软件环境

  • 操作系统:Windows 10/11、macOS、主流 Linux 发行版都可以。
  • Docker(推荐):
    • Windows/macOS 安装 Docker Desktop。
    • Linux 安装 Docker Engine + Docker Compose。
  • Ollama:从官网下载安装即可。
  • (可选)NVIDIA 驱动 + CUDA:如果你有 N 卡,想用 GPU 加速,需要安装对应驱动和 CUDA 工具包(Ollama 会自动检测)。

五、部署路线图:我们会分几步走?

为了让你有个整体预期,我们整个项目的路线大概是这样的:

  1. 环境准备:安装 Ollama、Docker,验证基础环境。
  2. 本地模型跑通:通过 Ollama 拉取并运行一个对话模型(如 Qwen2.5:7b-instruct)。
  3. WebUI 部署:用 Docker 一键启动 Open WebUI,连接 Ollama。
  4. 基础对话体验:在浏览器里像用 ChatGPT 一样和本地模型聊天。
  5. 知识库搭建(RAG):上传文档,构建私有知识库,让模型“记住”你的资料。
  6. (可选)Python 调用 & 自动化:用代码调用本地模型,接入自己的工具链。

六、第一步:安装 Ollama 并跑通本地模型

6.1 安装 Ollama

以 Windows 为例(macOS / Linux 同理):

  1. 打开官网:https://ollama.com/download。
  2. 下载 Windows 安装包,双击安装,一路“下一步”即可。

安装完成后,打开命令行,执行:

ollama -v 

如果看到类似 ollama version is 0.5.4 的输出,就说明安装成功。

6.2 拉取并运行一个对话模型

以 Qwen2.5 为例:

# 拉取模型 ollama pull qwen2.5:7b-instruct # 运行模型(进入交互式对话) ollama run qwen2.5:7b-instruct 

第一次运行时,Ollama 会自动下载模型文件(约 4~5GB),等待下载完成即可。
在交互界面里,你可以直接输入问题,测试模型是否正常工作。

七、第二步:用 Docker 部署 Open WebUI

7.1 安装 Docker

如果你已经安装 Docker Desktop,可以跳过这一步。

  • Windows / macOS:到 Docker 官网下载 Docker Desktop 并安装。
  • Linux:按官方文档安装 Docker Engine 和 Docker Compose。
    验证安装:
docker -v docker compose version 

7.2 启动 Open WebUI 容器

一个简单的启动命令示例(假设 Ollama 在本机 11434 端口):

docker run -d \ -p 3000:8080 \ -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main 

参数说明:

  • -p 3000:8080:把容器内的 8080 端口映射到宿主机 3000。
  • -e OLLAMA_BASE_URL:告诉 Open WebUI,Ollama 服务在哪里。
  • -v open-webui:/app/backend/data:持久化聊天记录和配置。
  • --restart always:容器异常退出时会自动重启。
    启动后,打开浏览器访问:http://localhost:3000,就能看到 Open WebUI 的登录界面。

八、第三步:在 WebUI 里连接本地模型

  1. 注册 / 登录 Open WebUI(账号只存在本地,不会上传到云端)。
  2. 在界面中选择模型,你应该能看到类似 qwen2.5:7b-instruct 的选项。
  3. 如果看不到模型,可以在 Open WebUI 的设置里,检查 Ollama 连接地址是否正确,并点击“验证连接”。
    接下来,就可以像用 ChatGPT 一样,和本地模型对话了。

九、第四步:搭建本地知识库(RAG)

9.1 RAG 是什么,为什么需要它?

简单来说,RAG(Retrieval-Augmented Generation)= 检索 + 增强 + 生成

  1. 检索:根据用户问题,从知识库中找出最相关的文档片段。
  2. 增强:把检索到的内容塞进提示词,一起丢给模型。
  3. 生成:模型基于这些上下文生成回答。
    RAG 的好处是:
  • 不需要重新训练模型,就能让模型“知道”你的私有资料。
  • 可以随时更新知识库,比微调灵活得多。

9.2 准备嵌入模型

为了做向量检索,我们需要一个嵌入模型,比如:

# 拉取一个常用的嵌入模型 ollama pull nomic-embed-text # 或 ollama pull bge-m3 

Open WebUI 可以自动使用这些嵌入模型来构建知识库。

9.3 在 Open WebUI 里创建知识库

不同版本的界面略有差异,但大致流程类似:

  1. 进入“知识库 / Documents”管理页面。
  2. 新建一个知识库,比如叫“我的技术笔记”。
  3. 上传本地文档:PDF、Word、Markdown、TXT 等。
  4. 系统会自动调用嵌入模型,对文档进行分片和向量化。
  5. 在对话时,把这个知识库挂载到当前会话,模型就会优先从这些文档里找答案。

十、第五步:用 Python 调用本地模型(可选)

如果你想把本地模型集成到自己的脚本或工具里,可以通过 Ollama 的 API 来调用。

10.1 简单示例:对话

import requests OLLAMA_BASE ="http://localhost:11434"defchat(prompt:str, model:str="qwen2.5:7b-instruct"): r = requests.post(f"{OLLAMA_BASE}/api/chat", json={"model": model,"messages":[{"role":"user","content": prompt}],"stream":False,},) r.raise_for_status()return r.json()["message"]["content"]print(chat("用大白话解释一下什么是 RAG?"))

10.2 简单示例:文本嵌入

defembed(text:str, model:str="nomic-embed-text"): r = requests.post(f"{OLLAMA_BASE}/api/embeddings", json={"model": model,"prompt": text},) r.raise_for_status()return r.json()["embedding"] vec = embed("这是一段需要向量化的文本")print(len(vec), vec[:5])

有了这些,你就可以自己写脚本做批量文档处理、自动总结、智能检索等。

十一、进阶方向:这个项目还能怎么玩?

当你把基础对话 + 知识库跑通之后,可以考虑这些进阶玩法:

  • 多模型管理:同时跑一个“通用对话模型” + 一个“代码专用模型”(如 Qwen2.5-Coder),在 WebUI 里按需切换。
  • 更专业的 RAG 工具:尝试 RagFlow、Dify 等更复杂的 RAG 平台,支持更精细的文档解析和多路召回。
  • 接入 IDE / 浏览器插件:把本地模型做成一个“智能助手”,在编辑器里自动补全、在浏览器里总结网页。
  • 团队共享部署:把整套部署在公司内网服务器上,给团队统一用,实现“企业 FAQ 助手”。

十二、小结

这篇文章主要做了三件事:

  1. 讲清楚了为什么要在本地搭一个 AI 助手,以及它能解决哪些痛点。
  2. 给出了技术选型与整体架构,重点推荐了 Ollama + Open WebUI 这套组合。
  3. 梳理了从环境准备、模型部署、WebUI 搭建到知识库构建的完整路线图。
    接下来的文章,我会分别针对:
  • Windows / macOS / Linux 不同系统的踩坑点
  • RAG 效果调优(分块策略、检索参数等)
  • Python 自动化脚本实战
    做更详细的拆解。如果你已经按这篇文章跑通了基础流程,欢迎在评论区留言,说说你遇到的坑和想进一步实现的功能。

Read more

实测10款免费降AI神器,这7个真能打:AI率从88%猛降到1.6%【2026亲测版】

实测10款免费降AI神器,这7个真能打:AI率从88%猛降到1.6%【2026亲测版】

开学才几天,宿舍群已经炸了——这次不是因为论文写不完,而是AI检测太吓人! 现在各大学位论文查的越来越严,现在降AI率简直比降重还让人头疼。知网、维普、万方全都上了AI检测功能,不少学校明说AIGC率不能超过20%,太高了可能连答辩都悬。 这一个月我当了一回“小白鼠”,把市面上能找的降AI工具全试了个遍,从免费到付费、从小众到热门,最终筛出7款确实有用的。废话不多说,直接上实测干货——效果、价格、适用场景,帮你一次避坑,少走弯路。 一、7款降AI工具亲测报告(附真实效果截图) 1、笔灵 如果你只想用一个工具搞定所有,闭眼选笔灵就对了——知网、万方最新标准它都适配,价格还友好,学生党放心冲。 传送门:https://ibiling.cn/paper-pass?from=ZEEKLOGjiangai818gx(建议电脑打开) 为啥首推它? 效果稳如老狗: 我拿一篇AI率88%的论文试水,笔灵跑一遍,知网复检直接掉到1.6%

Claude AI注册避坑指南:5分钟搞定海外手机号验证(附最新解决方案)

Claude AI 注册实战:从验证难题到高效上手的完整路径 最近几个月,身边不少朋友和同事都在讨论一个现象:想体验一下那个以“安全”和“长上下文”著称的Claude AI,却在注册的第一步——手机号验证——就卡住了。这确实是个挺让人头疼的体验,明明技术产品就在眼前,却因为一个看似简单的步骤而无法触及。对于国内的开发者、产品经理或是AI爱好者来说,这种“看得见却用不上”的感觉尤其强烈。这篇文章,就是为你准备的。我们不谈空泛的理论,只聚焦于一个核心目标:如何绕过那些常见的障碍,顺利、安全地完成Claude账户的注册与初步设置,并为你梳理清楚后续高效使用的关键点。整个过程,力求在5分钟内给你一个清晰的行动路线。 1. 理解注册流程的核心关卡与常见误区 在动手操作之前,我们先花点时间拆解一下Claude的注册流程,特别是那个让很多人“折戟”的环节。这能帮你避开很多不必要的试错,直接找到有效的路径。 Claude的官方注册流程,本质上和大多数国际主流互联网服务类似:邮箱验证 -> 手机号验证 ->

(第三篇)Spring AI 实战进阶:从0开发IDEA插件版AI代码助手(Java全栈+上下文感知)

(第三篇)Spring AI 实战进阶:从0开发IDEA插件版AI代码助手(Java全栈+上下文感知)

前言 作为 Java 开发者,我们每天都在重复编写 CRUD 代码、调试语法错误、优化性能问题 —— 这些机械性工作占用了大量时间,而市面上的通用 AI 代码助手(如 Copilot)往往无法精准感知项目上下文(比如项目的包结构、依赖版本、数据库表结构),生成的代码需要大量修改才能落地。 笔者近期基于 Spring AI+IDEA 插件开发了一款定制化 AI 代码助手:后端基于 Spring AI 整合 JavaParser、Maven API 实现代码解析与生成,前端通过 IDEA 插件提供对话窗口和一键插入代码功能,支持需求描述→完整代码生成代码优化、上下文感知、补全三大核心能力。本文将从实战角度,完整拆解这款 AI 代码助手的开发全流程,所有代码均为生产环境可直接复用的实战代码,同时结合可视化图表清晰呈现核心逻辑,希望能帮你打造专属的 AI

猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》

猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》

猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》 📌摘要 🚀大消息来啦!猫头虎AI赠书第12期火热启动🔥!这次,我为大家精选了《扣子Skills+OpenClaw实战:零基础玩转AI智能体 》📚。想要免费拿到这本书?简单到不能再简单:关注我的博客✨,添加我的wx📲,在文章下方留言 "我要学习扣子龙虾! !! "💬。3月30日,我将为大家挑选出②位幸运读者🎁,并在评论区与朋友圈公布!手里还藏着宝贵的源代码,等你来夺🌈!赶快行动起来,机会难得! 📢引言 亲爱的朋友们,大家好!👋是我,猫头虎博主!今天,我为大家带来了猫头虎AI赠书第12期的特别惊喜🎊!这次我将赠送的是一本精心挑选的 《扣子Skills+OpenClaw实战:零基础玩转AI智能体》 🌟。这本书内容丰富,无论你是新手还是老鸟,都能找到属于你的知识宝藏🔍。希望大家能喜欢这个小惊喜,和我一起分享这场编程的盛宴!🥳 文章目录 * 猫头虎AI赠书第12期赠书活动:《扣子Skills+OpenClaw实战:零基础玩转AI智能体》 * 📖关于