WeKnora知识库问答系统一键部署教程:基于Docker的快速搭建指南
WeKnora知识库问答系统一键部署教程:基于Docker的快速搭建指南
1. 引言
你是不是经常遇到这样的情况:公司内部文档散落在各个角落,想要查找某个技术方案或者产品说明时,需要翻遍无数个文件夹?或者作为开发者,你想为自己的项目搭建一个智能问答系统,但又被复杂的部署流程劝退?
今天我要介绍的WeKnora,正是为了解决这些问题而生的。这是一个基于大语言模型的文档理解与语义检索框架,专门处理结构复杂、内容多样的文档场景。最棒的是,它支持Docker一键部署,哪怕你不是运维专家,也能快速搭建起属于自己的知识库系统。
我在实际部署过程中发现,虽然官方文档已经比较详细,但还是会遇到一些坑。比如端口冲突、数据库初始化失败等问题。这篇文章就是把我踩过的坑和解决方案都分享出来,让你能够真正实现"一键部署"。
2. 环境准备与系统要求
在开始之前,我们先确认一下系统环境。WeKnora支持在大多数Linux发行版上运行,我这里以Ubuntu 20.04为例进行说明。
2.1 系统要求
最低配置:
- CPU:4核以上(建议8核)
- 内存:8GB(建议16GB)
- 存储:50GB可用空间
- 系统:Linux(Ubuntu/CentOS等)
软件依赖:
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y curl wget git docker.io docker-compose
2.2 Docker环境检查
确保Docker和Docker Compose已正确安装:
# 检查Docker版本
docker --version
# 输出:Docker version 20.10.17, build 100c701
# 检查Docker Compose版本
docker-compose --version
# 输出:docker-compose version 1.29.2, build unknown
# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker
如果还没有安装Docker,可以使用以下命令快速安装:
# 一键安装Docker
curl -fsSL https://get.docker.com | sh
3. 快速部署步骤
3.1 获取项目代码
首先把WeKnora的代码克隆到本地:
# 创建项目目录
mkdir -p ~/weknora && cd ~/weknora
# 克隆项目代码
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora
如果网络环境访问GitHub较慢,也可以使用国内镜像源:
# 使用国内镜像加速
git clone https://gitee.com/mirrors/weknora.git
3.2 配置环境变量
WeKnora使用环境变量文件来管理配置,我们先复制示例文件:
# 复制环境变量模板
cp .env.example .env
现在编辑.env文件,配置关键参数:
# 使用nano编辑器修改配置
nano .env
需要重点关注以下几个配置项:
# 前端服务端口(默认8081,如果冲突可以修改)
FRONTEND_PORT=8081
# 后端API端口(默认8080)
BACKEND_PORT=8080
# 数据库配置
POSTGRES_PORT=5432
POSTGRES_PASSWORD=your_secure_password_here
# Ollama配置(如果你已经部署了Ollama)
OLLAMA_HOST=your_ollama_host
特别注意:如果系统上已经运行了PostgreSQL服务,需要修改POSTGRES_PORT避免端口冲突。
3.3 启动所有服务
配置完成后,使用提供的脚本一键启动所有服务:
# 赋予脚本执行权限
chmod +x scripts/start_all.sh
# 启动所有服务
./scripts/start_all.sh
这个过程可能会花费一些时间,因为需要拉取多个Docker镜像并初始化数据库。耐心等待直到看到所有容器都正常启动。
3.4 验证服务状态
启动完成后,检查各个容器的运行状态:
# 查看所有容器状态
docker ps
# 应该看到类似这样的输出
# CONTAINER ID IMAGE STATUS PORTS
# a1b2c3d4e5f6 weknora-app:latest Up 5 minutes 0.0.0.0:8080->8080/tcp
# b2c3d4e5f6g7 weknora-db:latest Up 5 minutes 0.0.0.0:5432->5432/tcp
# c3d4e5f6g7h8 weknora-ui:latest Up 5 minutes 0.0.0.0:8081->80/tcp
4. 常见问题与解决方案
在部署过程中,你可能会遇到一些常见问题。这里我整理了实际遇到的情况和解决方法。
4.1 端口冲突问题
问题现象:启动时提示端口已被占用
解决方案:
# 查看端口占用情况
sudo netstat -tulpn | grep :5432
# 如果确实被占用,修改.env文件中的端口配置
# 比如将POSTGRES_PORT=5432改为POSTGRES_PORT=5433
4.2 数据库初始化失败
问题现象:服务启动后无法创建知识库
解决方案:
# 进入数据库容器检查表结构
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
# 再次检查表结构
docker exec -it weknora-postgres psql -U postgres -d weknora -c "\dt"
4.3 容器启动失败
问题现象:某个容器不断重启
解决方案:
# 查看容器日志定位问题
docker logs weknora-app
# 如果是内存不足,尝试增加swap空间
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
5. 首次使用与配置
服务启动成功后,打开浏览器访问 http://你的服务器IP:8081。
5.1 初始化账号
第一次访问会跳转到注册页面:
- 点击"立即注册"
- 填写用户名、邮箱和密码
- 使用邮箱登录系统
5.2 配置模型服务
登录后首先需要配置AI模型:
- LLM大模型配置:选择你已有的模型,如Qwen、DeepSeek等
- Embedding模型:建议选择专门的嵌入模型以获得更好效果
- 其他设置:保持默认或根据需求调整
5.3 创建知识库
点击右上角"新建知识库":
- 输入知识库名称和描述
- 选择适合的配置模板
- 上传文档文件(支持PDF、Word、TXT等格式)
6. 实际使用体验
部署完成后,我测试了几个典型的使用场景:
文档问答:上传技术文档后,能够准确回答基于文档内容的问题 多轮对话:支持上下文关联的连续提问,适合深度分析 检索效果:混合检索策略确实比单纯的关键词搜索更智能
资源占用方面,不包括Ollama服务的情况下:
- 内存占用:约1.3GB
- CPU占用:日常使用在5-15%之间
- 存储占用:取决于文档数量和大小
7. 总结
整体来看,WeKnora的Docker部署确实做到了相对简单的一键式体验。虽然过程中可能会遇到一些小问题,但都有相应的解决方案。这个系统特别适合需要搭建企业内部知识库的中小团队,既保证了数据隐私,又提供了智能的问答能力。
部署成功后,你会发现维护成本并不高。系统运行稳定,日常只需要关注存储空间和模型服务的运行状态。如果你正在寻找一个可私有化部署的知识库解决方案,WeKnora绝对值得一试。
最后提醒一点,虽然本文提供了详细的部署指南,但每个实际环境可能都有所不同。如果遇到文中没有覆盖的问题,建议查看项目的GitHub Issues页面,或者加入开发者社区寻求帮助。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐
所有评论(0)