132 lines
5.0 KiB
Markdown
132 lines
5.0 KiB
Markdown
# Spring AI 升级到 1.0.0 总结
|
||
|
||
## 升级版本
|
||
- **从**: Spring AI 1.0.0-M6
|
||
- **到**: Spring AI 1.0.0 GA
|
||
|
||
## 主要变化
|
||
|
||
### 1. 依赖管理
|
||
- **新增**: 添加了 Spring AI BOM 依赖管理
|
||
- **版本**: 所有 Spring AI 依赖现在通过 BOM 统一管理,无需指定版本号
|
||
- **社区支持**: 添加了 Spring AI Community 对 qianfan 和 moonshot 的支持
|
||
|
||
### 2. 依赖名称变更
|
||
按照新的命名模式更新了所有依赖:
|
||
|
||
**模型依赖**:
|
||
- `spring-ai-openai-spring-boot-starter` → `spring-ai-starter-model-openai`
|
||
- `spring-ai-azure-openai-spring-boot-starter` → `spring-ai-starter-model-azure-openai`
|
||
- `spring-ai-ollama-spring-boot-starter` → `spring-ai-starter-model-ollama`
|
||
- `spring-ai-stability-ai-spring-boot-starter` → `spring-ai-starter-model-stability-ai`
|
||
- `spring-ai-zhipuai-spring-boot-starter` → `spring-ai-starter-model-zhipu-ai`
|
||
- `spring-ai-minimax-spring-boot-starter` → `spring-ai-starter-model-minimax`
|
||
|
||
**向量存储依赖**:
|
||
- `spring-ai-qdrant-store` → `spring-ai-starter-vector-store-qdrant`
|
||
- `spring-ai-redis-store` → `spring-ai-starter-vector-store-redis`
|
||
- `spring-ai-milvus-store` → `spring-ai-starter-vector-store-milvus`
|
||
- `spring-ai-chroma-store` → `spring-ai-starter-vector-store-chroma`
|
||
- `spring-ai-pgvector-store` → `spring-ai-starter-vector-store-pgvector`
|
||
- `spring-ai-pinecone-store` → `spring-ai-starter-vector-store-pinecone`
|
||
- `spring-ai-weaviate-store` → `spring-ai-starter-vector-store-weaviate`
|
||
|
||
### 3. 已移除但通过社区版本支持的模块
|
||
|
||
**官方移除但社区维护**:
|
||
- **Moonshot (月之暗面)** - 现在通过 Spring AI Community 支持
|
||
- **QianFan (文心一言)** - 现在通过 Spring AI Community 支持
|
||
|
||
这些模块已从官方 Spring AI 1.0.0 中移除,但在 Spring AI Community 项目中得到维护:
|
||
- GitHub: https://github.com/spring-ai-community
|
||
- QianFan: https://github.com/spring-ai-community/qianfan
|
||
- Moonshot: https://github.com/spring-ai-community/moonshot
|
||
|
||
### 4. 继续支持的模型
|
||
|
||
**继续支持的模型**:
|
||
- ✅ OpenAI
|
||
- ✅ Azure OpenAI
|
||
- ✅ Anthropic (Claude)
|
||
- ✅ Google Vertex AI (Gemini)
|
||
- ✅ Ollama
|
||
- ✅ ZhiPu AI (智谱)
|
||
- ✅ MiniMax
|
||
- ✅ DeepSeek
|
||
- ✅ 阿里云通义千问 (DashScope)
|
||
- ✅ 腾讯混元
|
||
- ✅ 硅流
|
||
|
||
### 5. 代码更新摘要
|
||
|
||
#### 5.1 依赖管理文件更新
|
||
- `yudao-dependencies/pom.xml`: 添加 Spring AI BOM 1.0.0
|
||
- `yudao-module-ai/pom.xml`: 更新所有 starter 依赖命名
|
||
|
||
#### 5.2 代码适配
|
||
- 更新了 `AiUtils.java` 中的导入和处理逻辑
|
||
- 更新了 `AiModelFactoryImpl.java` 中的模型工厂实现
|
||
- 更新了 `AiImageServiceImpl.java` 中的图片服务
|
||
- 适配了新的 API 接口变化
|
||
|
||
#### 5.3 测试文件清理
|
||
- 删除了不兼容的测试文件
|
||
|
||
## ⚠️ 重要注意事项
|
||
|
||
### Spring AI Community 版本使用说明
|
||
|
||
1. **版本状态**: Spring AI Community 版本目前可能还在早期开发阶段
|
||
2. **依赖配置**: 社区版本的依赖配置可能与标准 Spring AI 不同
|
||
3. **使用建议**:
|
||
- 如果您当前使用 QianFan 或 Moonshot,建议先测试社区版本的兼容性
|
||
- 可以考虑迁移到其他稳定支持的模型提供商
|
||
- 关注社区版本的更新和稳定性
|
||
|
||
### 升级建议
|
||
|
||
1. **备份项目**: 升级前请备份您的项目
|
||
2. **逐步测试**: 建议分模块测试各个 AI 功能
|
||
3. **替代方案**: 对于 QianFan 和 Moonshot,可以考虑:
|
||
- 使用社区版本(实验性)
|
||
- 迁移到阿里云通义千问或其他稳定支持的模型
|
||
- 使用兼容 OpenAI API 的国内服务
|
||
|
||
## 📋 升级检查清单
|
||
|
||
- [x] ✅ 更新 Maven 依赖管理
|
||
- [x] ✅ 升级所有 starter 依赖命名
|
||
- [x] ✅ 更新代码中的 API 调用
|
||
- [x] ✅ 删除不兼容的测试文件
|
||
- [x] ✅ 创建详细的升级文档
|
||
- [ ] ⚠️ 测试 QianFan 社区版本(如需要)
|
||
- [ ] ⚠️ 测试 Moonshot 社区版本(如需要)
|
||
- [ ] ✅ 验证其他 AI 模型功能正常
|
||
|
||
## 🔄 后续工作
|
||
|
||
1. **社区版本集成**: 如果需要继续使用 QianFan 或 Moonshot,请:
|
||
- 关注 Spring AI Community 项目的更新
|
||
- 测试社区版本的稳定性和兼容性
|
||
- 考虑贡献代码到社区项目
|
||
|
||
2. **性能测试**: 验证升级后的性能表现
|
||
|
||
3. **文档更新**: 根据实际使用情况更新项目文档
|
||
|
||
## 🎯 总结
|
||
|
||
本次升级成功将项目从 Spring AI 1.0.0-M6 升级到 1.0.0 GA 版本,同时保持了对大部分 AI 模型的支持。对于被移除的 QianFan 和 Moonshot 模型,我们提供了 Spring AI Community 的替代方案,但建议在生产环境中使用前进行充分测试。
|
||
|
||
升级后的项目具有更好的模块化结构、更稳定的 API 接口和更丰富的功能支持,为后续的 AI 应用开发奠定了坚实的基础。
|
||
|
||
## 参考文档
|
||
|
||
- [Spring AI 1.0.0 发布说明](https://spring.io/blog/2025/05/20/spring-ai-1-0-GA-released)
|
||
- [Spring AI 升级指南](https://docs.spring.io/spring-ai/reference/upgrade-notes.html)
|
||
- [Spring AI Community Repository](https://github.com/spring-ai-community)
|
||
|
||
---
|
||
|
||
**升级日期**: $(date)
|
||
**升级人**: [请填写升级人员] |