주요 요점
- OpenAI는 개발자들이 자신들의 애플리케이션에 ChatGPT 기능을 통합할 수 있도록 ChatGPT API를 공개했습니다.
- 시작하려면 OpenAI API 키와 공식 라이브러리를 포함한 개발 환경 설정이 필요합니다.
- 채팅 완성 및 텍스트 생성 작업 모두에 ChatGPT API를 활용하여 다양한 응용 프로그램 개발 가능성을 높일 수 있습니다.
API 공개를 통해 OpenAI는 ChatGPT의 기능을 모두에게 개방했습니다. 이제 ChatGPT의 강력한 기능을 애플리케이션에 쉽게 적용할 수 있게 되었습니다.
기존 애플리케이션에 ChatGPT를 통합하거나 새로운 애플리케이션 개발을 계획 중이라면, 다음 단계를 따라 시작해 보십시오.
1. OpenAI API 키 발급
ChatGPT API를 사용하려면 우선 API 키를 발급받아야 합니다.
- OpenAI 공식 웹사이트에 가입하거나 로그인하세요.
- 로그인 후, 왼쪽 메뉴에서 API 키 탭을 선택합니다.
- 새로운 비밀 키 생성 버튼을 클릭하여 API 키를 생성합니다.
- API 키는 재확인할 수 없으므로 복사하여 안전한 곳에 보관해야 합니다.
본 프로젝트에서 사용된 코드는 GitHub 저장소에서 확인할 수 있습니다. 해당 코드는 MIT 라이선스에 따라 무료로 사용 가능합니다.
2. 개발 환경 구성
API 엔드포인트를 직접 이용하거나 OpenAI Python/JavaScript 라이브러리를 활용하여 ChatGPT API 기반 애플리케이션 개발을 시작할 수 있습니다. 이 안내에서는 Python과 openai-python 라이브러리를 사용합니다.
시작하려면 다음과 같이 진행하십시오:
- Python 가상 환경을 생성합니다.
- pip를 사용하여 openai 및 python-dotenv 라이브러리를 설치합니다.
pip install openai python-dotenv
OPENAI_API_KEY="YOUR_API_KEY"
버전 관리 시스템을 통해 실수로 API 키가 공유되지 않도록 주의하십시오. .gitignore 파일을 추가하고 프로젝트 루트 디렉토리에 “.env”를 추가하여 dotenv 파일을 무시하도록 설정합니다.
3. ChatGPT API 요청 방법
OpenAI API의 GPT-3.5 Turbo, GPT-4 및 GPT-4 Turbo 모델은 ChatGPT와 동일한 핵심 모델을 사용합니다. 이 모델들은 자연어 텍스트와 코드를 이해하고 생성하는 데 뛰어납니다. 특히 GPT-4 Turbo는 이미지 분석, 이미지 기반 문서 처리, 이미지에서 텍스트 추출 등 다양한 이미지 관련 기능도 제공합니다.
ChatGPT API는 GPT 기반 모델을 사용하는 OpenAI API를 총칭하는 용어이며, gpt-3.5-turbo, gpt-4 및 gpt-4-turbo 모델을 포함합니다.
ChatGPT API는 원래 채팅에 최적화되어 있지만, 텍스트 완성 작업에도 효과적입니다. 코드 생성, 언어 번역, 초안 작성 등 다양한 작업에 활용할 수 있습니다.
GPT-4 API를 사용하려면 최소 1달러 이상을 결제해야 합니다. 결제가 완료되지 않으면 “‘gpt-4’ 모델이 존재하지 않거나 접근 권한이 없습니다.”와 같은 오류가 발생할 수 있습니다.
채팅 완료를 위한 API 활용
API 호출을 준비하려면 채팅 모델을 설정해야 합니다. 다음은 그 예시입니다.
from openai import OpenAI from dotenv import load_dotenv load_dotenv() client = OpenAI() response = client.chat.completions.create( model = "gpt-3.5-turbo-0125", temperature = 0.8, max_tokens = 3000, response_format={ "type": "json_object" }, messages = [ {"role": "system", "content": "당신은 아재 개그를 구사하는 유머 작가입니다. 결과는 JSON 형식으로 출력해야 합니다."}, {"role": "user", "content": "숫자 관련 아재 개그를 작성해 주세요."}, {"role": "assistant", "content": "질문: 7을 짝수로 만들려면 어떻게 해야 할까요? 답변: 's'를 빼면 됩니다."}, {"role": "user", "content": "프로그래머 관련 개그를 하나 더 작성해 주세요."} ] )
ChatGPT API는 다음과 같은 형식으로 응답을 반환합니다.
다음 코드를 사용하여 응답 내용에서 JSON 문자열을 추출할 수 있습니다.
print(response.choices[0].message.content)
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
이 코드는 Python을 사용하여 ChatGPT API를 호출하는 방법을 보여줍니다. 모델은 제공된 프롬프트에서 요구하는 상황(“아재 개그”)과 응답 형식(Q&A)을 정확하게 이해했습니다.
구성에서 가장 중요한 부분은 메시지 객체 배열을 허용하는 message 매개변수입니다. 각 메시지 객체는 역할(role)과 내용(content)을 포함합니다. 세 가지 유형의 역할을 사용할 수 있습니다:
- 시스템: 어시스턴트의 설정 및 동작을 정의합니다.
- 사용자: 어시스턴트에게 명령을 내립니다. 일반적으로 최종 사용자가 제공하지만, 기본 사용자 프롬프트를 미리 설정할 수도 있습니다.
- 어시스턴트: 예시 응답을 포함할 수 있습니다.
온도(temperature) 및 max_tokens 매개변수를 조정하여 원하는 결과물을 얻을 수 있습니다.
온도 값이 높을수록 출력의 무작위성이 증가하고, 반대로 낮을수록 감소합니다. 좀 더 정밀하고 결정적인 답변을 원할 경우 낮은 온도 값을 선택하고, 창의적인 결과를 원할 경우 더 높은 값을 사용하십시오. 온도 값 범위는 0에서 2 사이입니다.
ChatGPT와 마찬가지로 API에도 단어 제한이 있습니다. 응답 길이를 제어하려면 max_tokens 매개변수를 사용하십시오. 이 값을 너무 낮게 설정하면 출력이 중간에 잘릴 수 있습니다.
현재 gpt-3.5-turbo 모델의 토큰 제한은 4,096이고, gpt-4 모델은 8,192입니다. 최신 gpt-3.5-turbo-0125 및 gpt-4-turbo-preview 모델은 각각 16,385 및 128,000 토큰으로 제한됩니다.
개발자의 요구에 따라 OpenAI는 모델이 항상 JSON 객체를 반환하도록 지시하는 JSON 모드를 도입했습니다. response_format을 { “type”: “json_object” }로 설정하여 JSON 모드를 활성화할 수 있습니다. 현재 이 기능은 최신 모델인 gpt-3.5-turbo-0125 및 gpt-4-turbo-preview에서만 이용할 수 있습니다.
OpenAI에서 제공하는 다른 매개변수를 이용하여 모델을 상세하게 구성할 수 있습니다.
텍스트 완성을 위한 ChatGPT API 활용
ChatGPT API(Chat Completions API)는 다중 대화 작업 외에도 텍스트 완성 작업을 훌륭하게 수행합니다. 다음 예시는 텍스트 완성을 위해 ChatGPT API를 구성하는 방법을 보여줍니다.
from openai import OpenAI from dotenv import load_dotenv load_dotenv() client = OpenAI() response = client.chat.completions.create( model = "gpt-3.5-turbo", temperature = 0.8, max_tokens = 3000, messages = [ {"role": "system", "content": "당신은 감정을 자극하는 시를 쓰는 시인입니다."}, {"role": "user", "content": "프로그래머를 위한 짧은 시를 작성해 주세요."} ] ) print(response.choices[0].message.content)
시스템 역할 및 내용을 반드시 제공할 필요는 없습니다. 사용자 프롬프트만 제공하여 작업을 수행할 수 있습니다.
messages = [ {"role": "user", "content": "프로그래머를 위한 짧은 시를 작성해 주세요."} ]
위 코드를 실행하면 프로그래머를 위한 시가 생성됩니다. 예를 들어 다음과 같습니다.
ChatGPT API 가격 정책
ChatGPT API 가격은 “1,000개 토큰당 가격” 모델을 기반으로 책정됩니다. 채팅 완료 요청의 경우 입력 토큰 수와 API에서 반환된 출력 토큰 수를 합산하여 비용을 계산합니다. 토큰은 일반적으로 단어 조각을 의미하며, 1,000개의 토큰은 약 750 단어와 유사합니다.
모델 | 입력 | 출력 |
gpt-4-0125-preview | $0.01 / 1K 토큰 | $0.03 / 1K 토큰 |
gpt-4-1106-preview | $0.01 / 1K 토큰 | $0.03 / 1K 토큰 |
gpt-4-1106-vision-preview | $0.01 / 1K 토큰 | $0.03 / 1K 토큰 |
gpt-4 | $0.03 / 1K 토큰 | $0.06 / 1K 토큰 |
gpt-4-32k | $0.06 / 1K 토큰 | $0.12 / 1K 토큰 |
gpt-3.5-turbo-0125 | $0.0005 / 1K 토큰 | $0.0015 / 1K 토큰 |
gpt-3.5-turbo 지시 | $0.0015 / 1K 토큰 | $0.0020 / 1K 토큰 |
모델이 발전함에 따라 가격은 변동될 수 있습니다.
ChatGPT API를 이용한 차세대 앱 개발
ChatGPT API는 전 세계 개발자들이 AI 기능을 활용하여 혁신적인 제품을 만들 수 있는 기회를 제공합니다.
이를 통해 스토리 작가, 코드 번역기, 마케팅 문구 생성기, 텍스트 요약기와 같은 다양한 응용 프로그램을 개발할 수 있습니다. 이 기술을 활용한 응용 프로그램 개발은 여러분의 상상력에 달려있습니다.