分享一个自己写的 Spring AI RAG Demo,给 Java 同学做个参考

发布于

最近在折腾 Spring AI,顺手把 RAG 相关的代码整理成了一个 demo,放出来给有需要的 Java 同学参考。

仓库地址:

[https://github.com/ly1836/spring-ai-rag-demo](https://github.com/ly1836/spring-ai-rag-demo)

![alt](https://i.imgur.com/Th0YZsg.png)

项目主要是把一套基础的 RAG 流程串起来,适合想从 Java / Spring Boot 这边了解 Spring AI 的同学,也可以拿去改成自己的小项目。

这个项目同时也是我实践 Codex + OpenSpec 开发方式的一次尝试。大致流程是先用 OpenSpec 整理需求、设计和任务,再用 Codex 辅助写代码、补测试和检查改动,最终实现和取舍还是由自己确认。

目前项目还在持续完善,主要希望代码尽量直观,方便直接看实现和继续折腾。 README、配置说明和示例后面也会继续补充。

如果你也在研究 Spring AI、RAG,或者正在尝试 Codex + OpenSpec 这类开发流程,欢迎交流。有配置不清楚、代码写得不合理的地方,也可以直接提 issue。

---

原文链接:[点击查看](https://www.v2ex.com/t/1228480)

评论(12)

已 star,感谢分享!建议楼主可以优化下 RAG 的检索逻辑,现在比较流行的是向量和关键词混合检索,搭配 rerank 模型做重排。另外像相关的搜索参数(比如相似度阈值、召回条数)和提示词,都可以做成可配置的。

· 0 个赞

回复

收到建议,感谢,我有空会把这些进阶的搜索优化补上去的。

· 0 个赞

我也用 OpenSpec 写了个项目(github.com/onceMisery/seahorse-agent),不过前期方向没定好,现在代码结构有点放飞自我了,控制不住了😂。

· 0 个赞

回复

去看了你发的仓库,功能模块挺多的,看着有点硬核啊。确实,用 OpenSpec 搞些中小型项目来梳理思路还是挺顺手、挺敏捷的。

· 0 个赞

我也在研究这块,目前在折腾 microcore + plugin 架构,想适配各种垂类的 RAG。感觉最难搞的是 chunker 和分类器的优化,得先让模型正确识别数据类型,再分发给专用的切片器和垂类模型。另外查询阶段多加几个 rerank 效果应该会更好。

· 0 个赞

回复

这个思路可以啊,针对不同类型的数据用对应的模型和切片方式,确实能大幅提升理解效果。

· 0 个赞

简单看了下代码,直接用 SQL 查 DB 会不会有数据越权的风险啊?另外,怎么保证 LLM 生成的 SQL 能精准查到想要的数据呢,这准确率评估感觉是个鸡生蛋的难题。

· 0 个赞

回复

确实,现阶段评估这块挺难搞的。关于数据权限,目前我这版比较粗暴,只做了租户隔离,假设使用者都是能看全量数据的项目经理。至于 SQL 注入风险,目前在 SqlToolValidator.java 里做了初步安全校验,并把 :param 转成 JDBC 的 ? 占位符来规避。精准度打分还没做,打算先收集工具调用的次数、入参和命中数据,后面再做自动分析和标注。

· 0 个赞

我最近在琢磨 GBrain 这个项目,感觉它比起传统的 RAG 方案更贴合实际业务场景,楼主有空的话可以去看看,借鉴一下经验。

· 0 个赞

回复

好的,感谢分享,我这就去了解下 GBrain 取取经。

· 0 个赞

感觉还不错,这思路可以,正好拿代码来学习参考下。

· 0 个赞

插眼 mark,最近也在看这块,正好拿楼主的代码学习一下。

· 0 个赞