본문 바로가기

Minding's Programming/Knowledge

챗지피티 API (ChatGPT API) 사용 방법, 가격 알아보기

728x90
반응형

OpenAI의 대규모 언어 모델 ChatGPT의 API를 활용해 더 다양하게 활용해보고자 한다. ChatGPT의 API는 어떻게 사용할 수 있을까?

 

1. API키 발급 / 엔드포인트 설정하기

OpenAI 웹사이트 로그인 및 API 발급

OpenAI의 홈페이지(링크)에 접속해 로그인하자.

 

로그인하고 나면 세 가지 항목을 선택할 수 있는데, 제일 오른쪽에 있는 'API'버튼을 누르면 된다.

 

이후 오른쪽 상단에 내 계정을 누르면, 퀵메뉴가 나온다. 그 중 'View API keys' 메뉴를 선택한다.

 

이후 'Create new secret key'를 선택해 새로운 API key를 만들거나, 기존 API key를 살펴볼 수 있다.

 

API 코드를 발급 받았다면, 아래 코드를 이용해 chat gpt api를 활용해볼 수 있다.

import requests

# 2. HTTP request 구성
API_KEY = 'your_api_key'
API_ENDPOINT = 'https://api.openai.com/v1/chat/completions'

headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {API_KEY}'
}

# 3. 대화 메시지 구성
data = {
    'messages': [
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': 'Tell me a joke.'}
    ]
}

# 4. API 호출 및 답변처리
response = requests.post(API_ENDPOINT, json=data, headers=headers)
response_data = response.json()

# 5. 대화 추출 및 유지
model_response = response_data['choices'][0]['message']['content']
print("모델 응답:", model_response)

코드에 대한 자세한 설명은 아래에!

2. HTTP request 구성

- API를 호출하기 위해 HTTP POST request를 사용한다.

- request 코드에는 Json 형식의 데이터 포함된다.

- request header에는 'Content-Type'(데이터 형식) / 'Authorization'(인증방법 / API키) 정보가 포함된다.

 

3. 대화 메시지 구성

- 대화 메시지의 data는 dict형태로 구성된다.

- message 자체는 list형태로 구성된다.

- 각 list는 'role'과 'content'라는 key를 가지고 있다.

- 'role'은 'system', 'user', 'assistant'등의 역할을 나타낸다.

- 'content'는 해당 역할의 메시지 내용이 들어간다.

- 과거 메시지도 'messages' list에 포함된다. (대화의 흐름 유지 위해)

 

4. API 호출 및 응답 처리

- 구성한 request를 API Endpoint로 전송한다.

- API 응답은 Json 형식으로 받는다.

 

5. 대화 추출 및 유지

- 'choices' list에서 chatGPT 모델의 이전 응답 메시지를 추출할 수 있다.

- 이전 메시지 및 모델의 답변을 기반으로 계속 메시지를 생성할 수 있고, 이를 API에 전달해 대화를 유지할 수 있다.

 

+) Chatgpt API의 최초 무료로 활용할 수 있는 크레딧은 18달러라고 한다. 마음껏 사용할 수는 없지만, 이것저것 실험하기엔 충분하다. 먼저 활용해본 뒤 유료 전환에 대해 고민해보자.

 

이런 방법으로 ChatGPT API를 활용할 수 있다. 이 API를 통해 활용할 수 있는 점들이 무궁무진하다고 생각한다. 시간날 때 API의 구조에 대해서 좀 더 공부해보고 새로운 프로그램을 한 번 만들어 볼 예정이다. 알면 알수록 신기하다.

 

728x90