基于Spring Boot + React + deepSeek知识库系统搭建指南

我来为您详细介绍如何搭建这个知识库系统。

一、系统架构概览

这是一个基于 Spring Boot + React 的企业知识库系统,采用前后端分离架构:

前端 (React + TypeScript) ←→ 后端 (Spring Boot + H2) ←→ 数据库 (H2)
     ↑                              ↑
  用户界面                     业务逻辑 + API

图片

二、环境要求

必需软件
  • Java: JDK 8+ (推荐 JDK 11 或 17)

  • Node.js: 16+ (推荐 18+)

  • Maven: 3.6+ (用于后端构建)

  • Git: 用于版本控制

可选工具
  • IDE: IntelliJ IDEA, VS Code, Eclipse

  • 数据库工具: H2 Console (内置)

图片

三、 安装步骤

1. 克隆项目
git clone <your-repository-url>
cd company-knowledge-base
2. 后端环境准备
# 检查Java版本
java -version

# 检查Maven版本
mvn -version

# 进入后端目录
cd backend

# 清理并编译项目
mvn clean compile

# 启动后端服务
mvn spring-boot:run
3. 前端环境准备
# 新开一个终端,进入前端目录
cd frontend

# 安装依赖
npm install

# 启动前端服务
npm start

⚙️ 配置说明

后端配置 (backend/src/main/resources/application.properties)
# 服务器配置
server.port=8080

# 数据库配置 (H2内存数据库)
spring.datasource.url=jdbc:h2:file:./knowledgebase
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password

# JPA配置
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

# H2控制台
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

# 文件上传配置
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=50MB

# AI服务配置
deepseek.api.url=https://api.deepseek.com/v1
deepseek.api.key=${DEEPSEEK_API_KEY:your-api-key}
deepseek.model=deepseek-chat

# Embedding配置 (可选)
embeddings.enabled=false
前端配置 (frontend/src/services/api.ts)
// API基础URL配置
const api = axios.create({
  baseURL: 'http://localhost:8080',  // 后端服务地址
  headers: {
    'Content-Type': 'application/json',
  },
});

四、 启动流程

完整启动命令
# 终端1: 启动后端
cd backend
mvn spring-boot:run

# 终端2: 启动前端
cd frontend
npm start
验证服务状态
# 检查后端 (端口8080)
curl http://localhost:8080/api/documents

# 检查前端 (端口3000)
curl http://localhost:3000

图片

五、系统功能模块

1. 文档管理模块
  • 文档上传: 支持多种格式 (PDF, DOCX, TXT等)

  • 文档列表: 分页显示,支持搜索

  • 文档详情: 查看文档内容和元数据

  • 文档删除: 安全删除文档

2. 知识索引模块
  • 自动解析: 使用Apache Tika解析文档内容

  • 智能分割: 将长文档分割成知识条目

  • 向量存储: 支持语义搜索 (可选)

3. 知识问答模块
  • 智能问答: 基于知识库内容回答问题

  • 多轮对话: 支持上下文对话

  • 答案溯源: 显示答案来源

4. 搜索模块
  • 关键词搜索: 基于文档标题和内容

  • 语义搜索: 基于向量相似度 (可选)

  • 分类筛选: 按文档分类筛选

图片

六、自定义配置

修改数据库
# 使用MySQL
spring.datasource.url=jdbc:mysql://localhost:3306/knowledgebase
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=password

# 使用PostgreSQL
spring.datasource.url=jdbc:postgresql://localhost:5432/knowledgebase
spring.datasource.driverClassName=org.postgresql.Driver
启用Embedding功能
# 启用向量搜索
embeddings.enabled=true
embeddings.api.url=https://api.openai.com/v1/embeddings
embeddings.api.key=${OPENAI_API_KEY}
embeddings.model=text-embedding-3-small
修改端口
# 后端端口
server.port=9090

# 前端端口 (在package.json中)
"scripts": {
  "start": "PORT=3001 react-scripts start"
}

📁 项目结构

company-knowledge-base/
├── backend/                    # 后端项目
│   ├── src/main/java/
│   │   └── com/company/knowledgebase/
│   │       ├── controller/     # REST API控制器
│   │       ├── service/        # 业务逻辑服务
│   │       ├── model/          # 数据模型
│   │       ├── repository/     # 数据访问层
│   │       └── config/         # 配置类
│   ├── src/main/resources/
│   │   └── application.properties
│   └── pom.xml
├── frontend/                   # 前端项目
│   ├── src/
│   │   ├── components/         # React组件
│   │   ├── pages/             # 页面组件
│   │   ├── services/          # API服务
│   │   └── App.tsx
│   ├── package.json
│   └── tsconfig.json
└── README.md

七、 使用流程

1. 文档上传
  1. 访问 http://localhost:3000

  2. 点击"上传文档"

  3. 选择文件,填写元数据

  4. 点击上传

2. 文档索引
  1. 在文档列表中找到未索引的文档

  2. 点击"索引"按钮

  3. 系统自动生成知识条目

3. 知识问答
  1. 点击"知识问答"

  2. 输入问题

  3. 系统基于知识库回答

图片

八、 故障排除

常见问题
  1. 端口冲突

    # 检查端口占用
    lsof -i :8080
    lsof -i :3000
    
    # 修改端口配置
    
  2. 数据库连接失败

    # 检查H2数据库文件
    ls -la backend/knowledgebase.mv.db
    
    # 重新创建数据库
    rm backend/knowledgebase.mv.db
    
  3. 前端依赖问题

    cd frontend
    rm -rf node_modules package-lock.json
    npm install
    
  4. 后端编译错误

    cd backend
    mvn clean
    mvn compile
    

九、性能优化

生产环境配置
# 数据库连接池
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5

# JPA性能
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.jdbc.batch_size=20

# 缓存配置
spring.cache.type=caffeine
前端优化
// package.json
{
  "scripts": {
    "build": "GENERATE_SOURCEMAP=false react-scripts build"
  }
}

十、部署建议

开发环境
  • 使用H2内存数据库

  • 启用详细日志

  • 开启H2控制台

生产环境
  • 使用MySQL/PostgreSQL

  • 配置反向代理 (Nginx)

  • 启用HTTPS

  • 配置监控和日志

📞 技术支持

如果遇到问题,可以:

  1. 查看日志文件

  2. 检查配置文件

  3. 验证网络连接

  4. 确认依赖版本

系统已完全就绪,可以开始使用了! 🎉


许可证

本项目采用 MIT License 开源许可证, 项目源码需要商业付费。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端组件开发

你的钟意将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值