article thumbnail image
Published 2023. 5. 24. 03:58

임시로 남겨놓고 완성하지 않은채 너무 오래놔두었다!

 

openai에서 만든 api를 사용하는 법에 대해 정리하고자 한다.

 

https://openai.com/

 

OpenAI

Introducing the ChatGPT app for iOS

openai.com

openAI에 로그인 한후 API를 누르면 아래 이미지와 같은 화면이 뜰거다. 중간은 잘라버렸는데, 자신의 계정 이름과 함께 personal이라고 써있는 부분을 누르면 저렇게 드롭다운이 뜰꺼다. personal은 조직이름인데 수정할 수도 있다.

Documentation / API reference / Examples 에서는 API를 이용하기 위한 문서들과 예제들을 찾아볼 수 있다.

Playground에서는 모델들을 시험삼아서 동작해볼 수 있다.

 

그 중에서도 가장 중요한 곳은 드롭다운을 클릭했을때 나오는 계정,API key 관련 설정들이다. 세팅을 눌러서 해당 페이지로 들어가보면... 다른건 직관적으로 알 수 있을테니 넘어간다.

API key를 발급하는 곳이 보일 것이다. 한번 발급한 API key는 다시 확인해볼수 없으니 반드시 반드시 잘 보관하고 사용해야한다. 만약 유출되어 누군가 함부로 사용하면 막대한 비용을 물어야한다... 이제 API key까지 생성했으면 준비는 끝났다. 문서들을 참고하면서 python에서 시작해보자.

 

pip install openai

먼저 pip을 통해 openai를 설치해준다.

 

import os
import openai
openai.organization = "org-5mjcuthqC57J2ZW2Y9oWBp6F"
openai.api_key = os.getenv("OPENAI_API_KEY")

위의 예시처럼 api_key를 organiztion id를 통해 불러올 수도 있지만 api_key를 직접적으로 입력해줘도 상관은 없다. 다만 어느 것이 안전할지는 안봐도 뻔할것 같다. 이후에는 진짜 간단하게 메소드만 사용하면 된다

 

openai.chatCompletion.create(
  model= "gpt-3.5-turbo",
  messages = [{"role": "user", "content": "Hello!"}]
)

이 예시는 chatgpt에게 메세지를 보내는것과 똑같은 작동을 한다.

필수적인 키값은 model과 messages인데 모델은 모델리스트들을 참고하면 된다. 또한 message는 다시 role과 content가 필수적인 키값이다. role은 system,user,assistant가 존재하는데 개발자로서 원하는 역할을 부여하고 싶으면 system. user의 입력값을 받고 싶다면 user 이다. assistant는 답변이 assistant role로 오던데, 답변의 role인것 같다.

 

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

결과는 이렇게 JSON 형태로 오는데, 필요한 값(보통 content)만 취하면 된다.

 

메세지를 딕셔너리를 담은 리스트의 형태로 system,user...의 메세지를 담아 보내면 system 혹은 assistant 역할에 맞게 gpt 모델이 받아들이고 user의 content를 대답할 것이다.

openai.Image.Create(
  prompt = "A cute baby sea otter",
  n = 2,
  size = "1024x1024"
)

이 예시는 DALL-E를 통해 이미지를 생성한다. 필수 키워드는 prompt이고 size는 256*256, 512*512, 1024*1024(디폴트) 중에서 선택하고 n은 동시에 생성할 이미지 수로 10이하로 해야한다.

 

{
  "created": 1589478378,
  "data": [
    {
      "url": "https://..."
    },
    {
      "url": "https://..."
    }
  ]
}

여기서는 url만 취하면 된다.

 

자세한 내용은 아래 링크를 참고

https://platform.openai.com/docs/api-reference/introduction?lang=python 

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

'일지' 카테고리의 다른 글

2023.05.22  (0) 2023.05.24
2023.05.19  (0) 2023.05.24
2023.05.18  (0) 2023.05.18
2023.05.17  (0) 2023.05.17
2023.05.16  (0) 2023.05.17
복사했습니다!