이번엔 아주 핫한 chatGPT를 한 번 써보려고 한다.

평소에도 chatGPT로 코딩하면서 모르는 기초 지식으로 물어보면서 공부하고 있는 데 아주 유용하다.

비슷해서 뭐가 다른 것인지 잘 모르는 용어들이 있을 경우 그 용어들을 정의, 비교를 해주어서 이해하기 딱 좋다.

그래서 이렇게 좋은 chatGPT를 내 개인프로젝트에서 사용할 수 있는 방법이 있을 것 같아서 열심히 구글링하거나 chatGPT에게 물어봤다.

chatGPT는 진짜…. 후… 라이브러리 없이 사용하는 방법을 알려줘서 몇 시간동안 따라하다가 포기했다.

좀 더 간단하게 설정할 수 있는 방법을 이 블로그에 적겠다.

1. API key 발급받기

openapi api key발급받는 사이트에 들어간다.

사이트에 들어가면 위 사진에 표시한 부분에 들어가서 Create new secret key 버튼을 누르면

위처럼 키를 발급해준다.(참고로 저기 뜬 key는 삭제 했기 때문에 그대로 쓴다고 해도 써지질 않을 것이다. 따로 발급받길 바람.)

키는 복사해서 3번 컨트롤러 생성 부분에 넣어주면 된다.

2. dependency 추가

일단, 라이브러리부터 설치해야한다.

build.gradle 의 dependencies에 아래를 넣는다.

implementation group: 'com.theokanning.openai-gpt3-java', name: 'client', version: '0.9.0'

꼭 잊지말고 위 코끼리 모양을 누르자!!

3. controller 생성

@PostMapping
    public ResponseEntity<?> sendQuestion(@RequestBody String request) {
        
        //1번에 발급받은 API key를 붙여 넣는다.
        OpenAiService service = new OpenAiService("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");
        CompletionRequest completionRequest = CompletionRequest.builder()
            .prompt(request)
            .model("text-davinci-003") // 이 모델로 해줘야 제대로 대화가 된다. 하지만 한국어는 잘 안된다. 다른 모델을 써야할듯...
            .echo(false) // 이 기능은 내가 질문한 걸 똑같이 뱉어주고 나서 그 질문의 답을 그 뒤에 붙여서 보내기 때문에 질문을 반복할 필요가 없기 때문에 false
            .build();
        return ResponseEntity.ok(service.createCompletion(completionRequest).getChoices());
    }

이러면 끝이다!

인섬니아로 한 번 호출해보자!

4. 실행 결과

뭔가 앞에 쓸데없는 사족이 붙은 기분이 들지만 기분 탓일 것이다.

아무튼! 뭔가 대화가 된다. 성공이다!

Comments