WeKnora与Ollama集成:本地大模型部署方案
1. 引言
你是不是经常遇到这样的情况:公司内部有大量技术文档、产品手册、客户资料,但当你想快速找到某个具体问题的答案时,却像大海捞针一样困难?或者你担心把敏感数据上传到云端会有隐私泄露的风险?
今天我要介绍的WeKnora与Ollama集成方案,正好能解决这些问题。WeKnora是腾讯开源的一款智能知识库框架,而Ollama则是本地运行大模型的利器。把它们俩结合起来,你就能在本地搭建一个完全私有的智能问答系统,既安全又高效。
我自己在实际部署过程中发现,这个组合用起来真的很方便,不需要太多技术背景就能搞定。接下来我会手把手带你完成整个部署过程,让你也能拥有一个属于自己的智能知识库。
2. 准备工作
2.1 硬件和软件要求
在开始之前,我们先看看需要准备些什么。其实要求并不高,大多数现代电脑都能满足:
- 内存:建议至少16GB,8GB也能跑但可能会比较卡
- 存储:至少20GB可用空间,用于存放模型和文档
- 系统:支持Windows、macOS和Linux
- Docker:需要提前安装好Docker和Docker Compose
如果你用的是飞牛NAS或者其他NAS设备,那更合适了,可以24小时运行不关机。
2.2 Ollama的安装和配置
首先我们来安装Ollama,这是整个方案的核心引擎:
# 在Linux/macOS上安装 curl -fsSL https://ollama.ai/install.sh | sh # 在Windows上可以直接下载安装包 # 访问 https://ollama.ai/download 下载exe文件安装 # 安装完成后,测试一下是否正常 ollama --version安装好后,我们来下载一个适合的模型。考虑到硬件资源,我建议先从较小的模型开始:
# 下载Qwen2.5-7B模型,这个模型效果不错而且资源占用相对较小 ollama pull qwen2.5:7b # 如果你想试试更大的模型,可以下载14B版本 # ollama pull qwen2.5:14b模型下载完成后,用这个命令测试一下是否正常工作:
# 测试模型 ollama run qwen2.5:7b "你好,请介绍一下你自己"如果能看到模型正常回复,说明Ollama已经配置好了。
3. WeKnora的部署
3.1 获取WeKnora代码
现在我们来部署WeKnora,这是我们的知识库管理系统:
# 创建项目目录 mkdir -p ~/weknora && cd ~/weknora # 克隆WeKnora代码 git clone https://github.com/Tencent/WeKnora.git # 进入项目目录 cd WeKnora3.2 环境配置
WeKnora使用环境变量文件来配置各种参数,我们需要根据实际情况进行调整:
# 复制环境变量模板 cp .env.example .env # 编辑配置文件 nano .env # 或者用你喜欢的文本编辑器重点需要修改这几个配置:
# Ollama配置(确保这个地址能访问到你的Ollama服务) OLLAMA_BASE_URL=http://host.docker.internal:11434 # Docker内部访问地址 # 或者直接用服务器IP:http://192.168.1.100:11434 # 数据库配置(如果端口冲突需要修改) POSTGRES_PORT=5433 # 默认5432如果被占用就改成5433 # 前端端口(默认8081,可以按需修改) APP_PORT=80813.3 启动服务
配置完成后,我们就可以启动所有服务了:
# 使用脚本启动所有服务 ./scripts/start_all.sh # 或者使用make命令 make start-all第一次启动会需要一些时间,因为要下载和构建多个Docker镜像。你可以用这个命令查看启动状态:
# 查看容器状态 docker ps # 查看日志 docker compose logs -f等到所有容器都正常启动后,我们就可以进行下一步了。
4. 系统初始化配置
4.1 访问Web界面
在浏览器中输入你的服务器地址和端口,比如http://localhost:8081或者http://你的服务器IP:8081,就能看到WeKnora的登录界面。
第一次使用需要先注册账号:
- 点击"立即注册"
- 填写用户名、邮箱和密码
- 完成注册后用邮箱登录
4.2 模型配置
登录成功后,首先需要配置模型设置:
点击右上角的"系统设置"
选择"模型配置"
配置LLM大语言模型:
- 选择Ollama作为模型提供商
- 选择你之前下载的qwen2.5:7b模型
- 测试连接是否正常
配置Embedding模型:
- 可以选择nomic-embed-text或者bge-small-zh
- 这些模型会自动下载
保存配置
4.3 创建知识库
现在我们来创建第一个知识库:
# 如果遇到知识库创建失败的问题,可能需要手动初始化数据库 # 先检查现有表 docker exec -it weknora-postgres psql -U postgres -d weknora -c "\dt" # 如果表不全,执行初始化脚本 docker exec -i weknora-postgres psql -U postgres -d weknora -f /docker-entrypoint-initdb.d/00-init-db.sql然后在Web界面中:
- 点击"新建知识库"
- 输入知识库名称和描述
- 选择知识库类型(文档型或FAQ型)
- 配置检索参数(可以用默认值)
- 创建知识库
5. 使用你的智能知识库
5.1 上传文档
创建好知识库后,就可以上传文档了:
- 进入刚创建的知识库
- 点击"上传文档"
- 选择要上传的文件(支持PDF、Word、TXT、Markdown等格式)
- 等待系统处理完成
处理时间取决于文档大小和复杂度,一般几分钟就能完成。
5.2 智能问答
文档处理完成后,就可以开始问答了:
- 在问答界面输入你的问题
- 系统会从上传的文档中查找相关信息
- 生成基于文档内容的准确回答
试试问一些具体的问题,比如:"我们产品的定价策略是什么?"或者"技术支持的联系方式是什么?"
5.3 多轮对话
WeKnora支持多轮对话,你可以像跟真人交流一样持续提问:
用户:我们产品有哪些主要功能? 系统:(列出功能列表) 用户:这些功能的技术实现原理是什么? 系统:(针对每个功能详细解释)这种连续对话能力让知识检索更加自然和高效。
6. 常见问题解决
在实际使用中可能会遇到一些问题,这里我分享一些常见问题的解决方法:
6.1 容器启动失败
如果容器启动失败,首先检查日志:
# 查看具体容器的日志 docker logs weknora-app docker logs weknora-postgres # 常见的端口冲突解决方法 # 修改.env文件中的端口配置,然后重启服务6.2 模型连接问题
如果Ollama模型无法连接:
# 在容器内部测试连接 docker exec -it weknora-app curl http://host.docker.internal:11434/api/tags # 如果无法连接,检查Ollama是否正常运行 # 确保在.env中配置了正确的Ollama地址6.3 文档处理失败
如果文档上传后处理失败:
- 检查文档格式是否支持
- 查看文档大小是否超过限制(默认PDF<10MB,TXT<200KB)
- 查看处理日志:
docker logs weknora-docreader
7. 进阶配置和优化
7.1 性能优化
如果你的硬件资源有限,可以进行这些优化:
# 在.env文件中添加资源限制 OLLAMA_NUM_GPU=0 # 如果不使用GPU OLLAMA_NUM_PARALLEL=1 # 减少并行处理数 # 使用更小的模型 # 比如qwen2.5:3b或者gemma:2b7.2 自定义模型
你还可以使用其他Ollama支持的模型:
# 下载其他模型 ollama pull llama3.2:1b ollama pull gemma:2b # 在WeKnora配置中选择这些模型7.3 备份和恢复
定期备份你的知识库数据:
# 备份数据库 docker exec weknora-postgres pg_dump -U postgres weknora > backup.sql # 恢复数据库 cat backup.sql | docker exec -i weknora-postgres psql -U postgres weknora8. 总结
整体用下来,WeKnora和Ollama的集成方案确实很不错,部署过程比想象中要简单很多。最让我满意的是整个系统都在本地运行,完全不用担心数据隐私问题。
效果方面,对于企业内部文档的问答和检索,准确率已经相当不错了。当然,如果文档特别多或者问题特别复杂,可能还需要进一步优化配置。但对于大多数场景来说,这个方案已经足够用了。
如果你正在寻找一个既安全又易用的本地知识库解决方案,我强烈建议你试试这个组合。从下载到部署完成,快的话半个小时就能搞定。一旦搭建好,你会发现查找内部文档和信息变得如此简单,再也不用在成百上千个文件中盲目搜索了。
记得刚开始的时候从小规模试起,先上传一些重要的文档试试效果,熟悉了之后再逐步扩大使用范围。遇到问题也不用担心,WeKnora的社区挺活跃的,基本上常见问题都能找到解决方案。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。