# spring-boot-ai-example **Repository Path**: zhang_fei_123/spring-boot-ai-example ## Basic Information - **Project Name**: spring-boot-ai-example - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-15 - **Last Updated**: 2025-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Spring Boot AI 示例项目 这是一个基于Spring Boot和Spring AI框架的多模块项目,展示了如何集成不同的AI服务提供商。 ## 🏗️ 项目结构 ``` spring-boot-ai-example/ # 父项目(纯POM项目) ├── pom.xml # 父POM配置 ├── spring-ai-openai-demo/ # OpenAI集成子模块 │ ├── src/ │ │ └── main/java/... │ └── pom.xml └── spring-ai-ollama-demo/ # Ollama集成子模块 ├── src/ │ ├── main/ │ │ ├── java/... # Java源码 │ │ └── resources/ │ │ ├── application.yaml # 配置文件 │ │ └── static/ │ │ └── index.html # 前端测试页面 │ └── test/ └── pom.xml ``` ## 📋 项目特点 ### 父项目 (spring-boot-ai-example) - **纯POM项目**: 不包含任何源代码 - **依赖管理**: 统一管理Spring AI版本和插件版本 - **模块聚合**: 管理所有子模块的构建 ### 子模块 - **spring-ai-openai-demo**: OpenAI集成示例 - **spring-ai-ollama-demo**: 本地Ollama集成示例(完整功能) ## 🚀 快速开始 ### 1. 构建整个项目 ```bash cd spring-boot-ai-example ./mvnw clean compile ``` ### 2. 运行Ollama子模块 ```bash # 首先启动Ollama服务 ollama serve ollama pull llama3.2:3b # 运行Spring Boot应用 cd spring-ai-ollama-demo ../mvnw spring-boot:run ``` ### 3. 访问应用 - 前端界面: http://localhost:8082/index.html - API接口: http://localhost:8082/api/ollama/chat ## 🔧 父POM配置说明 父项目的`pom.xml`采用最佳实践: ```xml pom spring-ai-openai-demo spring-ai-ollama-demo 17 1.0.0 org.springframework.ai spring-ai-bom ${spring-ai.version} pom import org.springframework.boot spring-boot-maven-plugin 3.5.3 ``` ## 📦 子模块开发 ### 添加新的子模块 1. **创建子模块目录** ```bash mkdir spring-ai-new-demo cd spring-ai-new-demo ``` 2. **创建子模块POM** ```xml com.example spring-boot-ai-example 0.0.1-SNAPSHOT ../pom.xml spring-ai-new-demo spring-ai-new-demo ``` 3. **更新父POM** ```xml spring-ai-openai-demo spring-ai-ollama-demo spring-ai-new-demo ``` ## 🛠️ 构建命令 ### 构建所有模块 ```bash ./mvnw clean compile ./mvnw clean package ``` ### 构建特定模块 ```bash ./mvnw clean compile -pl spring-ai-ollama-demo ./mvnw clean package -pl spring-ai-ollama-demo ``` ### 跳过测试构建 ```bash ./mvnw clean package -DskipTests ``` ## 📡 API接口 (Ollama模块) ### GET /api/ollama/chat ```bash curl "http://localhost:8082/api/ollama/chat?prompt=你好" ``` ### POST /api/ollama/chat ```bash curl -X POST http://localhost:8082/api/ollama/chat \ -H "Content-Type: application/json" \ -d '{"prompt":"介绍一下Spring AI"}' ``` ### POST /api/ollama/chat-with-system ```bash curl -X POST http://localhost:8082/api/ollama/chat-with-system \ -H "Content-Type: application/json" \ -d '{ "prompt":"今天天气怎么样?", "systemMessage":"你是一个友善的天气助手。" }' ``` ## 🔍 项目优势 ### 1. **清晰的模块分离** - 父项目专注于依赖和版本管理 - 每个子模块独立开发和部署 - 便于团队协作开发 ### 2. **统一的依赖管理** - 版本冲突最小化 - 依赖升级更容易 - 构建更稳定 ### 3. **灵活的部署方式** - 可以独立部署单个模块 - 支持容器化部署 - 便于微服务架构 ## 🚨 注意事项 1. **父项目不包含源码**: 父项目只负责聚合和依赖管理 2. **相对路径**: 子模块POM中使用`../pom.xml` 3. **版本一致性**: 所有模块使用相同的版本号 4. **插件继承**: 子模块自动继承父项目的插件配置 ## 📝 开发建议 - 新功能优先考虑创建新的子模块 - 共同的工具类可以创建common模块 - 每个子模块保持单一职责 - 定期更新依赖版本 --- **作者:** 张飞 **版本:** 1.0 **更新时间:** 2025-12-01