-
[Python] OpenAI API Secret Key 관리Etc 2023. 11. 3. 23:50
🤔 Git을 활용한 OpenAI API 시크릿키 관리
openai의 시크릿 키가 유출되면 수많은 문제를 야기할 수 있다.
git으로 협업을 진행할 때 이 시크릿 키를 어떻게 관리하는 게 좋을까?
🔎 전체 프로젝트 구조
. ├── README.md ├── dall_e_2.py ├── gpt_turbo.py ├── json_parse.py ├── main.py ├── secrets.json ├── secrets_manager.py └── translate.py
1️⃣ secrets.json 생성
secrets.json
{ "SECRET_KEY": "openAI secret key" }
위와 같이 Json 형식에 맞게 secrets.json 파일에 SECRET_KEY를 저장해 준다.
2️⃣ .gitignore에 secrets.json 등록
secrets.json 파일 안에는 시크릿키가 포함되어 있기 때문에 프로젝트에 .gitignore 파일을 생성한 후, secrets.json 파일을 등록한다.
.gitignore
# openAI secret key secrets.json
3️⃣ secrets_manager.py 구현
위에서 작성한 secrets.json 에서 SECRET_KEY의 값을 불러오기 위하여 secrets_manager.py 를 작성한다.
secrets_manager.py
import os import json def get_secret_key(filename='secrets.json', key='SECRET_KEY'): script_dir = os.path.dirname(os.path.realpath(__file__)) file_path = os.path.join(script_dir, filename) try: with open(file_path, 'r') as file: secrets = json.load(file) return secrets.get(key) except FileNotFoundError: print(f"The file {filename} was not found.") return None except json.JSONDecodeError: print(f"The file {filename} is not a valid JSON file.") return None
4️⃣ main.py에서 사용
3️⃣에서 작성한 get_secret_key 함수를 호출하여 openai.api_key에 secret key를 넣어준다.
main.py
from secrets_manager import get_secret_key secret_key = get_secret_key() openai.api_key = secret_key
✨ 성공 !
📃 참고 자료
728x90'Etc' 카테고리의 다른 글
[Python] googletrans 'NoneType' object has no attribute 'group' (0) 2023.11.03 네이버클라우드 살펴보기 ☁️ (0) 2023.10.13