AI

[GPT] ChatGPT API란?

mobile 2024. 9. 29. 13:25
반응형
ChatGPT API란?

ChatGPT API는 OpenAI에서 제공하는 언어 모델 API로, 사용자는 이를 통해 대화형 인공지능 모델인 GPT를 다양한 애플리케이션에 통합할 수 있습니다. 이 API는 텍스트 기반의 입력을 받아 GPT 모델이 학습한 데이터와 패턴을 바탕으로 적절한 응답을 생성합니다. 이를 통해 챗봇, 자동화된 고객 지원 시스템, 언어 번역, 문서 요약 등 다양한 서비스를 구축할 수 있습니다.

 

ChatGPT API의 주요 매개변수 목록

 

매개변수 설명 기본값 필수/선택 예시
model 사용할 GPT 모델을 지정. 문자열 없음 필수 "gpt-3.5-turbo"
messages 대화의 내용을 전달하는 필드로, 각 메시지는 role과 content로 구성. 배열 없음 필수 [{"role": "user", "content": "Hello"}]
temperature 응답의 창의성을 조절합니다. 값이 0에 가까울수록 결정적이고, 1에 가까울수록 창의적. 숫자(0~2) 1 선택 0.7
top_p 확률의 누적 합계를 기준으로 토큰을 샘플링하는 방식. 숫자(0~1) 1 선택 0.9
n 생성할 응답의 개수를 설정. 정수 1 선택 1
stream 응답을 실시간으로 받을지 여부 논리형 false 선택  
stop 모델이 응답 생성을 중단할 특정 문자열을 지정 문자열/배열 null 선택  
max_tokens 생성할 응답의 최대 토큰 수를 설정 정수 4096 또는 8192 선택 100
presence_penalty 새로운 주제를 언급할 가능성을 높이는 매개 변수 숫자(-2~2) 0 선택 0.6
frequency_penalty 동일한 주제나 단어의 반복을 줄이는 맥개 변수 숫자(-2~2) 0 선택 0.5
logit_bias   맵형 null 선택  
user   문자열 없음 선택  

 

API 매개변수 별 정의

 

1) model

 설명: 사용할 GPT 모델을 지정합니다. 예를 들어, gpt-3.5-turbo나 gpt-4 등의 모델이 있습니다. 최신 모델일수록 더 뛰어난 성능을 발휘하지만, 비용이나 사용 제한이 있을 수 있습니다.

 예시:

"model": "gpt-3.5-turbo"

 

2) messages

 설명: 대화의 내용을 전달하는 매개변수입니다. 이 필드는 대화 히스토리를 포함해야 하며, 각 메시지는 role과 content로 구성됩니다. role에는 system, user, assistant가 포함되며, 대화의 성격을 지정합니다.

  - system: 시스템이 설정하는 초기 메시지. AI의 동작 방식을 조정하는 데 사용됩니다.
  - user: 사용자가 보내는 입력 메시지.
  - assistant: 모델의 응답을 포함하는 메시지.

 예시:

"messages": [
  {"role": "system", "content": "You are a helpful assistant."},
  {"role": "user", "content": "What's the weather today?"}
]

 

3) temperature
설명: 응답의 창의성을 조정하는 매개변수입니다. 0에 가까울수록 더 결정적인 응답을, 1에 가까울수록 더 창의적이고 랜덤 한 응답을 생성합니다.

예시:

"temperature": 0.7

 

4) max_tokens
설명: 모델이 생성할 수 있는 응답의 최대 토큰 수를 지정합니다. 토큰은 대략적으로 단어에 해당하며, 짧은 응답을 원할 경우 이 값을 낮게 설정할 수 있습니다.

예시

"max_tokens": 100

 

5) top_p

설명: 토큰 샘플링에 사용되는 매개변수로, top_p는 확률의 누적 합계를 기준으로 토큰을 선택하는 방식입니다. 이 값이 1에 가까울수록 많은 선택지가 고려되고, 낮을수록 상위 확률의 선택지만을 사용합니다.

예시

"top_p": 0.95

 

6) n

설명: 하나의 요청에서 생성할 응답의 개수를 지정합니다. 기본값은 1이며, 여러 개의 응답을 받고 싶을 때 이 값을 증가시킬 수 있습니다.

 예시

"n": 3

 

7) stop

설명: 모델의 응답 생성을 중단시킬 수 있는 문자열을 지정합니다. 지정한 문자열을 모델이 응답 중 생성하면, 그 시점에서 응답이 중단됩니다.

예시

"stop": ["\n"]

 

8) presence_penalty와 frequency_penalty

설명: penalty 매개변수는 모델이 특정 단어나 문장을 반복해서 사용하는 것을 제어합니다. presence_penalty는 새로운 주제를 언급할 가능성을 높이는 반면, frequency_penalty는 이미 언급된 주제를 반복하지 않도록 조정합니다.

예시

"presence_penalty": 0.6,
"frequency_penalty": 0.5

 

ChatGPT API 사용 예시

이제 위에서 설명한 매개변수를 활용한 구체적인 API 요청 예시를 보겠습니다. 사용자는 ChatGPT API를 통해 챗봇을 구현할 수 있으며, 아래는 사용자가 "오늘 날씨가 어때?"라는 질문을 했을 때 이를 처리하는 방식입니다.

 

■  API 요청 예시

{
  "model": "gpt-3.5-turbo",
  "messages": [
    {"role": "system", "content": "You are a weather assistant."},
    {"role": "user", "content": "What's the weather like today?"}
  ],
  "temperature": 0.7,
  "max_tokens": 100,
  "top_p": 0.9,
  "n": 1,
  "stop": ["\n"],
  "presence_penalty": 0.6,
  "frequency_penalty": 0.4
}

 

■  API 응답 예시

{
  "id": "chatcmpl-7Xb2THKzLzjk83laK",
  "object": "chat.completion",
  "created": 1682627224,
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Today's weather is sunny with a high of 25°C and a low of 15°C. Make sure to enjoy the pleasant weather!"
      },
      "finish_reason": "stop",
      "index": 0
    }
  ],
  "usage": {
    "prompt_tokens": 27,
    "completion_tokens": 20,
    "total_tokens": 47
  }
}

 

참고 URL

https://platform.openai.com/docs/api-reference/introduction

 

반응형