后端运行 - qKnow 开源版
一、准备工作 (必备环境)
在运行系统之前,请确保您已安装以下环境:
| 软件/工具 | 版本要求 | 推荐版本 |
|---|---|---|
| >= 1.8 | 1.8 | |
| >= 5.7.0 | 5.7 | |
| 4.x | 4.4.40 | |
| >= 5.0 | 5.0 | |
| >= 3.6 | 3.6 | |
| >= 16 | 16 |
提示: 前端安装完
Node.js后,建议设置淘宝镜像源以提升依赖包下载速度。不推荐使用cnpm,可能会引入一些不可预知的问题。npm config set registry https://registry.npmmirror.com
二、获取项目代码 (下载与解压)
前往 【qKnow Gitee 下载页面】 下载项目并解压到您的工作目录。
三、目录结构
1. 项目结构;
├─qknow-framework # 公共配置模块
├─ ├─qknow-auth # oauth2模块
├─ ├─qknow-common # 共通模块
├─ ├─qknow-config # 配置模块
├─ ├─qknow-es # es模块
├─ ├─qknow-file # 文件管理模块
├─ ├─qknow-generator # 代码生成器
├─ ├─qknow-mybatis # mybatis配置
├─ ├─qknow-neo4j # neo4j数据库模块
├─ ├─qknow-pay # 支付模块
├─ ├─qknow-quartz # 定时任务模块
├─ ├─qknow-redis # redis模块
├─ ├─qknow-security # security模块
├─ ├─qknow-websocket # websocket模块
├─qknow-module-app # 知识应用模块
├─qknow-module-dm # 数据管理模块
├─qknow-module-ext # 知识抽取模块
├─qknow-module-kmc # 知识中心模块
├─qknow-module-system # 系统管理模块
├─qknow-server # 启动项目
├─qknow-ui # 前端模块
├─sql # sql脚本
├─README.md # 相关介绍
├─QUICKSTART.md # 快速启动2. 前端结构;
├─qknow-ui # 前端模块
├─ ├─public # 静态资源目录
├─ ├─src
├─ | ├─api # 接口
├─ | ├─assets # 图片、样式等资源
├─ | ├─components # 通用组件
├─ | ├─layout # 布局
├─ | ├─plugins # 插件
├─ | ├─router # 路由
├─ | ├─store # 状态管理
├─ | ├─utils # 工具类
├─ | ├─views # 页面视图
├─ | | ├─app # 知识应用模块
├─ | | ├─dm # 数据管理模块
├─ | | ├─ext # 知识抽取模块
├─ | | ├─kmc # 知识中心模块
├─ | | ├─system # 系统管理模块
├─ ├─.env.development # 开发环境配置
├─ ├─.env.production # 生产环境配置
├─ ├─vite.config.js # Vite配置文件四、必要配置 (数据库与服务配置)
1. 创建MySQL数据库并导入数据
- 创建 MySQL 数据库:
qknow_dev - 导入数据脚本:
qknow_20250522.sql、quartz.sql
2. 修改MySQL数据库连接配置
路径:qKnow/qknow-server/src/main/resources/application-dev.yml
datasource:
type: mysql
mysql:
driver-class-name: com.mysql.cj.jdbc.Driver
url: 数据库地址
username: 数据库账号
password: 数据库密码3. 创建Neo4j数据库并导入数据
- Neo4j版本要求4.4.x以上,推荐使用4.4.40版本。
- 由于Neo4j要求java 11以上环境,系统使用java 8版本运行,可能会导致Neo4j安装失败。所以我们推荐使用docker安装Neo4j,避免环境冲突问题。
- 如果您坚持使用本地部署Neo4j,请配置两套java环境分别运行Neo4j及qKnow。
步骤 1: 关闭Neo4j服务
- 进入Neo4j安装目录,在bin目录下,执行
./neo4j stop将服务关掉。
步骤 2: 导入数据库
- 进入Neo4j安装目录,在bin目录下,执行以下导入命令。
# 命令说明: --force 表示强制覆盖,database如果不存在,则创建新数据库。
# dump文件: sql/neo4j/neo4j.dump。 注:以下命令行中的路径请填写您的绝对路径。
./neo4j-admin load --from=dump文件路径 --database=您的数据库名称 --force- 进入Neo4j安装目录,在conf目录下,找到
neo4j.conf文件,修改数据库名称:dbms.default_database=您的数据库名称
Tips:若使用docker运行neo4j,发生停止主进程自动退出容器现象,可以修改容器启动方式,例如:通过使用 --init 参数,让主进程停止,容器不会立即退出。具体操作方式请自行百度或AI。
步骤 3: 启动Neo4j服务
- 进入Neo4j安装目录,在bin目录下,执行
./neo4j start启动服务
4. 修改Neo4j数据库连接配置
路径:qKnow/qknow-framework/qknow-neo4j/src/main/resources/application-neo4j-dev.yml
neo4j:
uri: 数据库地址
user: 数据库账号
password: 数据库密码5. 配置服务端口和访问路径
路径:qKnow/qknow-server/src/main/resources/application.yml
server:
port: 端口 # 默认为8090
servlet:
context-path: /应用路径 # 应用访问路径,默认为空五、知识抽取工具配置(DeepKE)(深度学习模型配置)
当前开源版本采用 开源中文知识图谱抽取框架开箱即用特别版DeepKE-cnSchema 作为知识抽取工具。请参考官方文档进行安装,推荐使用 Docker 安装。
Tips:我们基于DeepKE源码做了一些二开。如果你不想修改DeepKE源码,直接跳过当前步骤,可以到我们的交流群里,群文件中有已经修改好的镜像。下载后解压缩,直接使用docker命令加载镜像:
docker load -i deepke.tar
1、进入docker容器,替换容器内predict.py文件
docker容器内路径:DeepKE/example/triple/cnschema/predict.py
替换文件:qKnow/bin/DeepKE/predict.py
2、进入docker容器,替换容器内predict.yaml文件,并修改其中配置
docker容器内路径:DeepKE/example/triple/cnschema/conf/predict.yaml
替换文件:qKnow/bin/DeepKE/predict.yaml
text: 歌曲《人生长路》出自刘德华国语专辑《男人的爱》,由李泉作词作曲,2001年出行发版。
nerfp: 你的NER模型地址
refp: 你的RE模型地址
lm_file: 你的NER模型地址
num_hidden_layers: 1
type_rnn: LSTM
input_size: 768
hidden_size: 100
num_layers: 1
dropout: 0.3
bidirectional: true
last_layer_hn: true其中NER模型地址、RE模型地址,可在DeepKE提供的链接中进行下载。
注意:实体类型配置请参考以下DeepKE官网文档提供的类型,若需抽取其他类型,需重新训练模型。训练方式请参考 DeepKE 官方文档。

3、修改 DeepKE 执行脚本中的 docker容器id
路径:qKnow/bin/DeepKE/start.sh
#!/bin/bash
# DeepKE.sh
if [ $# -lt 1 ]; then
echo "Usage: $0 <text>"
exit 1
fi
TEXT="$1"
# 注意:此处请换成你的docker容器id
# 注意:建议在本地命令行中运行以下测试命令,保证能够成功执行predict.py文件。
# 测试命令:docker exec dabea2a436b6 python -u predict.py "text='歌手周杰伦创作了多首经典歌曲,如《稻香》,这首歌深受中国各地听众的喜爱。'"
docker exec dabea2a436b6 python -u predict.py "text='$TEXT'"友情提示:
DeepKE抽取依赖CPU、GPU性能,建议抽取的文件不宜过大,否则抽取时间会很长。
六、后端运行 (启动服务器)
- 使用 IntelliJ IDEA 或 Eclipse 导入项目。
- IDE 将自动加载 Maven 依赖,初次加载可能较慢。
- 运行
tech.qiantong.qknow.server.QKnowApplication.java。启动成功后,可通过http://localhost:8090访问后端服务。 - 出现以下提示,表示后端服务启动成功:
(♥◠‿◠)ノ゙ 千知平台启动成功 ლ(´ڡ`ლ)゙
_ __
__ _| |/ /_ __ _____ __
/ _` | ' /| '_ \ / _ \ \ /\ / /
| (_| | . \| | | | (_) \ V V /
\__, |_|\_\_| |_|\___/ \_/\_/
|_|注意: 仅启动后端服务不会显示静态页面,请继续部署前端服务。
Tips: 如果提示缺少依赖包aspose-words-java、aspose-cells-java时,需要将项目根目录下lib文件夹中的两个jar包引入,在项目根目录下运行如下两行代码:
mvn install:install-file -Dfile=lib/aspose-cells-21.8.cracked.jar -DgroupId=com.aspose-cells -DartifactId=aspose-cells-java -Dversion=21.8 -Dpackaging=jar
mvn install:install-file -Dfile=lib/aspose-words-15.8.0-jdk16.jar -DgroupId=com.aspose-words -DartifactId=aspose-words-java -Dversion=15.8.0 -Dpackaging=jar
完成!
