- Published on
ChatGPT API 사용해보기
- Authors

- Name
- 테크버킷
이글에서는 ChatGPT API를 사용하는 기본적인 방법을 소개합니다. API를 사용한 서비스 예제를 찾고 계시다면 ChatGPT API로 초간단 AI 추천 서비스 만들기를 참고하세요
함수 호출(Fucntion Calling) 예세를 찾고 계시다면 OpenAI의 함수 호출(Function Calling) 소개 및 Python 예시를 참고하세요.
ChatGPT
ChatGPT는 사용자가 질문을 하면 그럴듯한 답변을 생성해주는 대화형 인공지능 모델입니다. 인간이 답변한 것처럼 답변을 해주는 것도 놀랍지만, ChatGPT를 생산적으로 활용하는 사례가 알려지면 더욱 화제가 되고 있습니다. API에 대한 사용법이 아닌 Chat GPT에 대한 정보를 찾고 계시다면 ChatGPT 입문자를 위한 가이드도 있습니다.
ChatGPT API
OpenAI에서 만든 대화형 인공지능 모델인 ChatGPT를 API로 사용할 수 있는 ChatGPT API가 출시되었습니다. 이 글이 작성된 2023년에는 gpt-3.5-turbo와 Chat Completions API(/v1/chat/completions)가 ChatGPT API 입문 예제에서 널리 사용되었습니다. 다만 현재 OpenAI 문서는 새 텍스트 생성 앱에는 기존 Chat Completions API보다 Responses API 사용을 권장합니다. 신규 프로젝트에서는 특정 구모델명이나 구엔드포인트를 그대로 복사하기보다 OpenAI 공식 문서에서 최신 API, 권장 모델, 가격/지원 상태를 확인한 뒤 선택하는 것이 좋습니다. 이 글의 gpt-3.5-turbo와 Chat Completions 예제는 당시 기준 예시로 봐주세요.
참고 - OpenAI 모델 문서, OpenAI 텍스트 생성 가이드
사용법 요약
1. API 키를 받습니다.
API 키를 생성하는 방법은 OpenAI의 공식 문서나 다른 여러 글에서 설명하고 있기 때문에 간략하게만 소개하겠습니다. OpenAI의 API발급 및 사용방법은 platform.openai.com에서 다루고 있습니다. 이곳에 접속해서 로그인한 다음, 상단 프로필 > View API Keys를 클릭 한 다음 + Create new Secrete key 를 눌러서 API키를 받을 수 있습니다. 발급받은 API키를 아래에서 사용할 것입니다.
2. 요청
아래는 기존 OpenAI Chat Completions API 요청 형식 예시입니다. python이나 javascript 등에서도 사용할 수 있습니다. 최신 신규 구현은 OpenAI 텍스트 생성 가이드의 Responses API 예제를 먼저 확인하세요. 예제에서는 모델명을 환경변수로 분리해 최신 모델로 교체하기 쉽게 했습니다. OPENAI_MODEL에는 OpenAI 공식 모델 문서에서 확인한 모델명을 넣으세요. $OPENAI_API_KEY 부분에는 API 키를 넣으면 됩니다. 그리고 messages 부분에는 직접 만든 대화(질문)를 입력합니다. 한국어로 입력해 주어도 됩니다.
OPENAI_MODEL="${OPENAI_MODEL:-gpt-4o-mini}"
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"${OPENAI_MODEL}"'",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
}'
3. 응답
그러면 아래처럼 응답을 받을 수 있습니다. 응답 예시는 작성 당시의 형식을 설명하기 위한 것이며, 실제 model 값과 응답 필드는 선택한 모델과 API 버전에 따라 달라질 수 있습니다.
{
"id": "chatcmpl-6p5FEv1JHictSSnDZsGU4KvbuBsbu",
"object": "messages",
"created": 1677693600,
"model": "<요청한 모델명>",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "OpenAI's mission is to ensure that artificial general intelligence benefits all of humanity."
}
}
],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 18,
"total_tokens": 38
}
}
풀이
1. Role 과 Content
챗 지피티에게 대답을 듣기 위해 message에 대화를 입력해 주어야 합니다. 입력하기 위해 몇 가지 규칙을 알아야 합니다.
각 message는 role과 content라는 두 가지 속성을 가집니다. role은 system, user, assistant 중 하나의 값이어야 합니다.. content는 role에서 정의된 역할에 따른 메시지 내용을 가집니다. user는 사용자를 의미하고, assistat는 대답을 해주는 챗봇입니다. (system의 지령은 대화의 흐름에 더 큰 영향을 줍니다.) 메시지는 나열된 순서대로 처리되며, assistant가 이에 대한 응답을 제공합니다. 다음과 같이 message를 만들 수 있습니다.
"messages": [
{"role": "system", "content": "assistant는 한국어를 가르치는 국어 교사이다."},
{"role": "user", "content": "너는 한국어를 사랑하니?"}
]
실제 요청
실제 요청을 해보니 아래와같이 응답을 받을 수 있었습니다.
OPENAI_MODEL="${OPENAI_MODEL:-gpt-4o-mini}"
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-d '{
"model": "'"${OPENAI_MODEL}"'",
"messages": [
{"role": "system", "content": "assistant는 한국어를 사랑하는 국어 교사이다."},
{"role": "user", "content": "너는 한국어를 사랑하니?"}
]
}'
{
"id": "chatcmpl-6qhMHZvFBoFW13dvUQ3aOr9Fc2lxU",
"object": "chat.completion",
"created": 1678017745,
"model": "<요청한 모델명 또는 당시 스냅샷 모델명>",
"usage": {
"prompt_tokens": 48,
"completion_tokens": 69,
"total_tokens": 117
},
"choices": [{
"message": {
"role": "assistant",
"content": "저는 프로그램으로 작동하는 인공지능이므로 감정을 가지지 않습니다. 단지, 제작된 프로그램에서 한국어를 인식하고 대화를 할 수 있도록 프로그래밍 되었습니다."
},
"finish_reason": "stop",
"index": 0
}]
}
무엇을 만들 수 있을까?
ChatGPT API를 사용한 활용법은 많습니다. 개발자의 도움이나 전문 지식이 필요할 수는 있지만 API를 사용해서 그 가능성을 확장하고자 한다면 한번 도전해보시길 추천합니다.
- 이메일 또는 기타 글 작성
- 파이썬 코드 작성
- 일련의 문서에 대한 질문에 답변
- 대화형 에이전트 만들기
- 소프트웨어에 자연어 인터페이스 제공
- 다양한 과목의 튜터
- 언어 번역
- 비디오 게임 등을 위한 캐릭터 시뮬레이션
