跳到主要内容
Windows 平台本地部署大模型构建知识库 | 极客日志
Python AI 算法
Windows 平台本地部署大模型构建知识库 综述由AI生成 在 Windows 平台上利用 Ollama 和 FastGPT 搭建本地知识库的完整流程。通过配置 Python 环境、WSL2 子系统及 Docker,实现本地大模型(如 Llama3)与向量数据库的私有化部署。方案涵盖 OneAPI 桥接配置、知识库数据导入及外网访问设置,确保数据安全性与查询准确性。同时提供了常见问题的排查指南及硬件配置建议,帮助用户优化本地部署体验。
怪力乱神 发布于 2025/2/6 更新于 2026/6/3 24 浏览Windows 平台本地部署大模型构建知识库
大模型迅猛发展的今天,知识的更新日新月异。如果你苦于知识文本繁杂,使用查询的时候又无从下手,可以考虑使用大模型技术来帮助你检索查询所需的知识点。对有文件内容安全性考虑的用户,可以部署本地化的大模型以解决当前需求。
构建方式对比
现阶段有多种构建方式:
Ollama + AnythingLLM :这种方式部署简单,可以迅速上手,但是 AnythingLLM 使用默认的向量模型性能一般,所以在使用知识库查询时,经常容易出现无法查询到相关信息的情况。
Ollama + FastGPT :这是本教程推荐的构建方式,是现阶段搭建本地知识库较好的选择。因为可以自定义向量模型等各类所需要的模型,查询结果质量较好,但是缺点就是搭建过程相对繁琐。
环境配置
Python 依赖环境
在这之前需要先安装 Python。由于大部分大模型基于 Python 语言开发,所以对于 Python 应用程序所需的软件和工具的集合,也就是依赖环境,应当尽量保持在最新版本。
注意点:
Python 安装时,记得勾选 pip(Python 中的标准库管理器),这是用于更新所需依赖环境的工具。
Python 安装时,有时候即使勾选了 Add python to PATH 也会出现环境变量配置不成功的问题。在命令行窗口运行 python 指令,会跳转 WindowsApps;或者在 Windows CMD 命令行窗口(尽量使用管理员权限)运行 pip 指令,提示不是内部或外部命令,都表示环境变量未配置。
环境变量作用是让用户可以在 Windows CMD 命令行窗口或 PowerShell 中直接运行应用程序的指令。配置环境变量方法:此电脑 -> 属性 -> 高级系统设置 -> 环境变量,用户变量和系统变量都进行设置。
用户变量 :在 Path 中新建两个变量,一个是 Python 安装目录路径,另一个是 Python 目录下 Scripts 文件夹的路径。
系统变量 :在 Path 的最后添加两个变量,一个是 Python 安装目录路径,另一个是 Python 目录下 Scripts 文件夹的路径,使用英文状态下 ; 分隔。
配置 Python 环境变量时候,用户变量需要保证 Python 的路径配置要在 WindowsApps 的路径配置上,不然还是会按顺序先跳转 WindowsApps。
更新 Python 依赖环境
在命令行窗口使用以下指令,待指令运行完成未出现红色错误提醒就是更新成功。
python.exe -m pip install --upgrade pip
安装配置 WSL2
因为 Docker、FastGPT 及各类数据库等,需要在 Linux 环境下运行,所以要在 Windows 系统上先安装 Linux 系统。
Windows Subsystem for Linux(简称 WSL),Windows 下的 Linux 子系统,是一个在 Windows 10 上能够运行原生 Linux 二进制可执行文件(ELF 格式)的兼容层。可以简单理解为可以在 windows 系统下操作控制的本地 Linux 子系统的工具。
注意点:
在安装 Wsl 前需要确保当前设备已经开启了虚拟化,可以通过两种方式查询:
在任务管理器 -> 性能 -> CPU 中查看虚拟化情况。
在 Windows CMD 命令行窗口使用 systeminfo 指令查看虚拟化情况。
查询未启用虚拟化,需要先在 Bios 中开启虚拟化功能。一般情况下,主板默认设置时不开启虚拟化功能的。所以需要在开机时,进入主板 Bios 进行设置。AMD 的 cpu 在 Bios 设置中将 AMD SVM Technology 设置为 Enable,重新开机则开启了电脑的虚拟化功能。
为 Windows 启用 Hyper-V 功能。在控制面板 -> 程序 -> 程序与功能 -> 启用或关闭 Windows 功能中找到 Hyper-V,进行勾选后会自动系统会自动安装 Hyper-V。
如果你的系统为 Window10/11 家庭版,在 Windows 功能中是没有 Hyper-V 的,则需要手动安装。创建空白文本文件,将下方命令粘贴保存,并将文件后缀名改为.bat,文件则变为批处理脚本,右键以管理员身份运行即可。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause
安装完成后,使用前面方法验证虚拟化与 Hyper-V 开启情况。
5. 内核更新包安装出现 This update only applies to machines with the windows Subsytem for Linux 错误。需要确保适用于 Linux 启用 Windows 子系统 和虚拟机平台 两个功能在 WIndows 功能中启用,可以在 Windows CMD 命令行窗口中使用以下指令开启。
适用于 Linux 启用 Windows 子系统:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
设置完成后重启设备,windows 功能生效。
6. 安装 Linux,推荐在 Windows CMD 命令行窗口中使用 wsl --install 指令进行安装。
7. 安装完成后 Linux 指令需要在 Ubuntu 打开的命令行中运行。
大模型安装
安装本地部署开源大模型的工具 Ollama Ollama 是一个专为在本地环境中运行和定制大型语言模型而设计的工具。它提供了一个简单而高效的接口,用于创建、运行和管理这些模型,同时还提供了一个丰富的预构建模型库,可以轻松集成到各种应用程序中。
Ollama 下载链接可在官网获取。下载完 Ollama 后无脑下一步安装。
Ollama 默认的大模型安装位置为 C 盘的 C:\Users\<username>\.ollama\models,更换安装位置需在环境变量中进行配置。此电脑 -> 属性 -> 高级系统设置 -> 环境变量。在环境变量的系统变量中添加 OLLAMA_MODELS,并为其设置目录值(不需要到文件夹下创建文件,直接在值中设置盘符和文件夹名称,例如 F:\OllamaModels),重启设备后,会自动创建文件夹,且模型下载安装位修改成功。
安装完成后在 Ollama 官网中选择所需要的大模型,复制指令在 Windows CMD 命令行窗口运行。等待下载安装完成后,本地模型就部署成功,可以在控制台和模型对话检测模型功能。
Ctrl+D 和在 Windows CMD 命令行窗口输入 Bye 可以退出与大模型的对话。
大模型(llmModels):llama3.1:latest
向量模型(vectorModels):znbang/bge:large-en-v1.5-f32
Docker 安装 Docker 是一个开源的应用容器引擎。可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
安装 因为部分原因,Docker 需要使用魔法下载。这里提供的是 DockerDesktop 版本,如果需要使用 WSL 在 Linux 安装运行 Docker,参考官方文档。
因为网络上的大多数能够下载的 Docker Desktop 版本为 4.1.1,会与后续需要安装运行的 pg 向量数据库不兼容,所以建议使用较新版本,以解决该问题。
运行下载文件,按提示进行安装。运行 Docker Desktop。
在拉取 Docker 资源时候,考虑到网络环境差异问题,需要给 Docker Desktop 配置国内镜像的地址,可以极大提高 Docker 内镜像资源的下载速度。配置方法如下图:在 Docker Engine 中将下面的国内镜像地址与设置中的 registry-mirrors 进行替换。
"registry-mirrors" : [
"https://hub.uuuadc.top" ,
"https://docker.anyhub.us.kg" ,
"https://dockerhub.jobcher.com" ,
"https://dockerhub.icu" ,
"https://docker.ckyl.me" ,
"https://docker.awsl9527.cn"
]
配置 docker-compose.yml 和 config.json 文件 docker-compose.yml 是用于 Docker 容器内所需组件自动化下载安装配置的文件,config.json 是用于配置本地知识库所需要的大模型配置。
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
对于 docker-compose.yml 和 config.json 需要修改部分配置。
在修改配置前,如果你是使用 VSCode 的用户可以对 Wsl 进行功能扩展,使用 Vscode 进行文件新增和修改。在 Liunx 命令行(windows 运行 ubuntu 后出现的命令行窗口)中运行下面两条指令,确保 WSL Linux 发行版缺少启动 VS Code 服务器所需的库加入 Linux 发行版中。
sudo apt-get update
sudo apt-get install wget ca-certificates
运行结束后,在 Liunx 命令行运行 code . 命令,会自动下载相关组件后跳转 VSCode。就可以在 Linux 系统中新增和修改文件了,将 docker-compose.yml 和 config.json 两个配置文件拖入前面创建 fastgpt 文件夹中。
docker-compose.yml
mongo 需要找到 mongo 的配置位置,修改下载的版本。
将镜像版本改为 5.0.18,如果 Docker 中配置的本地镜像失效,可以使用阿里云的本地镜像。
fastgpt 需要找到 fastgpt 的配置位置,修改下面内容。
- OPENAI_BASE_URL=http://host.docker.internal:3001/v1
修改 CHAT_API_KEY,这里填写后续在 OneApi 中设置的秘钥。
one api 如果使用 latest 版本报错 403,xxx 向量模型没有权限 403,就修改下版本为早一点的版本。v0.6.4。
config.json llmModels 是本地使用的大模型名称,需要与 OpenAI 中标准名一致,可以在 Windows CMD 命令行窗口中输入 ollama list,查询 ollama 中的模型,里面提供的则是模型标准名。
vectorModels 是本地使用的向量模型名称。
安装构建所需的镜像 在 Linux 命令行(windows 运行 ubuntu 后出现的命令行窗口)中输入 cd fastgpt 命令打开 docker-compose.yml 文件所在文件夹。
使用 ls 查看文件夹下所有的文件,确认是否有 docker-compose.yml 和 config.json 文件。
在 Linux 命令行中输入 docker-compose up 后,Docker 开始使用 docker-compose 文件自动装配需要的镜像,待出现下面情况表示镜像装配完成并运行。
还可以通过 Docker Desktop 查看镜像运行情况。
这里可能会出现 MySql 启动失败的情况,并且报错显示端口已被占用。可以在任务管理器 -> 进程中搜索 mysql,将当前进程停止,再重新运行 docker-compose up 指令。
每次修改完配置文件保存后都需要重新运行 docker-compose up 指令。
配置本地大模型及知识库搭建
OneApi 配置 前端的 FastGpt 和后端的大模型、向量模型等都是通过 OneApi 进行桥接的。所以需要在 OneApi 上进行相应的配置。
大模型配置
在浏览器中访问 localhost:3001(docker-compose 文件中映射的端口)进入 OneApi 主页。选择渠道 -> 添加新的渠道来新增大模型访问渠道。
进入渠道页面后,进行配置:
类型:因为我们使用 Ollama 管理大模型,这里直接选择 Ollama。
名称:自行定义。
分组:可以直接使用默认。
模型:先清除所有模型,如果在下拉列表中没有你使用的模型类型,则在自定义模型中,填入模型名称(前面在 ollama list 中查询的模型名称)。
模型重定向:暂时可不做修改。
秘钥:先填写 1234,后续在令牌中设定秘钥后,填写过来。
代理:填写 http://host.docker.internal:11434,这个是 Docker 内部访问外部的地址。特别要注意 host.docker.internal 是一个开发功能,只在 Docker Desktop 有效。
填写完成后提交。
进入令牌界面,新增令牌。
名称:自行定义。
模型范围:不需要限定模型的话可以不做填写。
IP 限制:不需要限定 IP 的话可以不做填写。
过期时间:选择 永不过期。
额度:选择 设为无限额度。
设置完成后进行提交。
回到令牌界面,在操作栏中复制刚刚设置的令牌。将其中填入前面新增的大模型渠道的秘钥中后提交。
在渠道界面对配置好的渠道进行测试,出现测试成功的弹窗,这样 OneApi 就配置完成了。
此时不能掉以轻心,还需要回去填一个坑。在 docker-compose 文件的 FastGPT 中需要设置刚刚配置好的秘钥,这样 FastApi 才能够通过 OneApi 访问本地大模型。
向量模型配置 操作方法一致但不需要密钥配置环节,所以在创建渠道时,可以直接将秘钥设为 1234。
进行测试时提示 400 错误,不用担心,是正常的,说明通信成功。
FastGPT 配置
在浏览器中访问 localhost:4000 进入 FastGpt 主页。默认账号:root 密码:1234
登录进入 FastGpt 后,先创建知识库。
知识库创建完成后,对知识库导入相应的知识库数据。一共有三种方式:
手动数据集:直接将相应的知识一条一条录入。
文本数据集:可以通过上传文件,网页等方式导入信息。
表格数据集:根据 fasGpt 给出的 CVS 模板将知识录入表格后上传。
这里我们使用文本数据集的方式导入一份文件。
文件可以通过三种方式进行拆分:
直接拆分:将文本按一定规则进行拆分。(直接用这个)
增强处理:通过子索引以及模型生成相关问题和摘要。(商业版)
问答拆分:将文本按一定规则进行拆分,并通过 Ai 生成问答对。(商业版)
文章生成索引对,可以通过搜索测试检测知识库导入情况。
知识库导入成功后,就可以根据知识库搭建实时库问答式平台。
选定需要的大模型,选定需要关联的知识库。
在参数配置中选择全文检索。如果使用语义检索只会检索与问题相关向量片段,在通过 Ai 增强生成答案,大模型不需要知道整篇文章的内容,速度快,但生成的答案相对没那么准确。
在调试预览中对大模型进行提问,生成答案。因为配置问题生成答案的速度较慢。
测试无问题后,选择发布,就可以在聊天选项卡中进行聊天。
扩展 希望查询的结果更加的准确,则可以添加结果重排功能。需要再 OneApi 中增加 Reranker 模型,在 FastGpt 中勾选结果重排功能。
使用结果重排需要消耗更多性能,搜索时间加长,属于是使用性能和时间换准确性。
外网访问本地知识库 使用 Ngrok 工具实现内网穿透,让用户可以通过 Ngrok 提供的地址通过外网访问本地知识库,且本地知识库需要保持运行状态。此方法并非完全安全,可选择使用。
安装 Chocolatey Chocolatey 是一种软件包管理解决方案,可以通过 PowerShell 命令行安装软件。在 Windows 操作系统上实现从安装到升级和卸载的整个软件生命周期的自动化。
使用管理员权限打开 PowerShell 并运行下面的命令:
$env:ChocolateyInstall = 'D:\Chocolatey'
[Environment]::SetEnvironmentVariable('ChocolateyInstall', $env:ChocolateyInstall, 'Machine')
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco -v
安装 Ngrok 使用管理员身份运行 Windows 命令提示符窗口,在命令行中运行下方指令运行结束后,安装完成。
安装完成后,还需要在 Ngrok 官网申请一个身份令牌,先注册一个 Ngrok 账号。
登录账号,在 Your Authtoken 中的 CommandLine,(特别重要)选择 Show Authtoken,命令行中的代码才会显示你的用户 token 此时复制命令,在 Windows CMD 命令行窗口中运行。
运行结束后,在 Windows CMD 命令行窗口中运行以下命令,也就是给本地 fastGpt 生成可在外网访问的地址。
ngrok http http://localhost:4000
运行结束后显示外网地址,就可以通过当前地址访问本地的知识库了。
总结与硬件建议 以上就是使用本地部署大模型构建本地知识库的完整方法。示例项目使用的设备配置为:
CPU : AMD Ryzen 7 4800H
GPU: NVIDIA GeForce RTX 2060 Max-Q (显存 6G)
内存:16G
运行 Llama3.1 8B 模型
整体来说还是比较吃力的,如果需要流畅运行内存、显存及显卡性能还得提高。
常见问题排查
端口冲突 :如果 Docker 启动时报错端口被占用,请检查任务管理器中是否有 MySQL 或其他服务占用了对应端口,结束进程后重试。
模型加载慢 :本地部署大模型受限于硬件,推理速度可能较慢。建议优先使用量化模型(如 GGUF 格式),或在配置中调整并发数。
向量检索不准 :检查向量模型是否匹配,BGE 系列模型通常效果较好。若检索结果不佳,尝试调整切片大小或开启重排序(Rerank)功能。
WSL 网络问题 :在 WSL 中拉取镜像若速度慢,请配置好 Docker 镜像加速器,并确保 WSL 网络模式正常。
OneAPI 连接失败 :确认 OPENAI_BASE_URL 指向正确,且 CHAT_API_KEY 已在 FastGPT 配置中同步更新。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online