SpringBoot整合Spring AI实现项目访问chatgpt

前言

随着AI技术的快速发展,越来越多的应用开始整合AI能力,提供更智能、更个性化的体验。ChatGPT等开放式大型语言模型的出现,使得自然语言处理和对话系统的开发变得更加容易和流行。这些技术在社交媒体、客户服务、教育等方面显示出巨大的潜力,对于改善用户体验和生产力至关重要。

优势

过去,open ai已经提供了相应的Java集成解决方案:https://github.com/TheoKanning/openai-java,但Spring AI beta版的发布为我们提供了一个新的集成方向,与原来的方法相比,Spring AI有以下优势:

  1. 更快的开发周期:Spring AI的原生生态系统封装使开发人员能够更快地集成AI功能并加快项目迭代周期。
  2. 与现有技术栈无缝集成:如果您的项目已经构建在SpringBoot上,那么使用Spring AI将更容易,而无需引入额外的技术栈,并更好地利用您已经拥有的技术和资源。
  3. 强大的社区支持: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,开发团队能够更快地实现智能应用程序,并为用户提供更好的体验。

相关推荐
尘浮生1 小时前
Java项目实战II基于SpringBoot的共享单车管理系统开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·微信小程序·小程序
huaxiaorong1 小时前
如何将旧的Android手机改造为家用服务器
后端
2401_857439691 小时前
社团管理新工具:SpringBoot框架
java·spring boot·后端
2401_857610031 小时前
Spring Boot OA:企业办公自动化的创新之路
spring boot·后端·mfc
难念的码1 小时前
Skill 语言语法基础
人工智能·后端
逸风尊者2 小时前
开发也能看懂的大模型:FNN
人工智能·后端·算法
2401_854391082 小时前
Spring Boot OA:企业数字化转型的利器
java·spring boot·后端
山山而川粤2 小时前
废品买卖回收管理系统|Java|SSM|Vue| 前后端分离
java·开发语言·后端·学习·mysql
2301_811274312 小时前
基于Spring Boot的同城宠物照看系统的设计与实现
spring boot·后端·宠物
2301_811274313 小时前
springboot嗨玩旅游网站
spring boot·后端·旅游