프로그램에 생성형 AI 기능을 통합하려면 웹 브라우저 접속 대신 파이썬 코드에서 **API(Application Programming Interface)**를 통해 LLM을 호출해야 합니다.
1. API 연동 핵심 용어 사전 (Glossary)
- API Key: API 서비스 제공자로부터 본인 식별 및 과금을 위해 발급받는 보안 암호 문자열입니다.
- SDK (Software Development Kit): 특정 API를 파이썬 등 프로그래밍 언어 개발자가 손쉽게 사용할 수 있도록 Wrapping한 라이브러리 패키지입니다. (예:
openai,google-generativeai) - Environment Variable (환경변수): 보안상 소스코드에 직접 암호를 하드코딩하지 않고, OS 시스템 환경 영역에 값을 감추어 관리하는 방식입니다. (
python-dotenv사용)
2. API 키 안전 관리와 python-dotenv 설정
소스코드에 API 키가 포함된 채 GitHub 등에 실수로 공개되면 수백만 원의 무단 과금이 발생할 수 있으므로, 반드시 ** 환경변수(.env 파일)**로 관리해야 합니다.
.env 파일 내용
OPENAI_API_KEY=sk-proj-xxxx...
GEMINI_API_KEY=AIzaSy...
파이썬 연동 코드 (main.py)
import os
from dotenv import load_dotenv
from openai import OpenAI
# .env 파일에서 환경변수 읽어오기
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
client = OpenAI(api_key=api_key)
# 첫 API 테스트 호출
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "너는 DAVHAVE의 친절한 AI 조수야."},
{"role": "user", "content": "파이썬 API 연동 성공 축하 메시지를 한 줄로 남겨줘!"}
]
)
print(response.choices[0].message.content)
3. 자주 묻는 질문 (Q&A)
Q. API 호출 시 발생하는 RateLimitError(요청 한도 초과)는 어떻게 해결하나요?
A. 분당 요청 수(RPM)나 분당 토큰 수(TPM) 한도를 초과했을 때 발생합니다. 코드에 tenacity 라이브러리를 활용해 지수 백오프(Exponential Backoff) 재시도 로직을 추가하거나 결제 한도 플랜을 상향해야 합니다.