# sportJavaRAG **Repository Path**: wangyaning1130/sport-java-rag ## Basic Information - **Project Name**: sportJavaRAG - **Description**: 企业级足球数据应用设计的智能分析平台。它基于Java开发,并深度融合了 RAG和 Spring AI 能力。平台专注于欧洲五大联赛(英超、西甲、意甲、德甲、法甲)的赛事分析与预测,通过结合 MySQL 的结构化存储和 Milvus 向量数据库的高效检索,实现了“数据解析 → 智能预测 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-09 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SportJava-RAG ## 一、项目简介 SportJava-RAG 是一个用于足球体育赛事数据处理与分析的 Java 项目。基于 **JDK 17+**开发,它提供从 JSON 文件中提取比赛数据、使用知识库进行分析,并生成基于不同分析风格的比赛分析报告的功能。项目结合了 Milvus 向量数据库进行高效的知识检索,以及 MySQL 存储结构化的比赛知识数据。 项目前端:[SportJava-RAG-FE](https://gitee.com/guan-zhengxi/sport-java-rag-protal) ## 二、核心功能 | 功能模块 | 核心能力 | | ------------------ | ------------------------------------------------------------ | | **赛事分析与预测** | 1. 上传 JSON 格式的欧洲五大联赛赛事文件(支持批量处理)。
2. 选择 5 种预设分析风格。
3. 自动生成“赛事数量 × 风格数量”的预测帖子。
4. 支持预测结果复制与批量下载。 | | **知识库维护** | 1. 手动上传 JSON 格式的知识库数据。
2. 同步存储至 **MySQL** 和 **Milvus**。
3. 支持知识库条目的新增与修改操作。
4. 确保数据一致性与检索可用性。 | ## 三、环境要求 | 依赖工具 | 版本要求 | 说明 | | ------------------ | ------------------------------------- | ------------------------------------------------ | | **Docker Engine** | `26.1.0+` | 容器运行环境 | | **Docker Compose** | `3.8.0+` | 多容器编排工具 | | **硬件资源** | 内存 ≥ 2GB,CPU ≥ 2 核,存储 ≥ 20GB | 保障 Milvus 与应用稳定运行,需要手动配置日志管理 | ## 四、安装部署 1. **代码拉取** ``` # 克隆项目仓库 git clone https://gitee.com/guan-zhengxi/sport-java-rag.git ``` 2. **配置项** 根据需要在DockerCompose文件中配置 ## 五、使用指南 ### 模块 1:赛事分析与预测 1. **准备赛事数据文件(JSON 格式)** **注意:** 仅支持欧洲五大联赛,字段不可缺失,格式不可修改。建议单次上传不超过 10 条数据。 ``` [ { "league": "英超", // 仅限:英超、西甲、意甲、德甲、法甲 "match": "曼城VS利物浦", // 对阵双方(格式:主队VS客队) "date": "2025-04-10", // 比赛日期(格式:YYYY-MM-DD) "time": "02:45:00" // 比赛时间(格式:HH:MM:SS) } ] ``` 2. **操作步骤** - 进入平台首页,点击「赛事分析」模块。 - 点击「选择文件」,上传 JSON 文件。 - 在「风格选择区」勾选预测风格(支持多选,最多 5 种)。 - 点击「开始生成」,系统将利用 **RAG** 和 **Spring AI** 生成预测结果。 - 生成后,可复制单条帖子或点击「下载全部」打包下载。 ### 模块 2:RAG 知识库维护 1. **准备知识库数据文件(JSON 格式)** **注意:** `matchKey` 需唯一,建议格式为 `联赛_主队_vs_客队_日期`。 ``` [ { "matchKey": "英超_曼城_vs_利物浦_2025-05-11", // 唯一标识(不可重复) "league": "英超", // 仅限:英超、西甲、意甲、德甲、法甲 "homeTeam": "曼城", // 主队名称 "awayTeam": "利物浦", // 客队名称 "content": "英超争冠关键战役。曼城拥有强大的阵容深度和控球能力..." // 分析内容 } ] ``` 2. **操作步骤** - **新增条目:** - 进入「知识库管理」模块。 - 点击「上传知识文件」,选择 JSON 文件。 - 点击「确认上传」,系统将自动完成数据存储与向量编码。 - **修改条目:** - 在「知识库管理」页面,找到需修改的条目。 - 点击右侧「编辑」,修改 `content` 或其他字段(`matchKey` 不可修改)。 - 点击「保存修改」,系统同步更新数据。 3. **分析风格** 通过 `/sport/styles` 接口可获取支持的分析风格列表,每种风格决定了分析报告的生成方式。 4. **模型与数据结构** - `MatchDTO`: 用于描述比赛信息(联赛、比赛名称、日期、时间) - `KnowledgeEntry`: 知识库条目,包含比赛关键字段和分析内容 - `AnalysisStyleDTO`: 描述分析风格的结构化数据 - `AnalysisStyle`: 枚举类型,表示支持的分析风格 5. **日志与调试** 项目组件使用 `Logger` 进行调试和追踪数据处理过程。 ## 六、关键注意事项 - **适用范围:** 仅支持欧洲足球五大联赛。 - **安全提示:** 本平台暂无完善的安全措施,请勿暴露至公网。 - **数据格式:** 所有 JSON 文件需严格遵循模板,否则上传将失败,或将引发服务异常。 - **性能限制:** 单次分析赛事数据建议不超过 10 条,单次最多产生 50 条报告。 - **数据备份:** 系统不提供自动备份并且数据库通过容器管理,请根据需要自行调试。 - **功能限制:** 当前版本不支持知识库条目删除和查询,需登录配置中的地址手动操作数据库。 ## 七、常见问题(FAQ) | 问题描述 | 解决方案 | | ------------------------------ | ------------------------------------------------------------ | | 上传非五大联赛数据后信息不准确 | 仅支持英超、西甲、意甲、德甲、法甲,请检查 `league` 字段。 | | 上传 JSON 文件后系统无响应 | 1. 检查文件格式是否正确。2. 检查文件大小。3. 尝试重启服务。 | | 生成的预测帖子质量较低 | 1. 补充该联赛/球队的知识库条目。2. 优化知识库 `content` 内容。 | | 如何确认知识库数据已上传成功 | 上传后系统会有对应的提示信息,后续赛事分析会引用新内容。 |