[GPT] ChatGPT API란?
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