저번 포스팅에서 소셜 로그인까지 구현하였는데 이제 chatGPT API를 사용하는 법까지 포스팅 하겠습니다.
우선 당연히 API를 사용하기 위해서 key를 발급받아야 합니다.
OpenAI
Creating safe AGI that benefits all of humanity
openai.com
openai 에서 로그인을 하면
API를 누른 후 그리고 우측 상단 본인 닉네임을 누르면
'View API keys'를 누릅니다.
그럼 위 화면이 나오면서 key를 발급 받을 수 있는 버튼이 보이는데 위 버튼을 눌러 key를 발급받습니다.
주의!! key를 발급 받으면 key를 복사할 수 있게 모달창이 나오는데 복사 하신 후에 따로 꼭 저장하시기 바랍니다.
(저는 나중에 복사한 key가 지워져서 재발급 받았었습니다. 발급 받았던 key를 보여주질 않아서 다시 확인 하는 법을 모르겠더라구요ㅜㅜ)
key까지 발급 받았다면 이제 chatGPT API를 사용하기 위해서 gradle에 의존성을 추가해야 합니다.
build.gradle
implementation 'org.apache.httpcomponents:httpclient:4.5.10'
implementation 'com.google.code.gson:gson:2.10.1'
* gson을 추가한 이유는 JSON 직렬화를 위해 사용합니다.
JSON 직렬화란?
JSON 직렬화는 데이터나 객체를 JSON 형식의 문자열로 변환하는 과정을 의미합니다. 이 과정은 데이터를 컴퓨터에서 사용하기 쉬운 객체나 자료 구조에서 JSON 형식의 문자열로 바꾸는 것을 말합니다. JSON(JavaScript Object Notation)은 데이터를 표현하기 위한 경량의 형식으로, 사람이 읽을 수 있고, 컴퓨터가 파싱하고 생성하기 쉽습니다.
이제 의존성(dependencies) 추가도 완료했다면 Model 폴더를 만들고 요청과 응답을 위한 클래스를 만들어 줍니다.
ChatGptRequest
package com.example.createscripter.model;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
@Data
public class ChatGPTRequest {
private String model = "text-davinci-003";
private String prompt;
private int temperature = 1;
@SerializedName(value = "max_tokens")
private int maxTokens;
}
ChatGptRequest는 GPT-3 모델에 전달되는 요청을 나타내는 데이터 클래스입니다.
주로 모델에 전달할 입력 텍스트와 관련된 정보를 설정합니다.
ChatGptResponse
package com.example.createscripter.model;
import lombok.Data;
import java.util.List;
@Data
public class ChatGPTResponse {
private List<ChatGptChoice> choices;
}
ChatGptResponse는 GPT-3 모델의 응답을 나타내는 데이터 클래스입니다.
응답을 저장하고 분석하기 위해 쓰입니다. 저는 GPT-3 모델이 반환한 응답을 JSON 형식으호 역직렬화하여 ChatGptResponse 객체로 변환합니다.
ChatGptChoice
package com.example.createscripter.model;
import lombok.Data;
@Data
public class ChatGptChoice {
private String text;
}
ChatGPTChoice는 ChatGptResponse 객체 내에서 선택지를 나타내는 클래스입니다.
ChatGPTChoice 객체는 ChatGptResponse 의 getChoices() 메서드를 통해 선택지 목록 중 첫째 선택지를 받을 겁니다.
application.properties
OPEN_AI_URL=https://api.openai.com/v1/completions
OPEN_AI_KEY=여기에 발급 받은 key를 넣어 주세요
전역변수로 사용할 URL과 key를 세팅합니다.
여기까지 chatGPT API를 사용 할 준비를 마쳤습니다.
다음 포스팅에 이어서 컨트롤러와 서비스를 만드는 포스팅을 하겠습니다.
'Side Project' 카테고리의 다른 글
[Spring Boot] 환자 관리 프로그램 - Entity, Repository (2) (0) | 2023.10.19 |
---|---|
[Spring Boot] 환자 관리 프로그램 - 설정 (1) (0) | 2023.10.18 |
[Spring Boot] chatGPT를 활용한 AI 사이트 (4) - chatGPT API 사용하기 (0) | 2023.10.13 |
[Spring Boot] chatGPT를 활용한 AI 사이트 (2) - 소셜 로그인 구현 (0) | 2023.09.18 |
[Spring Boot] chatGPT를 활용한 AI 사이트 (1) - 프로젝트 설정 (0) | 2023.09.13 |