준프로

[Chat gpt - Slack연동3] - chat gpt API 사용하기 본문

프로그래밍

[Chat gpt - Slack연동3] - chat gpt API 사용하기

jun'sProgramming 2024. 3. 23. 14:21

chat gpt API ?

OpenAI 사 홈페이지에서 구독할 수 있는 chatGPT Plus 와  차이점을 알고 넘어가자.

구분 모델명 처리량(토큰) 데이터학습 멀티모달
GPT plus(구독) GPT-4 GPT-4 32,768 23년 4월 o
API GPT-4-Turbo        
gpt-4-turbo-2024-04-09 128,000 23년 4월 o
GPT-4 gpt-4 8,192 21년 9월 x
gpt-4-32K 32,768 21년 9월 x
GPT-3.5 Turbo gpt-3.5-turbo-0125 16,385 21년 9월 x
gpt-3.5-turbo-instruct 4,096 21년 9월 x

멀티모달 : 다양한 종류의 데이터를 처리하고 이해할 수 있는 기능 (ex. 이미지)

 

위와 같이 chat GPT plus 를 구독하고 OpenAI 홈페이지에서 이용할 경우 최신버전의 GPT-4 모델의 기능을 모두 이용할 수 있지만, 아직 chat GPT API 의 경우에는 제한적이다. gpt-4-turbo 모델로 비슷하게 지원하고 있지만 아직 모델명에 preview 가 들어가는걸 봐선 맛보기 버전임을 알 수 있다. 안정화된 gpt-4-turbo 모델 출시됨.


chat gpt API 사용하기

전에 발급 받은 API 키를 사용해 chat gpt API 를 호출해보자.

from openai import OpenAI

api_token = #발급받은 chat gpt api 키 넣기
temperature = 0.2
max_tokens = 1024
frequency_penalty=0.0

def ChatGPT(message, API_KEY=api_token):
    # api key 세팅
    client = OpenAI(api_key=API_KEY)

    # ChatGPT API 호출
    response = client.chat.completions.create(
        model="gpt-3.5-turbo-0125",
        messages=message,
        temperature=temperature,
        max_tokens=max_tokens,
        frequency_penalty=frequency_penalty
    )

    return response.choices[0].message.content


def main():
    content = input("input : ")
    message = [{"role":"user","content":content}]

    print(ChatGPT(message))



if __name__ == '__main__':
    main()

chat gpt 3.5-Turbo API 모델을 사용하기 위한 코드이다.

API 호출 시 응답

위와 같은 호출에 대한 응답이 이뤄지면 쓴 만큼사용료를 지불하고 API 를 사용한 것이다. 

3.5 Turbo 부터 대화의 맥락을 이해 시키기 위해 딕셔너리 형태의 메세지 리스트 형식으로 요청이 가능해졌다. 이전에는 하나의 질문에 대한 답만 줬다면, 딕셔너리 리스트 형태의 메세지를 요청함으로서 어느 대화 내용이든 메세지에 담아 보내면 chat gpt 가 대화 내용을 이해하고 거기에 대한 알맞은 답을 제공한다. 


chat gpt API 스펙

아래는 Chat gpt API 를 사용하기 위해서 호출 시 여러 파라미터 값들이 있는데, 각 값들에 대한 설명이 상세히 설명된 블로그.

https://blog.deeplink.kr/?p=1379#%E2%80%98max_tokens

 

[ChatGPT] 챗GPT 최적화, API와 함께하는 파라미터(Parameter, 매개변수) 활용 가이드 - DEEPLINK CORE Lab_

이번 포스트에서는 ChatGPT API를 통해 모델을 사용하고 최적화 할 때 파라미터를 어떻게 조절 할 수 있는지에 대해 알아보자.

blog.deeplink.kr

위에 예시 코드에서 사용한 파라미터 값들에 대한 간단한 설명이다.

  • model : 사용할 언어 모델을 지정합니다.
  • messages : gpt  에 전달할 내용을 입력하는 부분입니다.
  • max_tokens : Chat gpt 모델이 생성하는 답변의 길이(최대 토큰 수)를 제한합니다.
  • temperature : 답변 출력 결정에 대한 확률성(랜덤성)을 제어합니다.
    • 0 ~ 2 사이의 값을 가지며 값이 높을 수록 다양하고 창의적인 답변을 생성하는 경향이 있습니다.
  • top_p : Chat gpt 모델이 답변을 생성하기 위해 학습된 데이터 내에서 검색할 스코프의 범위를 지정합니다.
    • 0 ~ 1 사이의 값을 가지며 temperature 와 같이 답변의 다양성을 결정하는 요소입니다.
  • frequency_penalty : -2 ~ 2 사이의 값을 가지며 값에 따라 모델은 일반적으로 자주 나오는 토큰의 사용을 선호하거나 피하게 된다. (반복되는 단어 사용을 피함)
    • 양수 값 - 반복되는 단어의 사용 감소
    • 음수 값 - 반복되는 단어의 사용 증가

chat gpt API 비용

  • Chat GPT API 는 금액을 충전 해놓고 사용한 만큼 차감되는 방식(종량제)
  • 아래와 같이 사용량과 모델 성능에 따른 비용이 요구된다.
  • 비용은 토큰(token) 단위로 측정된다.
  • 질문과 응답에 대한 각각의 비용을 측정한다.
  • 정책이 바뀌면 가격에도 변동이 있으니 openAI 홈페이지에서 확인하는걸 추천.
  • https://openai.com/pricing
 

Pricing

Simple and flexible. Only pay for what you use.

openai.com

 

gpt-4-Turbo api

※ gpt-4-1106-vision-preview 모델은 이미지를 이해한 Vision 기능이 포함된 모델. 이미지의 크기와 해상도에 따라 달라진다.(20MB 크기의 용량제한)

 

gpt-4 api

※ 32k 모델의 경우 최대 32,000개의 토큰까지 한번에 입력을 처리할 수 있음. 매우 긴 문서, 책의 여러 장, 복잡한 데이터 셋을 한 번에 처리할 수 있음을 의미.

 

gpt-3.5-turbo api

 

chat gpt API 는 이정도로 알아보고 다음 포스트엔 slack API 를 사용할 수 있는 슬랙 bot 에대해 알아보자.