본문 바로가기

프로그램 개발

Open AI API 사용 방법 - 1

1. Open AI에 대한 간단한 설명

GPT로 유명해진 Open AI는 GPT 시리즈의 모델과 DALLE-E, TTS, Whisper, Embeddings 등 응용프로그램에서 사용할 수 있는 몇 가지 유용한 인공지능 모델을 제공한다. 물론 가장 유명한 것은 GPT (Generative Pre-trained Transformer)로 2017년 구글에서 발표한 "Attention is all you need"라는 논문에서 나온 모델인데 NLP (Natural Language Processing) 분야에서 새로운 장을 열개된 유명한 모델이다. GTP에 대한 설명은 이미 많은 블로그에 나와 있는데, 문장을 임베딩으로 변환하고 단어 간의 거리를 계산한 다음 어떤 단어가 어텐션인지를 찾아내어 attention을 기준으로 디코딩을 하는 인공지능 기술이다.

 

하지만 이론적으로 공부를 하더라도 새로운 embedding model을 만들거나 attention model을 만들거나 LLM을 위한 새로운 GPT model을 만드는 것은 일반 회사에서 하기에는 너무 많은 데이터와 컴퓨터 자원과 시간이 필요하다. 즉, 많은 자본이 필요하다. 그래서, NLP에서 새로운 모델을 만들어서 승부를 보려는 회사가 아니면 GPT를 만들기보다는 현재 나와 있는 Open AI를 어떻게 잘 활용할 것인지를 고민하는 것이 좋을 것 같다. 물론, Open AI가 아니더라도 구글의 Gemini를 Vertex AI Studio를 사용해서 활용하는 것과 같이 다른 Open AI도 비교해 보는 것도 좋다.

2. Open AI 개발환경에 대한 간단한 설명

Open AI를 이용해서 개발하기 위해 필요한 문서와 테스트 환경은 아래 페이지를 열면 접근할 수 있다.

Overview - OpenAI API

페이지의 설명에 따르면 Open AI의 능력(Capability), 다른 말로는 Open AI를 활용해서 할 수 있는 작업은 ChatGPT에서 사용하던 Text generation, 이미지를 넣고 해석하는 Vision, 음성을 글로 만들어 주는 Speech to text, 단어 의미를 포함해서 수치로 변환하는 Embeddings, 문장이나 이미지에 대한 검열을 위한 Moderation, 새로운 o1 모델을 사용한 추론 Reasoning을 사용할 수 있다.

 

더불어서, Open AI는 작업, 예를 들어 Text generation,을 위해 사용할 수 있는 여러 모델을 제공하고 있다. 모델별로 가격이 다르기 때문에 목적에 맞춰 사용하는 것이 좋다. 이 글을 쓰는 현재는 GPT 4o가 기본으로 제공되고 있으며, 무료로 사용하는 ChatGPT는 GPT 4o mini 모델이고, 이전 모델인 GPT 3은 더 이상 제공하지 않고, GPT 3.5 Turbo만 제공하고 있는데 GPT 4o mini가 더 저렴하고 성능이 좋으니 옮길 것을 권고하고 있다. 이밖에도 새로운 Reasoning을 위한 o1, o1-mini이 제공되고 있고 능력 (Capability)에 따라 davincci, embedding 등의 모델이 제공되고 있다.

 

개발을 하지 않아도 간단한 테스트틑 Playground를 통해 할 수 있다. 물론 Playground와 같은 결과를 낼 수 있는 "Code"도 제공한다.

 

또, Dashboard를 통해 프로젝트를 위한 새로운 Model 제작을 시작할 수 있다.

 

Python이나 다른 언어를 사용해서 Open AI를 사용하려면 API 키가 필요하다. API 카는 오른쪽 계정옆에 있는 Settings 아이콘을 누르면 나오는 화면에서 얻을 수 있다.

 

3. 첫번째 테스트; Chat Completion

API키를 만들었으면 환경변수로 설정한다.

 

set OPENAI_API_KEY=sk-....

 

Open AI API를 사용하기 위한 python 패키지를 설치한다.

 

pip install openai

 

이제 간단한 프로그램으로 동작을 확인해 본다.

 

import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "system", "content": "You are a helpful assistant."}],
)

print(response.choices[0].message)

실행해서 아래와 같은 결과를 얻었다.