OpenAI API Key 발급 및 환경변수에 관리하기 + colab 에서 사용하기

LangChain 관련 프레임워크를 공부하다 보면 각종 API key들을 호출하고 관리해야 할 필요가 있습니다.

특히 OpenAI API key 처럼 토큰마다 유료 결제를 해 사용해야 하는 항목들의 경우 더 예민하게 관리해야겠죠😔

 

예를 들어 코드를 수정하다가 Github 과 같은 오픈 레지스토리에 내 API key를 실수로 올리게 된다면... 

과금 대참사가 일어날지도 모릅니다..!

 

또 OpenAI 관련 Cookbook 들을 실습하다 보면 종종 OpenAI API key 가 환경변수로부터 호출되도록 코드가 짜여 있는 것 처럼

API, Github Token 등등... 관리는 매우 중요합니다!

 

그래서 오늘은 OpenAI API key를 Python-dotenv 를 이용하여 환경변수에 관리하는 방법에 대해 알아보고자 합니다!

 

 

Python-dotenv 설치하기

 먼저 터미널 혹은 주피터노트북 명령창을 통해 다음과 같이 가상 환경 (혹은 OpenAI API를 활용한 실습을 할 환경)에 설치해 주세요

 

pip install python-dotenv

 

그럼 이제 준비는 다 끝났습니다.

 

OpenAI API를 발급받으러 가 볼까요?

 

 

OpenAI API Key 발급 받기

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

 

위 링크로 접속해 계정을 생성하고 로그인 하면 아래와 같은 화면을 볼 수 있습니다.

Platform OPENAI

 

여기서 왼쪽 상단의 좌물쇠 아이콘을 클릭해 주세요

 

 

그럼 다음과 같이 API KEY를 발급받을 수 있는 창이 생깁니다.

 

+Create new secret key

버튼을 누르고 'sk- ~~ 로 시작하는' API key를 발급받아 주세요. 

 

다음과 같이 용도에 따라 구분하여 Permission을 줄 수 있는데 실습용으로 발급받기 위해 ALL 로 발급받았습니다.

API Key가 한번 생성되고 나면 다시 확인할 수 없기 때문에 (이런 경우 다시 생성해야 합니다.) 생성되고 나서 발급 받은 Secret key를 개인 메모장이나 안전히 저장할 수 있는 곳에 옮겨 적어줍니다.

 

 

Env 파일 생성하여 환경변수에서 관리하기

 

.env

이제 작업을 할 폴더 디렉토리에서 .env 파일을 생성해줍니다.

맥이나 리눅스의 경우 finder에서 .env 파일을 바로 확인할 수 없어 권한을 따로 추가해 줘야 하기 때문에 저는 vscode를 사용했습니다.

 

openAI API Key

 

이제 기존에 작업하던 파일로 돌아와 다음과 같이 명령어를 입력해줍니다.

 

import os
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv(), override=True)

os.environ.get('OPENAI_API_KEY')

 

이를 실행하게 되면 .env 파일에서 관리되는 OPENAI_API_KEY가 잘 호출되는 것을 확인할 수 있습니다.

이제 github에 자동으로 올라가는걸 방지하기 위해 .gitignore을 이용하여 .env 파일만 등록해주면 되겠죠! 

 

Google Colab에서 사용하기

 

Colab에서 보이는 자물쇠 부분을 클릭하고 API KEY를 입력해 준 다음,

아래와 같이 코드를 입력해주면 Colab에서도 환경변수로 불러와서 OPENAI API KEY를 사용할 수 있습니다!

colab .env

import os
from google.colab import userdata

os.environ["OPENAI_API_KEY"] = userdata.get("OPENAI_API_KEY")

 

 

API key는 물론 유료 결제를 마무리해야 사용하실 수 있습니다!

기존의 ChatGPT 서비스와는 별개의 서비스로 ChatGPT 유료구독자이더라도 별도의 결제가 필요합니다🥲

하지만 Openai 계정을 생성한지 3개월이 지나지 않으면 무료 5달러의 token을 제공하오니 이에 참고하여 사용하시길 바랍니다