Spring AI - 使用Spring快速开发ChatGPT应用

在当今的人工智能热潮中,ChatGPT作为一种强大的对话生成模型,已经被广泛应用于多种场景。如果你想利用Spring框架快速开发一个集成ChatGPT的应用,本文将为你提供一个简单的示例,帮助你快速上手。

环境准备

在开始之前,你需要确保已经安装了以下工具和框架:

  • Java JDK 11或更高版本
  • Maven
  • Spring Boot
  • OpenAI的API密钥(在OpenAI的官网注册获取)

创建Spring Boot项目

首先,你可以通过Spring Initializr(https://start.spring.io/)创建一个新的Spring Boot项目。选择Maven项目,添加以下依赖:

  • Spring Web
  • Spring Boot DevTools
  • Lombok(可选,用于减少样板代码)

创建完成后,将项目导入到你的IDE中。

编写代码

接下来,我们将创建一个简单的RESTful API来与ChatGPT进行交互。

1. 添加依赖

pom.xml中,添加如下依赖以支持HTTP请求和JSON处理:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

2. 创建ChatGPT服务

在项目中创建一个服务类ChatGPTService,用于与OpenAI的API进行交互。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;

@Service
public class ChatGPTService {

    @Value("${openai.api.key}")
    private String apiKey;

    private final String apiUrl = "https://api.openai.com/v1/chat/completions";

    private final RestTemplate restTemplate;

    public ChatGPTService(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    public String getResponse(String userInput) {
        HttpHeaders headers = new HttpHeaders();
        headers.set("Authorization", "Bearer " + apiKey);
        headers.set("Content-Type", "application/json");

        String requestBody = String.format("{\"model\":\"gpt-3.5-turbo\",\"messages\":[{\"role\":\"user\",\"content\":\"%s\"}]}",
                userInput);

        HttpEntity<String> entity = new HttpEntity<>(requestBody, headers);
        ResponseEntity<String> response = restTemplate.exchange(apiUrl, HttpMethod.POST, entity, String.class);

        // 解析返回结果,提取ChatGPT的回复
        // 这里需要使用JSON解析库来处理返回的JSON字符串
        String responseBody = response.getBody();
        // 你可以使用Jackson或Gson来解析JSON
        // 此处省略具体解析逻辑
        return responseBody; // 这里需要提取出具体的响应内容
    }
}

3. 创建控制器

然后,我们创建一个控制器类ChatGPTController,用于处理用户请求。

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/chat")
public class ChatGPTController {

    private final ChatGPTService chatGPTService;

    public ChatGPTController(ChatGPTService chatGPTService) {
        this.chatGPTService = chatGPTService;
    }

    @PostMapping
    public String chat(@RequestBody String userInput) {
        return chatGPTService.getResponse(userInput);
    }
}

4. 配置OpenAI API密钥

application.properties文件中添加你的OpenAI API密钥:

openai.api.key=YOUR_OPENAI_API_KEY_HERE

5. 启动应用

现在你可以运行Spring Boot应用,访问http://localhost:8080/chat,使用POST请求发送你的用户输入。

例如,使用cURL命令可以像这样发送请求:

curl -X POST http://localhost:8080/chat -d "你好,ChatGPT!" -H "Content-Type: application/json"

总结

通过以上简单的步骤,你已经成功创建了一个使用Spring Boot与ChatGPT进行交互的应用。这是一个基础的示例,后续你可以进一步优化,例如添加异常处理、更复杂的对话管理、用户认证等功能。希望这篇文章能帮助你在Spring和ChatGPT的开发过程中迈出第一步!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部