前言
随着AI技术的快速发展,越来越多的应用开始整合AI能力,提供更智能、更个性化的体验。ChatGPT等开放式大型语言模型的出现,使得自然语言处理和对话系统的开发变得更加容易和流行。这些技术在社交媒体、客户服务、教育等方面显示出巨大的潜力,对于改善用户体验和生产力至关重要。
优势
过去,open ai已经提供了相应的Java集成解决方案:https://github.com/TheoKanning/openai-java,但Spring AI beta版的发布为我们提供了一个新的集成方向,与原来的方法相比,Spring AI有以下优势:
- 更快的开发周期:Spring AI的原生生态系统封装使开发人员能够更快地集成AI功能并加快项目迭代周期。
- 与现有技术栈无缝集成:如果您的项目已经构建在SpringBoot上,那么使用Spring AI将更容易,而无需引入额外的技术栈,并更好地利用您已经拥有的技术和资源。
- 强大的社区支持:Spring Framework拥有庞大的支持社区和活跃的开发者社区,可以为开发者提供更多的技术支持和解决方案。
简介
本文的目的是为读者提供一个基本的用例,以帮助学习如何将Spring AI集成到SpringBoot应用程序中以实现智能功能。通过本文,读者将学习如何利用现有的人工智能技术为应用程序添加自动化和智能,从而改善用户体验和应用程序的价值。接下来,我们将详细介绍如何在SpringBoot项目中配置和使用Spring AI,为您带来更智能的应用体验。
环境准备
- jdk 17
- springboot3.2.0
- maven 3.9
步骤
1. Import dependencies
pom.xml编写以下代码:
xml
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>0.8.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<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>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.配置自己的api-key和base-url
application.yml:
yaml
server:
port: 9876
spring:
ai:
openai:
api-key: sk-xxx # The api-key of the application
base-url: https://api.openai.com/ # default
chat:
# Specifying an API Configuration (Overriding the Global Configuration)
api-key: sk-xxx
base-url: https://api.openai.com/
options:
model: gpt-3.5-turbo
3.配置您自己的OpenAI聊天客户端
这里需要说明的是,api-key和base-url在application.yml文件中配置好后,可以直接在服务层自动组装,但只能配置客户端的一种参数类型参考](https://docs.spring.io/spring-ai/reference/api/clients/openai-chat.html#_chat_properties)>%3E)
OpenAiChatConfig.java
kotlin
@Configuration
public class OpenAiChatConfig {
@Value("${spring.ai.openai.chat.api-key}")
private String apiKey;
@Value("${spring.ai.openai.chat.base-url}")
private String baseUrl;
@Bean("myOpenAiChatClient")
public OpenAiChatClient myOpenAiChatClient(){
OpenAiApi openAiApi = new OpenAiApi(baseUrl, apiKey);
return new OpenAiChatClient(openAiApi);
}
}
4. API调用
OpenAiChatService.java
arduino
public interface OpenAiChatService {
String easyChat(String message);
}
OpenAiChatServiceImpl.java
typescript
@Service
public class OpenAiChatServiceImpl implements OpenAiChatService {
@Resource(name = "myOpenAiChatClient")
private OpenAiChatClient chatClient;
@Override
public String easyChat(String message) {
Prompt prompt = new Prompt(message);
return chatClient.call(prompt).getResult().getOutput().getContent();
}
}
ChatController.java
less
@RestController
@RequestMapping("/ai")
public class ChatController {
@Resource
private OpenAiChatService openAiChatService;
@GetMapping(value = "/easyChat",params = "message")
public String easyChat(@RequestParam String message){
return openAiChatService.easyChat(message);
}
}
5.成果展示
总结
Spring AI是一种原生封装,旨在为SpringBoot应用程序提供快速集成AI功能的解决方案。通过与Spring框架的完美集成,Spring AI可以利用Spring提供的依赖注入,使集成AI功能变得更加简单和灵活。借助Spring AI,开发团队能够更快地实现智能应用程序,并为用户提供更好的体验。