본문 바로가기

IT/개발

OpenAI API 이용 개발 기초(소개, API 사용준비, 기본모델들, ChatGTP)

반응형

 

1. Open AI API 소개 

OpenAI API는 거의 모든 작업에 적용 가능 .

다양한 기능과 가격대의 다양한 모델을 제공할 뿐만 아니라 맞춤형 모델을 미세 조정할 수 있는 기능도 제공함

 

OpenAI에서는 현재 API를 이용하여 개발 가능한 다양한 응용을 제시한다

 

 

참고 : 

Introduction - OpenAI API

 

2. 사용가능한 Open AI 모델들 

24/05/21 update

MODEL DESCRIPTION
GPT-4o 가장 빠르고 경제적인 플래그십 모델
GPT-4 and GPT-4 Turbo GPT-4 GPT-4 터보 GPT-3.5 개선하여 자연어 또는 코드를 이해하고 생성할 있는 모델 세트
GPT-3.5 Turbo 간단한 작업을 위한 빠르고 저렴한 모
DALL·E DALL-E 자연어 프롬프트가 주어지면 이미지를 생성하고 편집할 있는 모델
TTS TTS 텍스트를 자연스러운 음성 오디오로 변환할 있는 모델 세트
Whisper Whisper 오디오를 텍스트로 변환할 있는 모델
Embeddings 임베딩 텍스트를 숫자 형식으로 변환할 있는 모델 세트
Moderation 텍스트가 민감하거나 안전하지 않은지 여부를 감지할 있는 미세 조정된 모델
GPT base GPT 베이스 자연어 또는 코드를 이해하고 생성할 있는 명령어가 없는 모델 집합
GPT-3 자연어를 이해하고 생성할 있는 모델 세트

 

 

3. API 사용해보기 

 

3.1 Key 준비 

 

OpenAI 계정 생성 후 Key 발급 필수

https://platform.openai.com/api-keys

 

3.2 Python 개발 환경 준비 

 

(1) Python 설치

 

2023. 11월 현재 Python 3.7.1 이상 지원

 

(2) Open api 패키지 설치

 

pip install --upgrade openai

 

(3) API Key 등록

 

리눅스 .bashrc 등에 등록하면 매번 할 필요 없음, 외부 공개 안되도록 소스에 넣을때는 주의 할 것

export OPENAI_API_KEY='your-api-key-here

 

소스에서는 아래처럼 하드코딩 해도 되지만 권장안함, 가능하면 환경 변수 사용할

OPENAI_API_KEY=abc123

 

client = OpenAI()

# 기본값은 os.environ.get("OPENAI_API_KEY") 사용하여 키를 가져옵니다.

# 키를 다른 환경 변수 이름으로 저장한 경우 다음과 같이 있습니다:

# 클라이언트 = OpenAI(

# api_key=os.environ.get("CUSTOM_ENV_NAME"),

# )

 

3.3 API를 이용한 ChatGPT 기본 동작시험

 

API Key는 환경변수에 등록함 

gpt-4o 와 gpt-4를 이용하여 테스트 

 

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  #model="gpt-3.5-turbo-1106",
  #model="gpt-4-0613",
  #model="gpt-4-0125-preview",
  model="gpt-4o",
 
  messages=[
    {"role": "system", "content": "너는 프로그래머야. 질문의 대답 찾기 위한 파이썬 코딩을 하고 그 코드에 대해서 자세히 설명해줘"},
    {"role": "user", "content": "1부터 1000까지 홀수만 출력해봐"}
  ]
)

 

print(completion.choices[0].message.content)

 

 


'''
gpt-4o 응답

```python
# Using a loop to find and print odd numbers from 1 to 1000
for i in range(1, 1001):
    if i % 2 != 0:
        print(i)
```

### 코드 설명

1. `for i in range(1, 1001):`
   - `range(1, 1001)`는 1부터 1000까지의 숫자 시퀀스를 생성합니다. `range` 함수는 마지막 값(여기서는 1001)을 포함하지 않으므로 1부터 1000까지의 숫자를 생성하게 됩니다.
   - `for` 루프는 이 시퀀스를 하나씩 순회하며 `i` 변수에 각 값을 할당합니다.

2. `if i % 2 != 0:`
   - `if` 문은 `i`가 홀수인지를 확인합니다.
   - `%` 연산자는 나머지를 구하는 연산자로, `i % 2`는 `i`를 2로 나눈 나머지를 의미합니다.
   - 숫자가 홀수인 경우, 2로 나눈 나머지가 0이 아니기 때문에 `(i % 2 != 0)` 조건이 참이 됩니다.

3. `print(i)`
   - `if` 문이 참인 경우, 즉 `i`가 홀수인 경우 `print` 함수를 사용하여 `i`를 출력합니다.

이 코드는 1부터 1000까지의 모든 숫자 중에서 홀수인 숫자만 화면에 출력하게 됩니다. 실행하면 아래와 같은 결과를 얻을 수 있습니다:
'''

 

'''

gpt-4 응답

파이썬 코드는 다음과 같이 작성할 있습니다.

```python

for i in range(1, 1001, 2):

    print(i)

```

코드에 대한 설명은 다음과 같습니다:

- 파이죤의 `range()` 함수는 일정 범위의 수를 생성하는 사용됩니다. `range()` 함수는 1, 2 또는 3개의 인자를 취할 있습니다. 1개의 인자를 취하면 `0`에서 숫자 미만까지의 범위를 생성합니다, 2개의 인자를 취하면 번째 숫자에서 번째 숫자 미만까지의 범위를 생성합니다. 3개의 인자를 취하면 번째 숫자부터 번째 숫자 미만까지의 범위를 번째 숫자만큼의 간격으로 생성합니다.

- `(1, 1001, 2)` 인자를 사용하여 `1`부터 `1000`까지의 홀수를 생성한다. 처음 인자 `1` 시작값, 번째 인자 `1001` `1000` 포함하지 않는 종료값, 번째 인자 `2` 간격을 의미한다.

- `for` 루프는 생성된 범위의 숫자에 대해 반복되며, 반복에서 숫자 `i` 현재 숫자를 나타내며, `print(i)` 통해 화면에 출력된다.

결과적으로, 코드는  1부터 1000까지의 모든 홀수를 출력합니다.

'''

 

 

3.4 사용가능한 Chat 모델

 

모델의 특성, 입력가능한 토큰의 수 등에 따라 다양하게 선택 가능하다.

(모델에 따라 사용 비용 차이 있음)

 

2024.5 현재 업그레이드 된 최종 버전은 다음과 같다. (128K도 출시)

 

MODEL NAME Description token
gpt-4o GPT-4 터보보다 더 저렴하고 빠른 가장 진보된 멀티모달 플래그십 모델
현재 gpt-4o-2024-05-13
128K
gpt-4-turbo Vision 기능을 갖춘 최신 GPT-4 Turbo 모델.
현재 gpt-4-turbo-2024-04-09
128K
gpt-4-turbo-preview GPT-4 터보 모델
현재 gpt-4-0125-preview
128K
gpt-4 현재 gpt-4-0613 8K
gpt-3.5-turbo-0125
최신 GPT-3.5 터보 모델 16K

 

이것 말고도 이전 버전은 많이 있으나 곧 deprecation 될듯하다.

 

상세는 아래 참조

https://platform.openai.com/docs/models/continuous-model-upgrades

 

이전 모델들의 지원 중단 예정일(showdown date) - 대부분 20241월 중

https://platform.openai.com/docs/deprecations

 

 

API를 이용한 개발 예제들 

https://yongeekd01.tistory.com/142

 

OpenAI Audio API를 이용한 TTS 구현 기초(tts-1, tts-1-hd)

1.1 Audio Models 1.1.1 tts-1, tts-1-hd 모델 설명 https://platform.openai.com/docs/models/tts 텍스트를 음성으로 변환하는 AI 모델 - tts-1 : 스피드에 최적화 - tts-1-hd : 품질에 최적화 MODEL DESCRIPTION tts-1 Text-to-speech 1 The

yongeekd01.tistory.com

 

https://yongeekd01.tistory.com/143

 

OpenAI Audio API를 이용한 STT 구현 기초(whisper-1, transcription, English translation)

1.1 Audio Models 1.1.2 whisper-1 모델 설명 Whisper는 범용 음성 인식 모델 (Speech to Text) - 다양한 오디오로 구성된 대규모 데이터셋을 학습하고 다국어 음성 인식은 물론 음성 번역과 언어 식별까지 수행

yongeekd01.tistory.com

 

https://yongeekd01.tistory.com/144

 

chatGPT, OpenAI API, DALLI-E 모델을 이용한 이미지 생성 기초

1.1 Image Models 1.1.1 DALL-E 모델 설명 DALL-E는 자연어로 된 설명을 바탕으로 사실적인 이미지와 예술 작품을 만들 수 있는 인공지능 시스템 - dall-e-3 DALL-E : 3 2023년 11월에 출시된 최신 DALL-E 모델 - DALL-E

yongeekd01.tistory.com

 

https://yongeekd01.tistory.com/145

 

DALLI-E 모델을 이용한 이미지 수정 및 유사이미지 만들기(chatGPT, OpenAI API)

DALLI-E 모델 설명 참조 https://yongeekd01.tistory.com/144 chatGPT, OpenAI API, DALLI-E 모델을 이용한 이미지 생성 기초 1.1 Image Models 1.1.1 DALL-E 모델 설명 DALL-E는 자연어로 된 설명을 바탕으로 사실적인 이미지와

yongeekd01.tistory.com

 

https://yongeekd01.tistory.com/146

 

chatGPT-4를 이용한 이미지 해석(Image Description, gpt-4-vision)

1. chatGPT-4를 이용한 이미지 해석 이미지를 이해하고 설명할 수 있는 기능 1.1 개요 지금까지 언어 모델 시스템은 단일 입력 양식인 텍스트로만 입력할 수 있다는 한계 이미지 해석 모델 : 비전 기

yongeekd01.tistory.com

 

반응형