algorithm-cloud 是一个面向排序算法教学的开源 RAG(Retrieval-Augmented Generation,检索增强生成)交互式系统后端。项目基于 Java 21、Spring Boot、Spring Cloud Alibaba、Spring AI、Elasticsearch、RabbitMQ、MySQL、Redis 和 Nacos 构建,为算法可视化课堂提供用户认证、内容社区、知识库、文档解析、混合检索、流式问答和运营审计能力。
如果你正在寻找 Spring Cloud Alibaba 微服务示例、Spring AI RAG 项目、Elasticsearch 向量检索、RabbitMQ 异步任务、Nacos 配置中心或排序算法教学平台后端,本仓库提供了一个可以继续扩展的完整工程骨架。
- algorithm-next:排序算法可视化课堂和用户侧前端。
- algorithm-admin:React + Ant Design Pro 管理后台。
- 当前仓库:Java 微服务后端、RAG 知识库和部署配置。
- RAG 智能问答:解析 Markdown、PDF、Word 等教学材料,生成文档分片和向量索引,支持 SSE 流式回答。
- 混合检索:并行使用 Elasticsearch 向量检索和 BM25 全文检索,再通过 RRF(Reciprocal Rank Fusion)融合结果。
- 知识库管理:支持知识库、文档、文档分片、召回分析和检索结果追踪。
- 内容社区:用户、帖子、评论、点赞、收藏、审核、搜索和内容摘要。
- 微服务治理:Nacos 服务发现与配置、Spring Cloud Gateway API 网关、Sa-Token 认证、Redis 限流和统一异常处理。
- 异步任务链路:使用 RabbitMQ 解耦文档入库、AI 摘要、搜索同步和通知等耗时任务。
- 可观测与审计:业务操作日志、登录日志、API 访问日志,以及可选的 Logstash、Prometheus 和 Grafana 基础设施。
- 对象存储适配:文件服务支持腾讯云 COS 和开发环境中的 MinIO。
教学文档上传
↓
文档解析与文本清洗
↓
段落合并、语义切片与重叠窗口
↓
MySQL 持久化 + Elasticsearch 向量索引
↓
向量召回 + BM25 关键词召回
↓
RRF 融合排序
↓
Spring AI 组织上下文并通过 SSE 流式回答
这条链路把排序算法原理、代码片段、时间复杂度和空间复杂度等教学内容纳入可追踪的知识库,便于调试召回效果和持续改进问答质量。
| 模块 | 主要职责 | 本地端口 |
|---|---|---|
algorithm-gateway |
API 网关、路由、认证、限流、请求头净化和链路日志 | 8080 |
algorithm-user-service |
邮箱/GitHub 登录、用户资料、角色和权限 | 8081 |
algorithm-post-service |
帖子、评论、点赞、收藏、审核和内容同步 | 8082 |
algorithm-notification-service |
站内通知、未读数和实时消息触达 | 8083 |
algorithm-search-service |
Elasticsearch 全文检索、聚合搜索和索引同步 | 8084 |
algorithm-file-service |
文件上传、校验、COS/MinIO 对象存储 | 8085 |
algorithm-log-service |
业务审计、登录、访问、邮件和文件记录 | 8086 |
algorithm-mail-service |
验证码、模板邮件和异步邮件投递 | 8087 |
algorithm-ai-service |
知识库、文档处理、RAG 问答和召回分析 | 8088 |
公共能力和跨服务契约见:
| 领域 | 技术 |
|---|---|
| 运行环境 | Java 21、Maven |
| Web 与微服务 | Spring Boot 3.x、Spring Cloud、Spring Cloud Alibaba、Spring Cloud Gateway |
| AI 与 RAG | Spring AI、DashScope、文档解析、Elasticsearch Vector Store |
| 数据与缓存 | MySQL、MyBatis-Plus、Redis、Redisson、Caffeine |
| 消息与实时通信 | RabbitMQ、Netty、WebSocket |
| 服务治理 | Nacos、Sa-Token、OpenFeign、Knife4j |
| 搜索与观测 | Elasticsearch、Logstash、Prometheus、Grafana |
请先安装:
- JDK 21
- Maven 3.9+
- Docker 和 Docker Compose
- 可用的 DashScope/LLM 配置(使用 AI 服务时)
在当前目录复制并补全环境变量。.env.example 是安全模板,不包含可直接使用的生产凭证:
cp .env.example .env
# 根据 docker-compose-env.yml 补充数据库、Redis、Nacos、RabbitMQ 等变量
docker compose -f docker-compose-env.yml up -d基础设施启动后,访问 Nacos:http://localhost:8848/nacos;RabbitMQ 管理台默认地址为 http://localhost:15672。
mysql -u root -p < sql/algorithm.sql
cp nacos-config/common-secret.properties.example \
nacos-config/common-secret.properties
# 在 common-secret.properties 中填入数据库、Redis、对象存储和 AI API 配置
chmod +x nacos-config/import-config.sh
./nacos-config/import-config.sh敏感配置文件已被 Git 忽略,请勿提交真实密码、Token 或 API Key。
mvn clean install -DskipTests
docker compose up -d --build本地开发也可以直接在 IDE 中启动各个 *Application 入口类。完整配置说明见 nacos-config/README.md。
# 编译全部 Maven 模块
mvn clean install
# 跳过测试构建
mvn clean install -DskipTests提交代码前请同步更新受影响模块的 README、配置示例和 API 文档,并确保没有把本地凭证或生成物提交到 Git。
欢迎通过 Issues 反馈问题,或提交 Pull Request 改进算法教学、RAG 检索、微服务能力和文档。建议在提交前说明变更背景、验证方式和可能影响的服务。
本项目基于 Apache License 2.0 开源。