springboot 에서 chatGPT API를 연동해보는 간단 프로젝트를 만들어 보겠습니다.
생각보다 어렵지 않으니 순서대로 따라오시면 됩니다.
우선 chatGPT API 를 이용하기 위해 API-KEY가 필요합니다.
https://platform.openai.com/account/api-keys
링크를 따라 들어가서, 로그인 먼저 하고 링크에 다시 들어가면
아래에 빨간색 상자 + Create new secret key 를 발급 받으실 수 있습니다.
추후에 api 사용을 위한 api-key 이니, 꼭 알고계셔야 합니다.
이제 프로젝트를 생성해봅시다.
id 'org.springframework.boot' version '2.7.14'
저는 스프링 부트 버전을 2.7.14로 생성하였습니다.
chatGPT-API 를 이용하기 위해 build.gradle에 의존성 주입을 해야합니다.
implementation 'io.github.flashvayne:chatgpt-spring-boot-starter:1.0.4'
위의 라이브러리를 추가해 줍시다.
[application.yml]
chatgpt:
api-key: #your chatgpt-api-key
#your chatgpt-api-key 이 부분에 발급받은 api-key를 적어주시면 됩니다.
[TestController.java]
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping("/api/v1/chat-gpt")
public class TestController {
private final ChatgptService chatgptService;
private final ChatService chatService;
@PostMapping("")
public String test(@RequestBody String question){
return chatService.getChatResponse(question);
}
}
ChatgptService는 라이브러리에서 제공해주는 핵심 chatgpt 서비스입니다. 우리는 이걸 활용할겁니다.
chatService는 저희가 만든 ChatgptService를 담기위한 서비스 파일 입니다.
여기서 @RequestMapping("/api/v1/chat-gpt") 안의 url은 임의로 설정하셔도 무관합니다!
[ChatService.java]
서비스 코드도 간단합니다.
@Service
@RequiredArgsConstructor
public class ChatService {
private final ChatgptService chatgptService;
public String getChatResponse(String prompt) {
// ChatGPT 에게 질문을 던집니다.
return chatgptService.sendMessage(prompt);
}
}
라이브러리에서 제공하는 chatgptService안에 sendMessage라는 메소드가 있습니다.
이 메소드는 chatGPT에게 질문을 던지는 메소드입니다.
파라미터는 질문할 String 값을 작성해주면됩니다.
결과 화면 테스트는 PostMan으로 해보겠습니다.
설정사항
질문에 대한 응답값으로 chatgpt가 적절한 답변을 주는것을 확인 하실 수 있습니다.
발급받은 api-key는 유효기간이 24시간 입니다.
하루지날때마다 api-key를 새로 발급 받아줘야합니다.
발급받은 사이트에서 api-key를 발급받기 위해서는 로그인 계정이 필요한대,
로그인 한계정으로 18달러가 무료로 지급되며, api-key를 한번 발급받을 때마다 0.03 달러가 차감됩니다.