OpenAI는 API 공개를 통해 ChatGPT의 기능을 모든 사람에게 개방했습니다. 이제 ChatGPT의 강력한 기능을 애플리케이션에 원활하게 통합할 수 있습니다.

ChatGPT를 기존 애플리케이션에 통합하거나 새로운 애플리케이션을 개발하려는 경우 초기 단계를 따라 시작하세요.

OpenAI API 키에 액세스하기

ChatGPT API 사용을 시작하려면 먼저 OpenAI API 키를 얻어야 합니다. 공식 OpenAI 플랫폼에 가입하거나 로그인하세요.

로그인한 후 오른쪽 상단 섹션의 개인 탭을 클릭합니다. 드롭다운에서 API 키 보기 옵션을 선택하면 API 키 페이지로 이동합니다. 새 비밀 키 만들기 버튼을 클릭하여 API 키를 생성합니다.

키를 다시 볼 수 없으므로 안전한 곳에 보관하세요.

이 프로젝트에 사용된 코드는 GitHub 리포지토리에서 사용할 수 있으며 MIT 라이선스에 따라 무료로 사용할 수 있습니다.

ChatGPT API 사용 방법

OpenAI API의 gpt-3.5-turbo 및 gpt-4 모델은 각각 ChatGPT 및 ChatGPT+에서 사용하는 것과 동일한 모델입니다. 이 강력한 모델은 자연어 텍스트를 이해하고 생성할 수 있습니다.

ChatGPT API는 gpt-3.5-turbo 및 gpt-4 모델을 포함하여 챗봇 개발에 GPT 기반 모델을 사용하는 OpenAI API를 통칭하는 용어임을 유의하시기 바랍니다.

ChatGPT API는 주로 채팅에 최적화되어 있지만 텍스트 완성 작업에도 잘 작동합니다. gpt-3.5-turbo 및 gpt-4 모델은 이전 GPT-3 모델보다 더 강력하고 저렴합니다. 그러나 이 글을 쓰는 현재로서는 GPT-3.5 모델을 미세 조정할 수 없습니다. 다빈치, 퀴리, 에이다, 양배추와 같은 GPT-3 기본 모델만 미세 조정할 수 있습니다.

이 글을 쓰는 현재 GPT-4 API 가 대기자 명단에 있습니다. 그러나 GPT-3.5 모델은 누구나 액세스할 수 있으므로 이 글에서는 동일한 모델을 사용할 것입니다. 하지만 지금 바로 ChatGPT+로 업그레이드하여 GPT-4를 사용할 수 있습니다.

채팅 완료를 위해 ChatGPT API 사용하기

API 호출을 준비하려면 채팅 모델을 구성해야 합니다. 예제를 통해 이를 더 잘 이해할 수 있습니다:

 import openai

openai.api_key = "YOUR_API_KEY"

completion = openai.ChatCompletion.create(
  model = "gpt-3.5-turbo",
  temperature = 0.8,
  max_tokens = 2000,
  messages = [
    {"role": "system", "content": "You are a funny comedian who tells dad jokes."},
    {"role": "user", "content": "Write a dad joke related to numbers."},
    {"role": "assistant", "content": "Q: How do you make 7 even? A: Take away the s."},
    {"role": "user", "content": "Write one related to programmers."}
  ]
)

print(completion.choices[0].message)

이 코드를 실행하면 다음과 같은 출력이 생성됩니다:

이 글도 확인해 보세요:  ChatGPT가 업무 생산성을 향상시키는 7가지 놀라운 방법

위 코드는 Python을 사용하여 ChatGPT API 호출을 보여줍니다. 마지막 사용자 프롬프트에서 명시적으로 언급하지 않았음에도 불구하고 모델이 컨텍스트(“아빠 농담”)와 예상되는 응답 유형(Q&A 형식)을 이해할 수 있었다는 점에 유의하세요.

따라서 애플리케이션을 구축할 때 컨텍스트를 미리 제공하면 모델이 그에 따라 요구 사항에 맞게 조정됩니다.

여기서 가장 중요한 부분은 메시지 객체 배열을 허용하는 메시지 매개변수입니다. 각 메시지 객체에는 역할과 콘텐츠가 포함됩니다. 메시지 개체에 세 가지 유형의 역할을 제공할 수 있습니다:

⭐ 시스템: 어시스턴트의 컨텍스트와 동작을 설정합니다.

⭐ 사용자: 어시스턴트에게 지시를 내리는 데 사용됩니다. 일반적으로 최종 사용자가 생성합니다. 하지만 개발자가 미리 잠재적인 사용자 프롬프트를 제공할 수도 있습니다.

⭐ 어시스턴트: 어시스턴트가 API에서 기대하는 응답을 제공할 수 있도록 몇 가지 정보를 미리 제공합니다.

모델의 온도 및 최대_토큰 매개 변수를 추가로 사용자 지정하여 요구 사항에 따라 출력을 얻을 수 있습니다.

온도가 높을수록 출력의 무작위성이 높아지며, 그 반대도 마찬가지입니다. 보다 집중적이고 결정적인 응답을 원한다면 낮은 온도 값을 선택하세요. 보다 창의적인 응답을 원한다면 높은 값을 선택하세요.

ChatGPT와 마찬가지로 해당 API에도 단어 수 제한이 있습니다. 최대_토큰 매개변수를 사용하여 응답 길이를 제한할 수 있습니다. 단, max_tokens 값을 낮게 설정하면 중간에 출력이 끊어질 수 있으므로 잠재적인 문제가 발생할 수 있습니다. 이 글을 쓰는 현재, gpt-3.5 터보 모델의 토큰 제한은 4,096개이고 gpt-4 모델의 토큰 제한은 8,192개입니다.

OpenAI 에서 제공하는 다른 파라미터를 사용하여 모델을 추가로 구성할 수 있습니다.

텍스트 완성을 위해 ChatGPT API 사용

채팅 완료 작업 외에도 gpt-3.5-turbo 모델은 텍스트 완료 작업도 잘 수행합니다. 이전 텍스트 다빈치-003 모델보다 성능이 뛰어나며 가격은 10분의 1에 불과합니다.

다음 예제에서는 텍스트 완성을 위해 ChatGPT API를 구성하는 방법을 보여 줍니다:

 import openai

openai.api_key = "YOUR_API_KEY"

completion = openai.ChatCompletion.create(
  model = "gpt-3.5-turbo",
  temperature = 0.8,
  max_tokens = 2000,
  messages = [
    {"role": "system", "content": "You are a poet who creates poems that evoke emotions."},
    {"role": "user", "content": "Write a short poem for programmers."}
  ]
)

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

시스템 역할과 해당 콘텐츠를 제공할 필요도 없습니다. 사용자 프롬프트만 제공하면 모든 작업이 완료됩니다.

 messages = [
  {"role": "user", "content": "Write a short poem for programmers."}
]

위 코드를 실행하면 프로그래머를 위한 시가 생성됩니다.

이 글도 확인해 보세요:  악성코드 생성에 ChatGPT를 사용할 수 있나요?

ChatGPT API의 응답 형식

ChatGPT API는 다음과 같은 형식으로 응답을 보냅니다:

콘텐츠에 저장된 어시스턴트의 응답을 추가로 추출해야 합니다.

ChatGPT API를 사용하여 애플리케이션 빌드하기

API 엔드포인트 또는 openai Python/Node.js 라이브러리를 직접 사용하여 ChatGPT API 기반 애플리케이션 빌드를 시작할 수 있습니다. 공식 OpenAI 라이브러리 외에도 OpenAI 에서 권장하는 커뮤니티 관리 라이브러리를 사용하여 애플리케이션을 개발할 수도 있습니다.

그러나 OpenAI는 이러한 커뮤니티 유지 관리 라이브러리의 보안을 확인하지 않으므로 API 엔드포인트를 직접 사용하거나 공식 openai Python/Node.js 라이브러리를 사용하는 것이 더 좋습니다.

방법 1: API 엔드포인트 사용

gpt-3.5-turbo 및 gpt-4 모델을 활용하려면 /v1/chat/completions 엔드포인트를 사용해야 합니다.

 import requests

openai.api_key = "YOUR_API_KEY"
URL = "https://api.openai.com/v1/chat/completions"

payload = {
  "model": "gpt-3.5-turbo",
  "temperature" : 1.0,
  "messages" : [
    {"role": "system", "content": f"You are an assistant who tells any random and very short fun fact about this world."},
    {"role": "user", "content": f"Write a fun fact about programmers."},
    {"role": "assistant", "content": f"Programmers drink a lot of coffee!"},
    {"role": "user", "content": f"Write one related to the Python programming language."}
  ]
}

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {openai.api_key}"
}

response = requests.post(URL, headers=headers, json=payload)
response = response.json()

print(response['choices'][0]['message']['content'])

위의 샘플 코드는 엔드포인트를 직접 사용하여 요청 라이브러리를 사용하여 API를 호출하는 방법을 보여줍니다.

먼저 API 키를 변수에 할당합니다. 다음으로 페이로드 객체의 모델 파라미터에 모델 이름을 제공해야 합니다. 그런 다음 메시지 매개 변수에 대화 기록을 제공했습니다.

여기서는 응답이 더 무작위적이어서 더 창의적일 수 있도록 더 높은 온도 값을 유지했습니다.

다음은 응답 출력입니다:

OpenAI의 ChatGPT에는 몇 가지 문제가 있으므로 API에서도 불쾌하거나 편향된 응답을 받을 수 있다는 점에 유의하세요.

방법 2: 공식 openai 라이브러리 사용

pip를 사용하여 openai Python 라이브러리 설치:

 pip install openai 

이제 텍스트 또는 채팅 완료를 생성할 준비가 되었습니다.

 import openai

openai.api_key = "YOUR_API_KEY"

response = openai.ChatCompletion.create(
  model = "gpt-3.5-turbo",
  temperature = 0.2,
  max_tokens = 1000,
  messages = [
    {"role": "user", "content": "Who won the 2018 FIFA world cup?"}
  ]
)

print(response['choices'][0]['message']['content'])

이 코드에서는 하나의 사용자 프롬프트만 제공했습니다. 응답이 창의적이기보다는 결정적일 수 있도록 온도 값을 낮게 유지했습니다.

이 글도 확인해 보세요:  ChatGPT를 사용하여 팟캐스트 스크립트를 작성해봤더니? 결과는 이렇습니다.

코드를 실행하면 다음과 같은 응답이 표시됩니다:

ChatGPT 응답은 마술처럼 보일 수 있으며 누구나 ChatGPT가 어떻게 작동하는지 궁금해 할 수 있습니다. 하지만 그 이면에는 모든 작업을 수행하는 생성형 사전 학습 트랜스포머(GPT) 언어 모델이 뒷받침하고 있습니다.

ChatGPT API를 사용하여 차세대 앱 구축하기

ChatGPT API를 구성하는 방법을 배웠습니다. ChatGPT API는 여러분과 전 세계 개발자들이 AI의 힘을 활용하여 혁신적인 제품을 만들 수 있는 문을 열었습니다.

이 도구를 사용하여 스토리 작성기, 코드 번역기, 이메일 작성기, 마케팅 카피 생성기, 텍스트 요약기 등과 같은 애플리케이션을 개발할 수 있습니다. 이 기술을 활용하여 애플리케이션을 개발하는 데는 여러분의 상상력이 한계가 없습니다.

ChatGPT API 외에도 다른 OpenAI 모델을 사용하여 멋진 애플리케이션을 개발할 수 있습니다.

By 이지원

상상력이 풍부한 웹 디자이너이자 안드로이드 앱 마니아인 이지원님은 예술적 감각과 기술적 노하우가 독특하게 조화를 이루고 있습니다. 모바일 기술의 방대한 잠재력을 끊임없이 탐구하고, 최적화된 사용자 중심 경험을 제공하기 위해 최선을 다하고 있습니다. 창의적인 비전과 뛰어난 디자인 역량을 바탕으로 All Things N의 잠재 독자가 공감할 수 있는 매력적인 콘텐츠를 제작합니다.