본문 바로가기
기타/GPT

스프링 부트에서 GPT API를 통해 Service 이용하기

by 프로그래밍 공부 2023. 9. 27.

 지난 번에는 스프링 부트에서 GPT API를 연동했다면,

이번에는 스프링 부트에서 GPT API를 통해 질의를 날리고 답변을 받는 과정을 학습해보자.

 

우선 자바 커뮤니티 라이브러리인 Theo Kanning 님의 깃허브 내에서 제공하는 Maven 의존성을 추가해 준 다음

(Maven Repository에서도 확인이 가능하다)

다음과 같은 구조의 코드를 짜준다.

위의 코드에서 your token 부분에 지난번 발급받았던 api key값을 넣어준다.

(발급할 때 한 번만 확인할 수 있으니 만약 복사하지 못했다면 새로 발급해야한다.)

그 다음 CompletionRequest 클래스를 통해 gpt api로 질의를 날린다.

completionRequest는 위에서 보이는 것처럼

model (GPT 모델, gpt3, gpt3.5 turbo, gpt4 등의 모델을 선택할 수 있다.)

prompt (질문할 메시지를 담을 수 있다.)

echo(true, false 설정으로 API응답에서 입력 프롬프트와 모델 출력 결과를 확인 여부를 지시할 수 있다.)

로 구성될 수 있고 이에 더해

위와 같이 다양한 변수를 가지고 있기에 사용하기에 따라 다양하게 빌드해 

질의를 날릴 수 있다.

그 밖에도

suffix (생성된 텍스트에 추가할 문자열을 설정할 수 있다.)
maxTokens (생성된 텍스트의 최대 토큰 수를 지정할 수 있다. 즉, 텍스트 길이를 제한할 수 있다.)
stop (생성된 텍스트에 포함하지 말아야 할 단어나 토큰 설정)
user (사용자 정의 데이터를 전달할 수 있는 문자열)
등이 있다.

그 밖에도 여러 변수를 통해 gpt api를 활용할 수 있기 때문에 이는 사용하면서 조율해 나가는 것이 좋다. 

또한 OpenAiService도 필요에 따라 커스터마이징할 수 있기 때문에 활용도는 높은 편이다.

 

 

이렇게 구현하고 postman으로 질의를 날려봤다.

?

CompletionRequest 의 경우 

 A request for OpenAi to generate a predicted completion for a prompt.

와 같다고 한다. 

대화형이 아니기에 이상한 답변이 돌아올 수 있는 것이다.

대화형 API를 활용할 경우 ChatCompletionRequest를 활용하는 것이 좋다.

 

ChatCompletionRequest를 활용하면 다음과 같이 구현할 수 있다.

이렇게 구현한 뒤 Postman으로 다음 질의를 보낸다면 적당한 답변이 돌아온다.

 

이렇게 적당한 쿼리를 gpt api를 통해 날릴 수 있다.

이를 통해 본인이 만들 프로젝트 내에서 gpt로 통신하는 기능을 추가할 수 있는 것이다. 

물론 사용 토큰에 따라 금액이 부과되는데, 이 요금은 사용 모델에 따라 다르게 부과된다.

개인적으로는 gpt-3.5-turbo 모델을 주로 사용중이다. 이는 가격대비 효율적이라고 생각해서이다. 

Pricing (openai.com)

 

Pricing

Simple and flexible. Only pay for what you use.

openai.com

gpt 4보다 훨씬 싼 chat 봇 모델이기 때문이다.

'기타 > GPT' 카테고리의 다른 글

스프링부트에서 자바로 GPT 파인 튜닝하기  (0) 2023.10.06
스프링 부트에서 GPT API 연동하기  (0) 2023.09.27