Spring AI入门教程:快速上手AI应用开发

1. 简介

Spring AI是Spring官方推出的AI应用开发框架,旨在简化在Spring应用中集成人工智能功能的过程。该项目为Java开发者提供了统一的API来访问各种AI模型,包括OpenAI、Azure OpenAI、Amazon Bedrock等主流AI服务。

主要优势

  • 统一的API接口,降低学习成本
  • 与Spring生态无缝集成
  • 支持多种AI模型提供商
  • 简化配置和错误处理

适用场景:聊天应用、内容生成、代码助手、智能客服等AI驱动的应用开发。

2. 快速开始

环境要求

  • JDK: 17或更高版本
  • Spring Boot: 3.2.0或更高版本
  • 构建工具: Maven或Gradle

项目创建

使用Spring Initializr快速创建项目:

  1. 访问 start.spring.io
  2. 选择以下依赖:
    • Spring Web
    • Spring AI
  3. 生成并下载项目

项目结构

src/main/java/
├── Application.java
├── controller/
│   └── AIController.java
└── service/
    └── AIService.java

3. 核心配置

依赖配置(Maven)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    </dependency>
</dependencies>

配置文件(application.yml)

spring:
  ai:
    openai:
      api-key: ${OPENAI_API_KEY}
      chat:
        options:
          model: gpt-3.5-turbo
          temperature: 0.7

API密钥配置

在环境变量中设置OpenAI API密钥:

export OPENAI_API_KEY=your-openai-api-key

4. 代码示例

示例1:基础聊天服务

@Service
public class ChatService {
    
    private final ChatClient chatClient;
    
    public ChatService(ChatClient chatClient) {
        this.chatClient = chatClient;
    }
    
    public String chat(String message) {
        return chatClient.call(message);
    }
}

示例2:带上下文的对话

@RestController
public class AIController {
    
    @Autowired
    private ChatService chatService;
    
    @PostMapping("/chat")
    public ResponseEntity<String> chat(@RequestBody ChatRequest request) {
        String response = chatService.chat(request.getMessage());
        return ResponseEntity.ok(response);
    }
    
    public static class ChatRequest {
        private String message;
        
        // getter和setter
        public String getMessage() { return message; }
        public void setMessage(String message) { this.message = message; }
    }
}

示例3:流式响应

@GetMapping("/chat/stream")
public Flux<String> chatStream(@RequestParam String message) {
    return chatClient.stream(message)
        .map(chatResponse -> chatResponse.getResult().getOutput().getContent());
}

5. 总结

学习要点

  • Spring AI提供了统一的AI模型访问接口
  • 配置简单,与Spring Boot无缝集成
  • 支持同步和异步调用方式

下一步建议

  • 探索更多AI模型提供商
  • 学习提示词工程优化
  • 了解AI应用的最佳实践
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐