# 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