Spring AI对接ChatGPT使用详解

随着人工智能的发展,越来越多的开发者开始将AI技术整合到他们的应用程序中。OpenAI的ChatGPT凭借其强大的对话生成能力,成为了许多应用的首选。本文将介绍如何在Spring框架中对接ChatGPT,并给出相应的代码示例。

一、环境准备

首先,确保你已经在系统中安装了Java和Maven。同时,需要在OpenAI注册一个账号,并获得API密钥。

二、创建Spring Boot项目

可以使用Spring Initializr来快速生成一个新的Spring Boot项目。选择所需的依赖,例如Spring WebSpring Boot DevTools

三、添加依赖

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>

四、创建ChatGPT服务类

接下来,我们需要创建一个服务类来与ChatGPT API进行交互。这个类将负责发送请求并处理响应。

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.*;
import java.util.HashMap;
import java.util.Map;

@Service
public class ChatGPTService {

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

    private final RestTemplate restTemplate;

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

    public String chatWithGPT(String userInput) {
        String apiUrl = "https://api.openai.com/v1/chat/completions";

        // 创建请求体
        Map<String, Object> requestBody = new HashMap<>();
        requestBody.put("model", "gpt-3.5-turbo");
        requestBody.put("messages", new Object[]{
                new HashMap<String, String>() {{
                    put("role", "user");
                    put("content", userInput);
                }}
        });

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.set("Authorization", "Bearer " + apiKey);

        HttpEntity<Map<String, Object>> entity = new HttpEntity<>(requestBody, headers);

        ResponseEntity<Map> response = restTemplate.postForEntity(apiUrl, entity, Map.class);
        Map<String, Object> responseBody = response.getBody();

        if(responseBody != null && responseBody.get("choices") != null) {
            return ((Map) ((List) responseBody.get("choices")).get(0)).get("message").get("content").toString();
        }
        return "无响应";
    }
}

五、创建控制器

然后,创建一个控制器类来处理用户的请求并返回ChatGPT的回答。

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

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

    private final ChatGPTService chatGPTService;

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

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

六、配置API密钥

application.properties中添加以下内容,替换为你自己的API密钥:

openai.api.key=your_openai_api_key

七、启动应用

完成以上步骤后,你可以运行Spring Boot应用。启动后,你可以使用Postman或其他工具向http://localhost:8080/chat发送POST请求,请求体中包含用户输入的文本。例如:

"你好吗?"

八、总结

通过以上步骤,你可以将ChatGPT整合到Spring Boot应用中,从而为用户提供智能对话功能。你可以根据实际需要对代码进行扩展和优化,例如处理异常、优化请求等。希望这篇文章能帮助你快速上手ChatGPT的集成开发。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部