WeKnora知识库问答系统一键部署教程:基于Docker的快速搭建指南

1. 开篇:为什么选择WeKnora?

如果你正在寻找一个能理解文档内容、能智能问答、还能保护数据隐私的知识库系统,WeKnora值得一试。这个基于大语言模型的文档理解框架,能让你的PDF、Word、图片等文档"活起来",变成随时可问的智能助手。

最棒的是,用Docker部署WeKnora真的非常简单。不需要深厚的技术背景,跟着本教程一步步操作,半小时内就能搭建起属于自己的智能知识库系统。无论是企业内部的文档管理,还是个人学习资料整理,WeKnora都能让知识检索变得像聊天一样自然。

2. 环境准备:确保一切就绪

在开始部署之前,我们先检查一下基础环境。虽然WeKnora的Docker部署已经很简化了,但还是需要一些前置条件。

2.1 系统要求

WeKnora对硬件的要求相对亲民:

  • 内存:建议8GB以上,4GB也能运行但可能比较吃力
  • 存储:至少10GB可用空间,用于存放文档和向量数据
  • CPU:现代多核处理器即可,不需要特别强大的GPU

2.2 软件依赖

确保你的系统已经安装:

  • Docker:版本20.10.0或更高
  • Docker Compose:版本2.0.0或更高
  • Git:用于克隆项目代码

检查Docker是否安装成功:

docker --version
docker-compose --version

如果看到版本号输出,说明环境准备就绪。如果还没安装Docker,可以去官网下载对应版本的安装包。

3. 快速部署:四步搭建WeKnora

现在开始正式的部署过程,整个过程比想象中要简单得多。

3.1 第一步:获取项目代码

首先把WeKnora的代码克隆到本地:

# 创建项目目录
mkdir -p ~/weknora && cd ~/weknora

# 克隆代码仓库
git clone https://github.com/Tencent/WeKnora.git
cd WeKnora

这个命令会在当前用户目录下创建weknora文件夹,并把最新的代码下载下来。

3.2 第二步:配置环境变量

WeKnora使用环境变量文件来管理配置,我们需要复制示例文件并做适当修改:

# 复制环境配置示例文件
cp .env.example .env

# 编辑配置文件
nano .env  # 或者使用你喜欢的文本编辑器

在配置文件中,有几个关键参数可能需要调整:

# 前端服务端口(默认8081,如果冲突可以修改)
FRONTEND_PORT=8081

# 后端API端口(默认8080)
BACKEND_PORT=8080

# 数据库端口(如果5432被占用可以修改)
POSTGRES_PORT=5432

# Ollama配置(如果你有本地Ollama服务)
OLLAMA_HOST=你的Ollama地址

对于大多数初次使用的用户,保持默认配置即可。保存文件后退出编辑器。

3.3 第三步:启动所有服务

这是最简单的一步,一行命令启动所有服务:

# 使用脚本启动所有服务
./scripts/start_all.sh

这个脚本会自动完成以下工作:

  1. 拉取所需的Docker镜像
  2. 创建网络和卷
  3. 启动数据库、后端、前端等所有服务
  4. 初始化数据库结构

第一次运行时会下载镜像,需要一些时间(取决于网络速度)。完成后你会看到所有容器都正常启动的提示。

3.4 第四步:验证部署状态

检查服务是否正常启动:

# 查看容器运行状态
docker ps

# 应该看到类似下面的输出
# CONTAINER ID   IMAGE                PORTS                    NAMES
# xxxxxxxxxxxx   weknora-app:latest   0.0.0.0:8080->8080/tcp   weknora-app
# xxxxxxxxxxxx   weknora-web:latest   0.0.0.0:8081->80/tcp     weknora-web
# xxxxxxxxxxxx   postgres:15          0.0.0.0:5432->5432/tcp   weknora-postgres

如果所有容器都处于"Up"状态,说明部署成功!

4. 常见问题与解决方案

在部署过程中可能会遇到一些小问题,这里列出几个常见的解决方法。

4.1 端口冲突问题

如果发现端口被占用,有两种解决方式:

方法一:修改配置文件 编辑.env文件,修改冲突的端口号:

# 修改为其他可用端口
FRONTEND_PORT=8082
BACKEND_PORT=8083
POSTGRES_PORT=5433

方法二:停止占用端口的服务 查找并停止占用端口的进程:

# 查找占用8080端口的进程
lsof -i :8080

# 停止相关进程
kill -9 <进程ID>

4.2 数据库初始化失败

有时候数据库表没有正确创建,可以手动初始化:

# 进入数据库容器
docker exec -it weknora-postgres psql -U postgres -d weknora

# 执行初始化脚本
\i /docker-entrypoint-initdb.d/00-init-db.sql

# 退出数据库
\q

4.3 容器启动失败

如果某个容器启动失败,可以查看具体日志:

# 查看应用服务日志
docker logs weknora-app

# 查看数据库日志  
docker logs weknora-postgres

# 查看前端日志
docker logs weknora-web

根据日志输出调整配置后,重新启动服务:

./scripts/start_all.sh --stop
./scripts/start_all.sh

5. 首次使用指南

服务启动成功后,打开浏览器访问 http://你的服务器IP:8081 就能看到WeKnora的界面了。

5.1 初始化设置

第一次访问时会进入初始化页面:

  1. 注册账号:填写用户名、邮箱和密码
  2. 配置模型:选择或配置LLM大语言模型(支持Ollama本地模型或远程API)
  3. 设置嵌入模型:配置文本向量化模型
  4. 完成初始化:保存配置后进入主界面

5.2 创建第一个知识库

点击右上角"新建知识库",填写基本信息:

  • 知识库名称:给你的知识库起个名字
  • 描述:简单描述这个知识库的用途
  • 类型选择:文档知识库或FAQ知识库

创建完成后上传你的文档,支持PDF、Word、TXT、Markdown等格式。

5.3 开始智能问答

上传文档后,系统会自动解析和建立索引。完成后就可以在问答界面提问了,WeKnora会基于你的文档内容给出准确回答,并标注答案来源。

6. 总结

整体用下来,WeKnora的Docker部署确实很友好,基本上跟着步骤走就能成功搭建。对于想要快速构建智能知识库的用户来说,这是一个不错的选择。部署过程中可能会遇到一些小问题,但大多都有明确的解决方法。

如果你刚开始接触这类系统,建议先从小规模试用开始,熟悉了整个流程后再考虑扩展到更复杂的场景。WeKnora的模块化设计也让后续的定制和扩展变得相对容易,可以根据实际需求调整各个组件的配置。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐