Springboot + chatGPT API 연동해보기.

이민우·2023년 7월 28일
2

Spring Boot

목록 보기
15/20

springboot 에서 chatGPT API를 연동해보는 간단 프로젝트를 만들어 보겠습니다.
생각보다 어렵지 않으니 순서대로 따라오시면 됩니다.

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

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으로 해보겠습니다.

설정사항

  • HTTP 메서드 POST로 변경
  • BODY 값에 json 형식으로 question 넣어주기

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

주의사항

발급받은 api-key는 유효기간이 24시간 입니다.
하루지날때마다 api-key를 새로 발급 받아줘야합니다.
발급받은 사이트에서 api-key를 발급받기 위해서는 로그인 계정이 필요한대,
로그인 한계정으로 18달러가 무료로 지급되며, api-key를 한번 발급받을 때마다 0.03 달러가 차감됩니다.

profile
백엔드 공부중입니다!

0개의 댓글

관련 채용 정보