Java SpringBoot 调用大模型 AI 构建 AI 应用

06-01 1024阅读

随着人工智能(AI)技术的快速发展,越来越多的大型预训练模型(如 GPT-4、BERT、T5 等)被广泛应用于各种实际场景,如自然语言处理、图像识别、语音识别等。借助这些大模型,开发者能够轻松构建各种智能应用,例如智能客服、自动化内容生成、情感分析等。

在这篇文章中,我们将介绍如何使用 Java SpringBoot 框架,调用一个大模型 AI,构建一个智能应用。我们将通过调用 OpenAI API(以 GPT-3 或 GPT-4 为例)来实现一个简单的对话系统。

一、准备工作

  1. SpringBoot 环境搭建:如果你还没有安装 SpringBoot 环境,可以参考 Spring 官方文档进行搭建。
  2. OpenAI API:我们将调用 OpenAI 的 GPT API,首先需要到 OpenAI 官方网站 注册并获取 API 密钥。
  3. Maven 依赖:我们将使用 RestTemplate 或 WebClient 来调用 OpenAI 的 HTTP API。

二、创建 SpringBoot 项目

  1. 使用 Spring Initializr 创建项目

    在 Spring Initializr 中创建一个 Spring Boot 项目,选择以下选项:

    • Project: Maven Project
    • Language: Java
    • Spring Boot: 2.x.x
    • Dependencies: Spring Web, Spring Boot DevTools
    • 添加必要的 Maven 依赖

      打开 pom.xml 文件,添加 Spring Web 和 Jackson 依赖(用于 JSON 解析):

          
          
              org.springframework.boot
              spring-boot-starter-web
          
          
          
              com.fasterxml.jackson.core
              jackson-databind
          
          
          
              org.springframework.boot
              spring-boot-devtools
              runtime
          
      
      
    • 配置 OpenAI API 密钥

      在项目的 application.properties 文件中,添加 OpenAI 的 API 密钥:

      openai.api.key=YOUR_API_KEY_HERE
      

三、创建服务类调用 OpenAI API

  1. 创建 OpenAI 服务类

    我们将创建一个 OpenAIService 类,负责与 OpenAI 的 GPT 模型进行交互。使用 RestTemplate 发送 HTTP 请求,并处理返回的 JSON 数据。

    package com.example.aiapp.service;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Service;
    import org.springframework.web.client.RestTemplate;
    import org.springframework.http.*;
    import com.fasterxml.jackson.databind.JsonNode;
    import java.util.HashMap;
    import java.util.Map;
    @Service
    public class OpenAIService {
        @Value("${openai.api.key}")
        private String apiKey;
        private static final String API_URL = "https://api.openai.com/v1/completions";
        // RestTemplate 用于发送请求
        private final RestTemplate restTemplate;
        public OpenAIService(RestTemplate restTemplate) {
            this.restTemplate = restTemplate;
        }
        // 调用 OpenAI API 获取 GPT-3 或 GPT-4 响应
        public String generateResponse(String prompt) {
            // 构建请求体
            Map body = new HashMap();
            body.put("model", "text-davinci-003"); // 或 "gpt-4"
            body.put("prompt", prompt);
            body.put("max_tokens", 150);
            body.put("temperature", 0.7);
            HttpHeaders headers = new HttpHeaders();
            headers.set("Authorization", "Bearer " + apiKey);
            headers.setContentType(MediaType.APPLICATION_JSON);
            HttpEntity entity = new HttpEntity(body, headers);
            // 发送 POST 请求
            ResponseEntity response = restTemplate.exchange(
                    API_URL, HttpMethod.POST, entity, JsonNode.class);
            // 获取 GPT 返回的响应
            if (response.getStatusCode() == HttpStatus.OK) {
                JsonNode choices = response.getBody().get("choices");
                return choices.get(0).get("text").asText().trim();
            } else {
                throw new RuntimeException("OpenAI API request failed with status: " + response.getStatusCode());
            }
        }
    }
    

    说明:

    • 通过 @Value 注解获取 application.properties 中的 API 密钥。
    • 构建一个 HTTP 请求体,将 prompt、model、max_tokens、temperature 等参数传递给 OpenAI API。
    • 使用 RestTemplate 发送 POST 请求,并接收返回的 JSON 响应。
    • 在返回的 JSON 数据中提取 choices 字段的 text 值,即 AI 生成的回答。
    • 配置 RestTemplate Bean

      我们需要创建一个 RestTemplate Bean 来进行 HTTP 请求的发送。

      package com.example.aiapp.config;
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.web.client.RestTemplate;
      @Configuration
      public class AppConfig {
          @Bean
          public RestTemplate restTemplate() {
              return new RestTemplate();
          }
      }
      

四、创建控制器类暴露接口

我们将创建一个控制器类 AIController,为前端提供一个接口,用户可以通过这个接口发送文本并获取 AI 生成的回复。

package com.example.aiapp.controller;
import com.example.aiapp.service.OpenAIService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/ai")
public class AIController {
    private final OpenAIService openAIService;
    @Autowired
    public AIController(OpenAIService openAIService) {
        this.openAIService = openAIService;
    }
    // 处理用户请求,获取 AI 响应
    @PostMapping("/chat")
    public String chatWithAI(@RequestBody String prompt) {
        return openAIService.generateResponse(prompt);
    }
}

说明:

Java SpringBoot 调用大模型 AI 构建 AI 应用
(图片来源网络,侵删)
  • @PostMapping("/chat"):通过 POST 请求接收用户输入的文本(即 prompt)。
  • 调用 OpenAIService 的 generateResponse 方法获取 AI 返回的结果,并将其作为响应返回。

    五、启动应用并测试

    1. 启动 Spring Boot 应用

      使用 IDE 启动 Spring Boot 应用,或者通过命令行运行:

      Java SpringBoot 调用大模型 AI 构建 AI 应用
      (图片来源网络,侵删)
      mvn spring-boot:run
      
    2. 测试接口

      使用 Postman 或 cURL 发送请求测试接口:

      Java SpringBoot 调用大模型 AI 构建 AI 应用
      (图片来源网络,侵删)

      请求 URL: http://localhost:8080/api/ai/chat

      请求方式: POST

      请求体(JSON 格式):

      "What is the weather like today?"
      

      响应:

      "The weather today is sunny with a high of 25°C."
      

    六、总结

    通过本篇文章,我们展示了如何使用 Java SpringBoot 调用 OpenAI GPT-3/4 模型,构建一个基于 AI 的对话系统。这个系统能够根据用户输入的 prompt,生成 AI 响应,解决诸如自动客服、智能问答等问题。

    本示例展示了如何:

    • 使用 SpringBoot 构建 Web 应用。
    • 调用外部大模型 AI 提供的 API。
    • 使用 RestTemplate 发起 HTTP 请求并解析 JSON 响应。

      这种方式可以应用到多种 AI 场景中,如自然语言处理、情感分析、机器翻译等。随着大模型 API 的普及,开发者可以轻松地构建智能化的应用,提升产品的智能化水平。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码