Java SpringBoot는 OpenAI ChatGPT를 호출하기 위한 관련 인터페이스를 구현합니다(자세한 자습서).

개요

설명하다

Java는 OpenAI 인터페이스를 호출하고, Java는 ChatGPT 채팅을 구현하기 위해 호출하며, OpenAIAPI는 자체적으로 패키지된 OpenAI GPT-3 채팅 API의 Java 도구 클래스이며, 자연어 상호 작용을 위해 Java 코드를 통해 GPT-3 모델을 호출하는 데 사용할 수 있습니다. 스마트 채팅 및 기타 기능을 실현합니다.
GPT-3 모델을 호출하여 텍스트를 입력하고 로봇의 대화 응답 텍스트를 반환합니다.
첨부된 프로젝트 코드: 이 문서의 끝에

OpenAI3.5 모델 버전 사용

도구

Lombok 및 hutool 종속성이 사용됩니다.

다음은 내가 캡슐화한 도구 클래스입니다. 자신의 API를 작성하면 사용할 수 있습니다.


import cn.hutool.core.convert.ConvertException;
import cn.hutool.http.HttpException;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.experimental.UtilityClass;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author Astar
 * ClassName:OpenAIAPI.java
 * date:2023-03-03 16:49
 * Description:
 */
@UtilityClass
public class OpenAIAPI {
    
    
    /**
     * 聊天端点
     */
    String chatEndpoint = "https://api.openai.com/v1/chat/completions";
    /**
     * api密匙
     */
    String apiKey = "Bearer 你自己的key";

    /**
     * 发送消息
     *
     * @param txt 内容
     * @return {@link String}
     */
    public String chat(String txt) {
    
    
        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("model", "gpt-3.5-turbo");
        List<Map<String, String>> dataList = new ArrayList<>();
        dataList.add(new HashMap<String, String>(){
    
    {
    
    
            put("role", "user");
            put("content", txt);
        }});
        paramMap.put("messages", dataList);
        JSONObject message = null;
        try {
    
    
            String body = HttpRequest.post(chatEndpoint)
                .header("Authorization", apiKey)
                .header("Content-Type", "application/json")
                .body(JsonUtils.toJson(paramMap))
                .execute()
                .body();
            JSONObject jsonObject = JSONUtil.parseObj(body);
            JSONArray choices = jsonObject.getJSONArray("choices");
            JSONObject result = choices.get(0, JSONObject.class, Boolean.TRUE);
            message = result.getJSONObject("message");
        } catch (HttpException e) {
    
    
            return "出现了异常";
        } catch (ConvertException e) {
    
    
            return "出现了异常";
        }
        return message.getStr("content");
    }

    public static void main(String[] args) {
    
    
        System.out.println(chat("Hello,一个小浪吴啊"));
    }
}

매개변수 설명:
txt: 보낼 텍스트 내용.
반환 값: 봇의 회신 텍스트입니다.

시험

지침

  1. OpenAI API를 사용하기 전에 OpenAI 공식 웹사이트에 계정을 등록하고 API 키를 받아야 합니다.
  2. 채팅 방식을 사용하기 전에 OpenAIAPI의 chatEndpoint 및 apiKey 변수를 수정하여 각각 API의 URL 및 키를 지정해야 합니다.
  3. 채팅 방식을 사용하기 전에 사용되는 GPT-3 모델과 매개 변수를 확인해야 합니다.
  4. 채팅 방식을 사용할 때는 텍스트 내용의 길이와 형식, 네트워크 연결의 안정성과 속도에 주의를 기울여야 합니다.

코드 설명

이 코드는 채팅을 위해 OpenAI의 API 인터페이스에 액세스하는 데 사용되는 Java 도구 클래스입니다. 다음은 몇 가지 중요한 기술 정보입니다.

  1. Java Lombok 도구 클래스는 @UtilityClass 주석을 제공하는 데 사용되어 클래스를 인스턴스화할 수 없는 도구 클래스로 만듭니다.
  2. 문자열 유형의 두 상수 chatEndpoint 및 apiKey가 정의되어 각각 OpenAI의 채팅 API 끝점과 API 키를 나타냅니다.
  3. OpenAI의 API 인터페이스에 채팅 메시지를 보내는 데 사용되는 채팅 메서드를 정의하고 입력 매개 변수는 채팅 내용을 나타내는 txt입니다.
  4. 타사 Java 도구 클래스 Hutool은 HTTP 요청 및 JSON 데이터 구문 분석에 사용됩니다. 그 중 HttpRequest.post() 메서드는 POST 요청을 보내는 데 사용되고, JsonUtils.toJson() 메서드는 매개 변수 paramMap을 JSON 형식의 문자열로 변환하는 데 사용되며, JSONUtil.parseObj() 메서드는 다음과 같은 데 사용됩니다. 인터페이스에서 반환된 JSON 문자열을 JSONObject 개체로 구문 분석합니다.
  5. 요청을 보낼 때 요청 매개변수를 지도 객체로 캡슐화합니다. 여기서 모델 속성은 사용된 GPT 모델을 나타내고 메시지 속성은 사용자의 채팅 메시지를 나타내는 HashMap 객체를 포함하는 목록 객체입니다.
  6. 요청을 보낸 후 인터페이스에서 반환한 JSON 데이터에서 챗봇이 반환한 메시지를 가져온 다음 메시지의 콘텐츠 속성을 메서드의 반환 값으로 사용합니다.
  7. 예외 처리에서는 Hutool에서 제공하는 예외 클래스 HttpException 및 ConvertException을 사용하여 예외를 처리합니다.

일반적으로 이 코드는 Java의 Hutool 도구 클래스를 사용하여 HTTP 요청을 보내고 JSON 데이터를 구문 분석하므로 OpenAI API를 통해 채팅 기능을 실현합니다.

발문

프로젝트 주소: https://gitee.com/wy521a/astar-weixin-mp

통합공식계정 이용 : https://gitee.com/wy521a/astar-weixin-mp

추천

출처blog.csdn.net/A_yonga/article/details/129398716