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
위 링크로 접속해 계정을 생성하고 로그인 하면 아래와 같은 화면을 볼 수 있습니다.
여기서 왼쪽 상단의 좌물쇠 아이콘을 클릭해 주세요
그럼 다음과 같이 API KEY를 발급받을 수 있는 창이 생깁니다.
+Create new secret key
버튼을 누르고 'sk- ~~ 로 시작하는' API key를 발급받아 주세요.
다음과 같이 용도에 따라 구분하여 Permission을 줄 수 있는데 실습용으로 발급받기 위해 ALL 로 발급받았습니다.
API Key가 한번 생성되고 나면 다시 확인할 수 없기 때문에 (이런 경우 다시 생성해야 합니다.) 생성되고 나서 발급 받은 Secret key를 개인 메모장이나 안전히 저장할 수 있는 곳에 옮겨 적어줍니다.
Env 파일 생성하여 환경변수에서 관리하기
이제 작업을 할 폴더 디렉토리에서 .env 파일을 생성해줍니다.
맥이나 리눅스의 경우 finder에서 .env 파일을 바로 확인할 수 없어 권한을 따로 추가해 줘야 하기 때문에 저는 vscode를 사용했습니다.
이제 기존에 작업하던 파일로 돌아와 다음과 같이 명령어를 입력해줍니다.
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를 사용할 수 있습니다!
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을 제공하오니 이에 참고하여 사용하시길 바랍니다
'LLM > LangChain' 카테고리의 다른 글
LangChain Arxiv 문서 불러오기 (0) | 2024.04.11 |
---|---|
LangChain, Chromadb 이용 문서 기반 RAG 구현하기 (0) | 2024.04.04 |
[LangChain for LLM Application Development] 랭체인 Agent (0) | 2024.02.03 |
[LangChain for LLM Application Development] 랭체인 Evaluation (0) | 2024.02.03 |
[LangChain for LLM Application Development] 랭체인 QA (1) | 2024.02.03 |