OpenAI: API Connection Error

calico·2025년 5월 19일

Artificial Intelligence

목록 보기
27/144

참고

1. Open AI Key 발급받기

⚠️ 주의사항

  • API Key는 공개적으로 노출되지 않게 안전하게 관리해야 합니다.
  • 절대 Github, 블로그 등 공개된 장소에 업로드하지 마세요.

  • 계정 생성: OpenAI 웹사이트에 접속하여 계정을 생성합니다.

  • API 키 획득: 계정 대시보드에서 API 키를 생성합니다. 이 키는 API 요청을 인증하는 데 사용됩니다.
    먼저 Openai API 사이트에 들어가신후 회원 가입을 합니다. 회원 가입이 완료되면 https://platform.openai.com/api-keys 링크에서 API Key를 발급 받을 수 있습니다.

    • 발급 받으신 키는 다시 확인할 수 없기 때문에 꼭 저장해두셔야 합니다.



신용카드를 등록하지 않으면 아래와 같은 오류 발생


  • 참고로, 유료 버전을 사용해야만 API를 지원하고 있다.

오류: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}



2. Open AI Key 연결하기


  • 터미널에서 OpenAI API Key(OPENAI_API_KEY)가 정상적으로 연결/인식되고 있는지 확인하는 방법



1) Python 코드로 환경변수 확인


  • 터미널에서 Python을 실행해서 환경 변수가 제대로 불러와지는지 직접 확인할 수 있습니다.

바로 입력해서 확인 (인터프리터 방식)


python
  • 이후 아래 코드를 붙여 넣으세요:
import os
print(os.getenv("OPENAI_API_KEY"))
  • 정상적으로 키가 나오면, .env 및 환경변수 로딩이 잘 된 겁니다.

  • 아무것도 출력되지 않거나 None이 뜨면 환경변수 설정을 다시 확인하세요.



환경변수 즉석세팅 후 확인


  • 환경변수를 직접 세팅하고 바로 확인도 가능합니다(리눅스/맥 기준):
export OPENAI_API_KEY=sk-xxxx....
python -c "import os; print(os.getenv('OPENAI_API_KEY'))"
  • Windows PowerShell:
$env:OPENAI_API_KEY="sk-xxxx..."
python -c "import os; print(os.getenv('OPENAI_API_KEY'))"



2) .env 파일 자동 로딩 테스트 (python-dotenv 사용시)


  • .envpython-dotenv를 쓰는 경우 아래처럼 간단한 코드를 하나 test_env.py 같은 파일에 저장하고 실행합니다.
from dotenv import load_dotenv
import os

load_dotenv()
print(os.getenv("OPENAI_API_KEY"))
  • 실행:
python test_env.py

정상적으로 키가 나오면 연결 OK!



3) 오픈소스 클라이언트로 실전 확인 (필수는 아님)


  • OpenAI 공식 패키지(openai)가 설치돼 있으면 아래처럼 바로 Test도 할 수 있습니다.
import openai
from dotenv import load_dotenv
import os

load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
print(openai.Model.list())  # 정상접속시 모델목록 출력됨

오류 없이 결과가 나오면 키가 살아 있고, 할당도 잘된 것입니다.



4. 문제점 확인 TIP

  • 빈 값이 나오는 경우

    1) .env 파일 위치, 이름, 대문자/소문자 등 오타 없는지

    2) load_dotenv() 호출이 누락되지 않았는지

    3) 환경변수 명칭이 정확한지 확인



3. 연결 확인하기


test_env.py



import openai
import os
from dotenv import load_dotenv
import httpx

# .env에서 API키 로딩
load_dotenv()

# SSL 검증 끈 httpx 클라이언트 생성
client = openai.OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    http_client=httpx.Client(verify=False)  # [!] 개발/테스트 용
)
models = client.models.list()
print([m.id for m in models.data])



참고) SSL 인증서 검증 실패


이 에러는 SSL 인증서 검증 실패 즉,
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain
라는 메시지에서 유추할 수 있듯이,
서버와의 HTTPS 통신에서 인증서 오류(특히 사내 프록시나 방화벽, 셀프사인 인증서 환경에서 자주 발생)를 만난 것입니다.

왜 이런 문제가 생길까요?

  • 회사, 학교, 기관 등의 네트워크에서는 자체(또는 프록시) 인증서를 사용할 수 있습니다.
  • 이로 인해 python, OpenAI, httpx 등 패키지가 외부 인터넷(https://api.openai.com)에 연결할 때 인증서 신뢰 문제로 거부될 수 있습니다.



1. 가장 안전한 공식적 방법


  • 운영체제에 회사에서 발급받은 루트 인증서(CA) 설치
    → 이 방법은 IT 부서 문의/협조가 필요합니다.



2. 임시/비권장 방법: 파이썬 SSL 검증 비활성화


테스트 또는 학습 용도로만 사용, 실서비스에서는 권장 X


코드 상에서 비활성화


  • 아래처럼 OpenAI 인스턴스를 만들 때 직접 검증을 끄는 옵션을 쓸 수 있습니다.
import openai
import os
from dotenv import load_dotenv
import httpx

load_dotenv()
client = openai.OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    http_client=httpx.Client(verify=False)  # SSL 검증 비활성화 옵션
)
models = client.models.list()
print([m.id for m in models.data])
  • 이렇게 하면 SSL 검증 오류가 나지 않지만, 보안상 안전하지 않습니다.



환경변수로 비활성화


  • 아래 환경 변수 추가 후 터미널에서 python 실행
SET PYTHONHTTPSVERIFY=0         # Windows CMD
$env:PYTHONHTTPSVERIFY=0        # PowerShell
export PYTHONHTTPSVERIFY=0      # Linux/Mac



3. 회사/학교의 프록시나 CA(인증서) 사용 환경


  • IT 부서에 회사에서 사용하는 루트 CA(인증서) PEM 파일을 요청

  • 그 인증서를 시스템에 정상 추가(윈도우: 신뢰할 수 있는 루트 인증 기관/리눅스: ca-certificates에 추가)



4. 참고사항


  • 위 SSL 검증 비활성화는 해커 공격이나 중간자 공격에 취약할 수 있으므로 꼭 신뢰되는 환경에서만 사용하세요.

  • 보안이 중요한 상황(회사 프로젝트 등)에선 반드시 IT팀과 상의해 루트 인증서를 올바르게 추가!

  • 만약 VPN이나 프록시 사용 중이면, 네트워크를 잠시 외부망으로 바꿔서 시도해보는 것도 한 방법입니다.



결론 (가장 쉬운 임시 해결)


import openai
import os
from dotenv import load_dotenv
import httpx

# .env에서 API키 로딩
load_dotenv()

# SSL 검증 끈 httpx 클라이언트 생성
client = openai.OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    http_client=httpx.Client(verify=False)  # [!] 개발/테스트 용
)
models = client.models.list()
print([m.id for m in models.data])



profile
https://velog.io/@corone_hi/posts

0개의 댓글