출처: GPT-4를 활용한 인공지능 앱 개발 | 올리비에 케일린
텍스트 완성, 채팅, 편집 등 모델이 설계된 목적에 따라 API 사용 방식이 다르다는 점을 유의하세요.
프롬프트는 오픈AI API에만 국한되지 않으며 모든 LLM의 시작접입니다.
토큰은 단어 또는 단어의 일부입니다.
영어텍스트에서 토큰 100개는 단어 약 75개에 해당합니다.
오픈AI 모델의 사용료는 요청에 사용한 토큰 수에 따라 책정됩니다.
즉, API 호출 비용은 입력 텍스트와 출력 텍스트의 길이에 따라 다릅니다.
오픈AI API를 사용하면 오픈AI에서 개발한 다양한 모델에 접근할 수 있습니다.
모델은 API를 통해(직접 HTTP 호출 또는 제공된 라이브러리를 통해) 서비스로 제공됩니다.
각 모델은 서로 다른 기능을 제공하며 사용료도 다릅니다.
파운데이션 모델 자체를 개별 작업자가 직접 조정할 수는 없지만 오픈AI API를 통해 특정데이터로 파인 튜닝할 수는 있습니다.
이 계열의 모델은 많은 싱글턴 작업을 처리할 수 있습니다.
text-ada-001 모델은 간단한 완성 작업만 할 수 있지만 GPT-3 시리즈 중 가장 빠르고 가장 저렴한 모델이기도 합니다.
text-babbage-001과 tet-curie-001 모델은 좀 더 강력하지만 더 비쌉니다.
text-davinci-003 모델은 우수한 품질로 모든 완성 작업을 수행할 수 있지만 GPT-3 모델 제품군에서 가장 비쌉니다.
챗GPT의 기본 모델은 gpt-3.5-turbo입니다.
gpt-3.5-turbo의 채팅 형식은 멀티턴 대화에 용이하도록 설계됐지만 대화 없이 싱글턴 작업에도 사용할 수 있습니다.
gpt-3.5-turbo 모델은 토큰 4,000개를 입력으로 받을 수 있습니다.
오픈AI는 gpt-3.5-turbo-16k라는 모델도 제공하는데, 이는 표준 gpt-3.5-turbo 모델과 성능은 동일하지만 컨텍스트가 4배 큽니다.
여기서 "컨텍스트"는 모델이 한 번에 처리할 수 있는 입력 텍스트의 최대 길이를 의미합니다.
- GPT-3.5-turbo-16k 모델의 경우, "16k"는 이 모델이 최대 16,384 토큰의 입력을 처리할 수 있음을 나타냅니다.
- 이는 표준 GPT-3.5-turbo 모델의 컨텍스트 길이보다 4배 큰 것입니다.
- 컨텍스트 길이가 크다는 것은 모델이 더 많은 양의 텍스트를 한 번에 이해하고 처리할 수 있다는 것을 의미합니다. 이는 긴 문서나 복잡한 대화의 경우, 더 많은 정보를 한 번에 고려할 수 있어 보다 일관된 응답을 생성하는 데 유리합니다.
- 예를 들어, 긴 문서의 요약을 생성하거나, 여러 문단에 걸친 복잡한 질문에 답변할 때 유용할 수 있습니다.
- 따라서, GPT-3.5-turbo-16k 모델은 동일한 성능을 유지하면서도 더 많은 정보를 한 번에 처리할 수 있는 능력을 제공하는 것입니다.
오픈AI가 출시한 모델 중 가장 크고 강력합니다.
광범위한 텍스트 데이터부터 이미지가지 멀티모달이 가능하도록 학습했으며, 다양한 분야의 지식과 전문성을 지닌다고 평가됩니다.
GPT-4는 자연어로 입력받은 어려운 문제를 정확하게 해결합니다.
오픈AI는 두 가지 GPT-4 모델을 제공합니다.
gpt-4 컨텍스트 크기는 토큰 8,000개
gpt-4-32k의 컨텍스트 크기는 토큰 32,000개
오픈AI가 제공하는 다양한 모델을 노코드로 테스트하는 데 가장 좋은 방법은 오픈AI 플레이그라운드를 사용하는 것입니다.
플레이그라운드는 오픈AI가 제공하는 다양한 LLM을 특정 작업에서 빠르게 테스트할 수 있는 웹 기반 플랫폼입니다.
플레이그라운드 접근 방법
오픈AI 홈페이지 접속
로그인 및 가입을 통해 계정을 만듭니다.
플레이그라운드를 비롯해 대부분의 오픈AI 기능을 사용하려면 계정이 필요하므로 오픈AI 계정이 없다면 새로 만들어야합니다.
플레이그라운드와 API는 유료이므로 결제 수단을 입력합니다.
챗GPT 플러스 요금제와 API 및 플레이그라운드요금제는 별개입니다. 챗GPT 플러스 서비스에 가입했더라도 API나 플레이그라운드사용료는 별도로 청구됩니다.
- 2023년 12월 기준, 플레이그라운드에서 사용할 수 있는 모드는 [Assistants], [Chat], [Compelete], [Edit]입니다.
- 2024년 기준 [Compelete], [Edit]은 서비스 종료
[Assistants] 모드는 왼쪽에는 어시스턴트 이름과 인스트럭션, 모델을 설정하는 부분이 있습니다.
[Chat] 모드는 화면 왼쪽에는 [System] 창이 있습니다. 이 창에 텍스트를 입력해 채팅 시스템에 역할을 부여합니다.
예를 들어, 필자는 '고양이를 좋아하는 유용한 어시스턴트'라는 역할을 부여했습니다.
또한 고양이에 관해서만 이양기하고 대답은 짧게 하도록 지시했습니다.
이렇게 설정한역할에 따른 출력 결과 화면 중앙에 표시됩니다.
시스템과 대화를 계속하려면 [Add message] 버튼을 누르고 메시지를 입력한 후 [Submit] 버튼을 누릅니다.
화면 오른쪽에 있는 옵션 패널의 모델 목록에서 원하는 모델 선택 가능
모드에 따라 사용할 수 있는 모델 종류도 다르다.
파이썬으로 오픈AI API를 활용하려면 openai 파이썬 패키지가 설치되어 있어야 합니다.
$ pip install openai
오픈AI는 GPT-4와 챗GPT를 서비스 형태로 제공합니다.
즉, 사용자는 모델의 코드에 직접 접근할 수 없으며 자체 서버에서 모델을 실행할 수 없습니다.
한편 API 형태로 모델을 제공하고 있어 사용자는 계정과 비밀 키만 있으면 모델을 호출할 수 있습니다.
오픈AI 서비스를 이용하려면 API 키가 필요합니다.
이 키는 두 가지 용도로 사용됩니다.
API 메서드를 호출하는 권한을 부여합니다.
사용료 청구를 위해 API 호출로 계정에 연결합니다.
애플리케이션에서 오픈 서비스를 호출하려면 API 키가 있어야합니다.
키를 받으려면 오픈AI 플랫폼 페이지로 이동
화면 왼쪽 패널에서 [API keys] 버튼 클릭
[API keys] 페이지에서 [Create new secret key]를 누르고 키 사본을 만듭니다. 이 키는 'sk-'로 시작하는 긴 문자열 형태입니다.
이 키는 계정과 직접 연결되며, 도난 시 원치 않는 비용 발생 가능
환경 변수 설정하기
<리눅스, MacOS에서 설정하는 방법>
#현재 세션에서 환경변수 OPENAI_API_KEY 설정
export OPENAI_API_KEY=sk-(...)
#환경 변수가 설정됐는지 확인
echo $OPENAI_API_KEY
<윈도우에서 설정하는 방법>
#현재 세션에서 환경변수 OPENAI_API_KEY 설정
set OPENAI_API_KEY=sk-(...)
#환경 변수가 설정됐는지 확인
echo %OPENAI_API_KEY%
이 코드 스니펫은 환경 변수를 설정하고 동일한 셸 세션에서 실행되는 다른 프로세스에서 키를 사용할 수 있도록 합니다.
리눅스 시스템에서는 이 코드를 .bashrc
파일에 직접 추가할 수도 있습니다.
- 물론 공개 저장소에 푸시하는 코드에는 해당 명령줄을 포함하지 마세요
$pip install openai
from openai import OpenAI
client = OpenAI(api_key='OpenAI_API_KEY')
#오픈AI 채팅 완성 엔드포인트 호출
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello World!"}]
)
#응답 추출
print(response.choices[0].message.content)
#결과
Hello there! How may I assist you today?
$openai api chat_completions.create -m gpt-3.5-turbo \
-g user "Hello world"
$openai.api_key_path = <PATH>,
$openai.api_key = os.getenv("OPENAI_API_KEY")
API 키를 .env
에 저장하고 .gitignore
로 버전 관리에서 제외할 항목으로 지정할 수 있습니다.
파이썬에서는 dotenv를 통해 환경 변수와 openai 라이브러리를 가져옵니다.
관련 패키지 설치 필요
.env
파일을 로드한 후에 openai를 호출해야합니다.
오픈AI 환경 설정 올바르게 적용되지 않을 수 있다.
$ pip install python-dotenv
from dotenv import loqad_dotenv
load_dotenv()
import openai
사내 보안으로 현재 사용 불가 (외부에서 실행 필요)