【开源推广】写了一个由SpringAIAlibaba实现的多轮对话RAG项目,适合Java人学习和面试

2026-04-29 10:162阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


今天想给佬们分享一个我最近做的开源项目 —— DD_Rag,一个基于 SpringAI + SpringAIAlibaba 的“组织知识库 + AI 助手”的 Java RAG 实战项目。

有帮助的话点点star

起因其实很简单:很多 Java 后端想做 AI 项目,我也不例外。所以我做了这个相对完整一些的 Java AI 项目:DD_Rag。它不是一个单纯的聊天 Demo,而是把 文档入库、权限隔离、混合检索、证据回答、Agent Tool 调用、会话记忆 这些真实工程问题串起来,尽量做成一个更接近业务场景的系统。

在线演示地址
http://106.55.44.191:5173/login

GitHub 仓库

github.com

GitHub - t1804330987/DD_Rag: 一个面向“组织知识库 + AI 助手”的 Java RAG...

一个面向“组织知识库 + AI 助手”的 Java RAG 实战项目,把权限隔离、文档入库、混合检索、证据约束、Agent 工具调用和 Docker 部署串成了一条完整工程链路。如果你正在找一个能写进简历、能讲清架构、能覆盖 Spring AI / Spring AI Alibaba 技术点的项目,DD_Rag 值得 Star。

关于在线演示的一点说明
在线体验地址部署在我自己的轻量服务器上,机器配置比较有限。大家可以注册账号体验完整流程,但还请佬们手下留情,不要用并发压测工具直接冲服务。

核心功能

  1. 文档一键入库,构建知识库
    上传文档后,系统会自动完成文档解析、文本清洗、结构化切片、向量化入库,并建立关键词索引。
  2. 混合检索 + 证据回答
    支持 PgVector + Elasticsearch 混合检索,并通过 RRF 做结果融合,让回答既有语义相关性,也保留关键词命中能力。
  3. 基于证据回答,无证据拒答
    系统不会盲目“编答案”,而是尽量约束模型基于检索证据回答,没证据时直接拒答,减少幻觉。
  4. 组织级权限隔离
    支持组、成员、管理员等不同权限边界,避免“所有人都能看所有知识”的伪知识库设计。
  5. Agent + Tool Calling
    模型本身并不知道你的业务数据,所以必须通过受控 Tool 获取上下文。项目里做了个人智能助手、知识库 Tool 调用、短期记忆和会话摘要等能力。
  6. 可本地化部署
    支持 Docker Compose 部署,既可以单机跑,也可以双机拆分部署,方便自己练手或做演示环境。

技术栈

项目目前还在持续迭代,主要技术栈如下,也欢迎 Java 方向的朋友一起交流:

  • 后端:Spring Boot 3.5、Java21
  • AI 框架:Spring AI 1.1.2 + Spring AI Alibaba 1.1.2.0
  • 检索增强:RAG
  • Agent 能力:ReactAgent + Tool Calling
    代理能力:ReactAgent + 工具调用
  • 存储与检索:PostgreSQL + PgVector + Elasticsearch + MinIO
  • 模型接入:Ollama + DashScope
  • 前端:Vue 3
  • 部署:Docker Compose

这个项目适合谁

我觉得它比较适合下面几类人:

  • 想做 Java + AI 项目练手的人
  • 想做 毕业设计 / 简历项目 的同学
  • 想系统学习 Spring AI / Spring AI Alibaba / RAG / Agent 的开发者
  • 想从“会调模型 API”进阶到“能搭完整 AI 系统”的后端工程师

部署与体验

项目已经支持 Docker Compose 部署,如果你想自己拉下来跑,可以直接看仓库里的部署文档。

目前演示环境已经可用,欢迎大家体验、提建议、提 Issue。

如果你正在准备 Java AI 方向的项目,或者想找一个稍微完整一点、不是纯聊天框的 Spring AI 实战项目,DD_Rag 可以直接拿来参考。

网友解答:
--【壹】--:

有bug可以交流,我在使用SpringAIAlibaba的时候,里面ReacAgent模型推理次数需要限制,还有结构化输出之类的。还有记忆实现有坑


--【贰】--:

佬,我也是java开发,但是不得不说,AI应用我觉得是 客户端大于服务端,
我也是一步步研究也弄过对应的项目,说实话目前对spring和java后面的路
我也是抱着继续观望的心态,我是发现用java去开发ai的应用到最后我都会删掉的,
就当作学习好了


--【叁】--:

在小红书刷到佬的项目,跑到GitHub看,,结果佬也在L站


--【肆】--:

是的,项目里面的分块技术选择是比较基础的token大小分块 + overlop实现。而且分块大小也因本地Ollama模型原因设置的320多token。所以在检索到chunk的时候,会做临近的chunk扩展。

  • 对于语义分块的话,我看了LangChain4j里面有DocumentBySentenceSplitter类,SpringAI里面没找到对应的。分块方面感觉还是LangChain4j更强大,提供的选择更多。

--【伍】--:

我也是刚刚开始学习这些知识。我这个项目里面:多轮对话的实现使用了Hook机制去实现短期记忆 和 模型接受上下文处理(上下文过长压缩上下文、加载之前对话)。SpringAIAlibaba里面的ReactAgent类实现也是图的编排,比如我添加了工具【Rag检索】。ReactAgent在调用的过程中就是先去调用大模型-》Rag检索工具获取工具回复消息-》大模型处理-》返回给前端。
关于skill的实现也考虑过,我的思考是skill也是一个文件夹,然后用户上传,文件夹管理。使用的时候写一个方法仅加载skill文件的名字和描述为一个list放入到集合,模型推理前使用hook、Advisor加入到上下文里面,让模型选择对应的skill,然后通过工具调用读取到内容返回加载进上下文,然后再根据此进行回答。
A2A的架构真没了解


--【陆】--:

哈哈哈哈,直接入职!而且技术氛围也好!


--【柒】--:

谢谢佬分享。收藏加star。学习一下子。


--【捌】--:

感谢佬友的开源,有时间学习一下,有没有要加入组的 group-92460ea4befb484985e998756eb00b5b


--【玖】--:

哈哈哈哈是的,这个项目也是为了学习和面试准备的。以现在的趋势,基本上公司招聘要求都是需要AI开发经验的。先有东西可以说,入行了跟着发展走。特别是有了大模型之后,语言框架不是限制了,限制是实现的思路和架构设计。


--【拾】--:

alibaba这篇有很多设计思想,
比如长期记忆和短期记忆,
还有skills的实现,agent基于Graph引擎编排。
还有hook机制,
但其实RAG项目其实意义已经不大了,应用场景也只是个小功能。
更别说还有A2A的架构,佬可以再延伸一点


--【拾壹】--:

学习一下,最新版本1.1.4,打算用在公司里面,不知道有没有坑


--【拾贰】--:

面试直接说自己是linux论坛的,平时搞搞逆向,vibe coding


--【拾叁】--:

大佬,我大概看了下 doc 解析这部分,目前只有按格式切分,后续有没有考虑从语义上进行切分呢?目前这种召回效果应该不好吧


--【拾肆】--:

长期记忆ReactAgent之类使用Mem0就行,配置一下就行。我还没加


--【拾伍】--:

感谢佬友的分享项目到时候部署试一试先marks一下


--【拾陆】--:

点了star,感谢分享,周末抽空学习一下,Javaer确实是有点迷茫,不知道怎么写