OpenAI API 활용

변수 관리 방식에 따른 API key 관리와 활용(Local) - 프로젝트 단위 vs. 임시 설정 vs. 영구적 시스템 설정

최 수빈 2025. 1. 25. 14:34

 

프로젝트 단위 환경 변수 관리 (.env 기반 변수 관리)

 

 

.env 파일 사용

프로젝트 내부에서만 사용하는 환경 변수 파일

주로 Python, Node.js등에서 특정 애플리케이션의 환경 변수를 관리하기 위해 사용

 

 

 

 

 

 

임시 환경 변수 설정

(export 명령어 사용, 터미널 임시 환경 변수 방식,  세션 기반 환경 변수 설정)

 

 

 

터미널 세션 동안만 유효 → 짧은 시간동안 필요한 환경 변수 설정, 테스트/디버깅 목적으로 사용

 

 

터미널에서 환경변수 설정:

export 변수이름=값

 

 

설정한 환경 변수 확인:

echo $변수이름

 

 

 

설정된 환경 변수 사용 코드(Python) 예시

import os

api_key = os.getenv("변수이름")
print(api_key)

 

 

 

영구적 시스템 환경 변수 설정 (~/.zshrc 또는 ~/.bashrc수정, 시스템 전역 환경 변수 방식, 영구 환경 변수 설정)

 

 

~/.zshrc나 ~/.bashrc는 터미널 초기화 시마다 읽힘 → 시스템 전체에서 변수 값을 영구적으로 사용할 수 있음

 

 

 

나는 macOS기본 셸 Zsh 사용

nano ~/.zshrc

 

~/.zshrc 파일

 

conda 초기화 코드랑 Matplotlibrc환경 변수 설정해놓은게 제일 최근에 한구..

 

 

 

제일 아래에 추가하고 싶은 환경 변수를 설정

 

#API이후로 추가 작성해준 코드

export OPENAI_API_KEY=실제_API_KEY_입력

 

ctrl + O → Enter →  ctrl + X

 

하면 WriteOut 저장 Exit 됨

적용하고 확인

저장해놓은 키값 출력 잘된다. 

 

 

 

 


 

임시적으로 환경 변수를 설정하든, 영구적으로 시스템 환경 변수를 설정하든 

환경 변수를 사용하는 코드는 동일

 

os.getenv("환경변수이름", "default_value")

환경 변수를 가져오며, 환경 변수가 없을 경우 None이나 기본값을 반환(함수 호출로 접근)

  • 첫 번째 인자 : 환경 변수 이름 (필수)
  • 두 번째 인자 : 환경 변수가 없을 경우 반환할 기본값 (선택)

환경 변수가 없어도 기본값으로 대체 가능해야할 때(API키, 디버그 플래그 등 기본값을 설정하는 경우) 사용

 

 

os.environ["환경변수이름"]

환경 변수를 딕셔너리 형태로 직접 접근

→ 딕셔너리처럼 환경 변수 이름을 키로 사용하여 값을 가져옴

→ 환경 변수가 존재하지 않을 경우, KeyError 발생

→ 딕셔너리의 .get()메서드를 사용하여 안전하게 접근 가능

    os.environ.get("환경변수이름","default_key") #"환경변수이름"이 없으면 "default_key" 출력

→딕셔너리 형태로 환경 변수 전체를 관리할 때 적합

 

필수 환경 변수(데이터베이스 URL등)가 반드시 설정되어야 하며, 없을 경우 에러를 발생시켜야 할 때 사용

'OpenAI API 활용' 카테고리의 다른 글

Streamlit - 민감한 데이터 관리 하기  (0) 2025.01.06
streamlit run app.py  (8) 2024.12.16
streamlit hello  (10) 2024.12.15
Streamlit  (5) 2024.12.13
터미널로 GPT를 만나봄  (7) 2024.12.12