Spring AI 实战指南(三):从0到1打造企业级 AI 知识库项目(EduAgentX实战版)
2026/6/10 6:52:14 网站建设 项目流程

前言

标签:Spring AI、RAG、PGVector、Redis、DeepSeek、知识库、AI教育平台、Java项目实战
适用人群:Java开发工程师、AI应用开发者、应届生毕设、企业项目开发
项目名称:EduAgentX 智能教育知识库系统

前两篇文章我们已经掌握了:

  • Spring AI基础开发
  • ChatClient使用
  • Prompt工程
  • Embedding向量化
  • PGVector向量数据库
  • RAG检索增强生成
  • Tool Calling
  • Agent开发思想

但很多开发者学完之后仍然会有一个问题:

我知道这些概念,但不知道如何真正落地一个项目。

所以本篇文章直接以一个完整项目为例,带你从0到1搭建:

EduAgentX AI知识库系统

实现效果:

学生提问 ↓ AI检索课程资料 ↓ 结合知识库回答 ↓ 返回准确答案

而不是普通AI的:

我不知道

一、项目背景

假设我们开发一个在线教育平台。

目前已有:

用户系统 课程系统 考试系统 学习记录系统

学生经常提问:

什么是SpringMVC? Redis缓存穿透是什么? Java线程池有哪些参数? 我这次考试为什么成绩下降?

传统方式:

老师回答

问题:

成本高 效率低 无法24小时服务

于是增加:

AI学习助手

二、项目整体架构设计

整体架构如下:

Vue3 │ Spring Gateway │ ┌──────────┴──────────┐ │ │ 用户服务 AI知识库服务 │ Spring AI │ ┌─────────────┬─────────────┐ │ │ │ Redis PGVector DeepSeek │ MySQL

职责划分:

MySQL

存储:

用户 课程 考试 成绩

Redis

缓存:

用户信息 课程详情 热点问题 聊天记录

PGVector

存储:

知识库向量

DeepSeek

负责:

理解问题 生成答案

Spring AI

负责:

统一调用模型 向量检索 Prompt组装

三、数据库设计

用户表

CREATETABLEsys_user(idBIGINTPRIMARYKEY,usernameVARCHAR(50),passwordVARCHAR(100),create_timeDATETIME);

课程表

CREATETABLEcourse(idBIGINTPRIMARYKEY,course_nameVARCHAR(100),teacher_nameVARCHAR(50),descriptionTEXT);

AI聊天记录表

CREATETABLEai_chat_record(idBIGINTPRIMARYKEY,user_idBIGINT,questionTEXT,answerTEXT,create_timeDATETIME);

知识库文档表

CREATETABLEknowledge_document(idBIGINTPRIMARYKEY,titleVARCHAR(255),contentLONGTEXT,statusTINYINT,create_timeDATETIME);

四、知识库文档上传设计

企业项目中知识来源:

PDF Word Markdown Excel TXT 网页内容

例如上传:

Java面试宝典.pdf

后台接口:

@PostMapping("/upload")publicResultupload(MultipartFilefile){returnknowledgeService.upload(file);}

处理流程:

上传文件 ↓ 解析内容 ↓ 切片 ↓ 向量化 ↓ 存入PGVector

五、文档切片(Chunk)

很多新人直接把:

100页PDF

发送给大模型。

这是错误的。


原因:

Token限制。


正确方式:

切片

例如:

Java线程池 核心线程数 最大线程数 阻塞队列

切成:

Chunk1 Chunk2 Chunk3

每块:

300~500字

最佳。


Spring AI支持:

TokenTextSplitter

代码:

TokenTextSplittersplitter=newTokenTextSplitter();List<Document>docs=splitter.apply(List.of(document));

结果:

一个文档 ↓ 多个Chunk

六、Embedding向量化

切片后:

文字

模型无法检索。


需要:

向量化

注入:

@AutowiredprivateEmbeddingModelembeddingModel;

执行:

EmbeddingResponseresponse=embeddingModel.call(newEmbeddingRequest(List.of(content),EmbeddingOptionsBuilder.builder().build()));

结果:

Java线程池 ↓ [0.11,0.35,0.77...]

七、接入PGVector

Maven依赖

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-pgvector-store</artifactId></dependency>

配置

spring:datasource:url:jdbc:postgresql://localhost:5432/eduagentx

存储向量

vectorStore.add(List.of(newDocument(content)));

数据库:

内容 + 向量

同时保存。


八、用户提问流程

学生输入:

什么是Redis缓存穿透?

系统执行:

问题 ↓ Embedding ↓ 向量搜索 ↓ 获取相关文档 ↓ 构造Prompt ↓ 调用DeepSeek ↓ 返回答案

九、核心RAG代码实现

查询知识:

List<Document>docs=vectorStore.similaritySearch(question);

获取:

Redis缓存穿透 Redis布隆过滤器 Redis缓存击穿

相关内容。


构造Prompt:

Stringprompt=""" 你是一名Java高级讲师。 请根据以下知识回答: %s 用户问题: %s """.formatted(docs.toString(),question);

调用模型:

Stringanswer=chatClient.prompt(prompt).call().content();

返回:

缓存穿透指...

十、聊天记忆实现

普通聊天:

问一次 忘一次

用户:

我叫张三

下一句:

我叫什么?

AI不知道。


解决:

Chat Memory

Redis存储:

user:1001:chat

格式:

[{"role":"user","content":"我叫张三"},{"role":"assistant","content":"好的"}]

Spring AI支持:

MessageChatMemoryAdvisor

配置:

Advisoradvisor=newMessageChatMemoryAdvisor(chatMemory);

效果:

连续对话

实现。


十一、热点问题缓存优化

例如:

学生频繁提问:

什么是SpringMVC? 什么是Redis?

每次都调用模型。

成本极高。


方案:

Redis缓存。


Key:

ai:question:hash

流程:

问题 ↓ Redis查询 ↓ 存在 ↓ 直接返回 ↓ 不存在 ↓ 调用AI ↓ 写入Redis

Java实现:

Stringcache=redisTemplate.opsForValue().get(key);if(cache!=null){returncache;}

成本直接下降:

70%以上

十二、Prompt工程优化

很多项目效果差:

不是模型问题。

而是Prompt垃圾。


错误Prompt:

解释Redis

优化后:

你是一位拥有10年经验的Java架构师。 请从以下几个方面解释Redis: 1. 定义 2. 核心数据结构 3. 使用场景 4. 面试重点 要求: 通俗易懂 包含代码示例

回答质量提升明显。


十三、权限控制设计

企业知识库必须做权限。


例如:

学生:

只能访问课程资料

教师:

访问全部资料

管理员:

访问系统文档

实现:

if(role.equals("student")){queryCourseDoc();}

避免:

数据泄露

十四、AI学习助手升级

在EduAgentX中。


基础版:

问 ↓ 答

升级版:

分析成绩 ↓ 发现薄弱知识点 ↓ 推荐课程 ↓ 生成学习计划

例如:

学生:

Java成绩65分

AI:

集合框架掌握较差 建议学习: ArrayList HashMap ConcurrentHashMap

十五、企业部署方案

开发环境:

Docker

生产环境:

Nginx ↓ Spring Boot ↓ Redis集群 ↓ PostgreSQL ↓ PGVector ↓ DeepSeek

推荐配置:

4核8G Redis 4G PostgreSQL 8G

即可支撑:

5000+ 在线用户

十六、项目亮点(简历可写)

如果你准备找工作。

项目描述可以写:


EduAgentX智能教育平台

技术栈:

Spring Boot Spring AI DeepSeek PGVector Redis MySQL Vue3

项目亮点:

1. 基于Spring AI实现RAG知识库 2. 使用PGVector完成向量检索 3. Redis缓存热点问题 4. 实现多轮对话记忆 5. 支持PDF知识库导入 6. 支持课程资料智能问答 7. AI生成学习计划 8. Agent辅助学习分析

总结

当下企业真正需要的已经不是:

调用一下ChatGPT接口

而是:

Spring AI + RAG + 向量数据库 + Redis + Agent

构建能够解决实际业务问题的 AI 系统。

如果你把这套EduAgentX AI知识库项目完整做出来,无论是校招还是社招,都已经具备了一个比较有竞争力的 AI 应用项目。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询