Spring으로 GPT API를 사용해보자(1)

1
post-thumbnail

서론

이 글을 쓰게 된 계기는 네 번의 프로젝트를 진행하였고 그 중 세 번의 프로젝트는
GPT API를 활용하여 워드 클라우드 분석, 댓글 감정 분석, 게시글 작성 도우미로 썻었다.
그리고 저 번 강사님께서 좋게 보셨는지 학생들에게 알려주기 위해 간단하게 예제 코드 만들어줄 수 있냐 여쭤 보셨고,
나는 밥과 교환하기로 했다. 돕고 살면 좋은거니까

처음엔 라이브러리가 있길래 사용해보았지만 max token을 너무 크게 잡아버리면 타임아웃이 발생하는 문제가 있었다.
그래서 OPEN AI API 문서에서 보고 적용하기로 했었다

글을 읽는 사람들 대부분은 글 보단 그림이나 이미지를 좋아하고, 서론은 더욱 안 좋아하니 시작해보자 지금 부터

이 글을 따라 처음 만들어두면 매우 편하다.
Prompt만 바꿔서 Boilerplate으로 하면 되니까

시작하기

참고로 API 문서가 주기적으로 변한다
그 점 유의하고 이 글을 읽어줬으면 하는 바람이다.

아래 주소로 들어가면 된다.

https://platform.openai.com/docs/overview

회원 가입이 되어 있다면 상관없고
우선 카드 등록부터 해야한다.

어디서 등록하는지 필자는 오래돼서 기억이 안 난다.

카드 등록이 끝마쳤다면

키 발급

API 키를 발급 해야한다

여기서 새 키를 만들면 된다

api 키 이름을 입력하고 만들면된다 주의 할점은 만들게 된다면 꼭 복사해둬야한다 한 번 만들고 다시 api키를 복사 못하는거 같다.

한도 설정

GPT API는 유료다 응답하는 gpt의 글자수에 따라서 요금이 부과된다. 그러므로 꼭 한도를 설정해두자 테스트 하다보면 내가 얼마나 사용했는지 모르기도 하고

https://platform.openai.com/account/limits

여기서 설정하면 된다 괜히 돈 많이 깨지지 말자 나도 알기 싫었다...

아래 주소에선 현재 사용한 금액을 알 수 있다.
https://platform.openai.com/usage
가격은 환율에 따라 달라진다.

GPT 테스트

한도 설정도 했고 키 발급도 했다면 해당 주소로 들어가보자

https://platform.openai.com/playground

여기서 gpt를 테스트 해볼 수 있다

이 포스팅에선 단순히 요청을 보내고 응답받는 것만 할거기 때문에 Complete로 들어가자

현재는 많이 바꼈는데 Complete외에도 한 번 테스트 해보자

Complete로 들어온 이유는 단순하다.

View code를 클릭 해보면 아래와 같이 요청 형식을 지정 할 수 있다.

이걸 복사해보자

하기전에 알아두면 좋은거

  "top_p": 1,
  "frequency_penalty": 0,
  "presence_penalty": 0

top_p
값이 1일 때, 모델은 다음 토큰을 생성할 때 가능한 모든 토큰을 고려함
값이 줄어들면, 모델은 더 확률이 높은 토큰들만을 고려해서 더 예측 가능하고 일관된 텍스트를 생성함

frequency_penalty
모델이 반복적으로 같은 단어나 구를 사용하는걸 얼마나 피할지 조절함
값이 높을수록 모델은 이미 사용한 단어나 구를 다시 사용하는건 피할려고함

presence_penalty
새로운 개념이나 아이디어를 도입하는데 얼마나 적극적으로 할지를 조절함
값이 높을수록 모델이 이미 언급한 개념이나 주제에서 벗어나 새로운 내용을 생성할려고함

창의성에 크게 영향을 미침 ㄹㅇ로

API Test

postman이나 Talend API 아무거나 사용해도 좋다.

Post 형식으로
https://api.openai.com/v1/completions
해당 제이슨 형식과 똑같이 요청을 보내면 된다.
보낼때 model과 prompt 원하는 걸로 바꿔주면 된다.

여기서 max_token은 지피티가 응답할 글자수로 생각하면 된다.
gpt는 이 글자수 내에서 보통 답변할려고한다.

해더는 설정을 반드시 해야한다.
content type은 json
Authorization에 Bearer API키

요청이 잘 보내졌다면 아래와 같이 Body에 응답이 떨어진다.

다음번에 계속

길어질거 같아서 두 단계로 나눠서 포스팅 하게되었읍니다. 많관부

0개의 댓글