본문 바로가기

Spring

Springboot + chatGPT API 연동해보기.

728x90
반응형
SMALL

springboot 에서 chatGPT API를 연동해보겠습니다.

 

생각보다 어렵지 않으니 순서대로 따라오시면 됩니다.

 

우선 chatGPT API 를 이용하기 위해 API-KEY가 필요합니다.

 

https://platform.openai.com/account/api-keys

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

링크를 따라 들어가면, 로그인 해야할겁니다.

로그인 후 위에 링크를 다시 들어가면, 

아래에 + Create new secret key 를 발급 받으실 수 있습니다.

추후에 api 사용을 위한 api-key 이니, 알고계셔야 합니다.

 

이제 프로젝트를 생성해봅시다.

 

id 'org.springframework.boot' version '3.0.6'

저는 스프링부트 버전 3.0.6v 으로 생성하였습니다.

 

chatGPT-API 를 이용하기 위해 의존성 주입을 해야합니다.

implementation 'io.github.flashvayne:chatgpt-spring-boot-starter:1.0.4'

위의 라이브러리를 추가해 줍시다.

 

[application.yml]

chatgpt:
  api-key: #your chatgpt-api-key

아까 전에 발급 받은 api-key를 yml 파일에 적어줍시다.

 

 

이제 chatGPT를 연동하기 위한 준비가 끝났습니다.

 

[testController.java]

@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/api/v1/chat-gpt")
public class testController {
    private final ChatService chatService;
    private final ChatgptService chatgptService;

    //chat-gpt 와 간단한 채팅 서비스 소스
    @PostMapping("")
    public String test(@RequestBody String question){
        return chatService.getChatResponse(question);
        //\n\nAs an AI language model, I don't have feelings, but I'm functioning well. Thank you for asking. How can I assist you today?
    }

ChatgptService는 라이브러리에서 제공해주는 핵심 chatgpt 서비스입니다. 우리는 이걸 활용할겁니다.

 

chatService는 저희가 만든 ChatgptService를 담기위한 서비스 파일 입니다.

 

[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 값을 작성해주면됩니다.

 

 

결과 화면 봅시다.

 

질문에 대한 응답값으로 chatgpt가 적절한 답변을 주는것을 확인 하실 수 있습니다.

 

 

 

주의 할점

 

발급받은 api-key는 유효기간이 24시간 입니다.

하루지날때마다 api-key를 새로 발급 받아줘야합니다.

 

발급받은 사이트에서 api-key를 발급받기 위해서는 로그인 계정이 필요한대,

로그인 한계정으로 18달러가 무료로 지급되며,

api-key를 한번 발급받을 때마다 0.03 달러가 차감됩니다.

 

728x90
반응형
LIST