Spring AI是Spring官方推出的AI应用开发框架,它通过统一的API简化了与各大AI平台(如OpenAI、Azure AI等)的集成,让开发者可以快速为Spring应用添加智能能力。本文将通过示例代码演示基础使用方法。
环境准备
- JDK 17+
- Maven 3.8+
- Spring Boot 3.2+
快速开始
1. 创建Spring Boot项目
使用start.spring.io创建项目,添加以下依赖:
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>0.8.1</version><type>pom</type><scope>import</scope>
</dependency>
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
2. 配置API密钥
在application.yml
中添加(以OpenAI为例):
spring:ai:openai:api-key: YOUR_API_KEYchat:model: gpt-3.5-turbo
从OpenAI平台获取API密钥
核心功能示例
1. 基础对话接口
创建ChatController:
@RestController
@RequestMapping("/ai")
public class ChatController {private final ChatClient chatClient;public ChatController(ChatClient chatClient) {this.chatClient = chatClient;}@GetMapping("/chat")public String generate(@RequestParam String message) {return chatClient.call(message);}
}
发送请求测试:
curl http://localhost:8080/ai/chat?message=你好,介绍一下Spring框架
2. 高级Prompt模板
@Service
public class StoryService {private final PromptTemplate promptTemplate;public StoryService() {this.promptTemplate = new PromptTemplate("""请根据以下信息生成一个短故事:主角:{character}场景:{scene}风格:{style}""");}public String generateStory(String character, String scene, String style) {Map<String, Object> params = Map.of("character", character,"scene", scene,"style", style);return promptTemplate.render(params);}
}
多模型支持示例
切换模型服务商(以Azure为例):
spring:ai:azure:api-key: AZURE_API_KEYendpoint: https://your-resource.openai.azure.com/chat:deployment-name: your-deployment-name
代码无需修改,只需更换starter依赖:
<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
</dependency>
流式响应处理
@GetMapping("/stream")
public SseEmitter streamChat(@RequestParam String message) {SseEmitter emitter = new SseEmitter();chatClient.stream(message).subscribe(content -> {try {emitter.send(content);} catch (IOException e) {throw new RuntimeException(e);}},emitter::completeWithError,emitter::complete);return emitter;
}
注意事项
- API调用配额限制
- 生产环境需要添加异常处理
- 建议配置超时时间
- 敏感内容过滤
总结
Spring AI通过以下优势简化AI集成:
- 统一API对接多个AI平台
- 自动配置简化开发
- 灵活的Prompt模板
- 响应式编程支持
扩展阅读:
- 官方文档:https://spring.io/projects/spring-ai
- 高级Prompt工程指南
- 自定义模型接入教程
欢迎在评论区交流使用经验,共同探索AI开发新可能! 🚀
注意:实际使用时请替换API密钥和相关配置参数,本文示例基于Spring AI 0.8.1版本