개요
이미지 생성 구현을 하기위해 LangChain 프레임워크를 사용하여 다양한 모델을 라우팅할 계획이었으나, 현재 LangChain은 이미지 생성 모델을 직접 지원하지 않아 OpenAI의 공식 Python 라이브러리를 직접 사용하는 방식으로 전환했습니다.
사용한 도구 및 환경
프레임워크: FastAPI
모델 라우팅: LangChain (일부 사용)
이미지 생성 모델: OpenAI gpt-image-1
OpenAI Python SDK: 사용
API 키 관리: 사용자 이메일 기반 다중 공급자 키 처리
개발 언어: Python
주요 라이브러리: openai, sqlalchemy, fastapi, pydantic
테스트 방법
사용자의 입력 메시지에 “그림”, “사진”, “이미지”, “그려줘”, “그림으로”, “그려”, “보여줘” 와 같은 키워드가 포함되어 있을 경우, 해당 메시지를 이미지 생성 프롬프트로 간주하여 OpenAI API로 전달하였다.
주요 코드 요약
if any(keyword in message for keyword in image_keywords):
if "gpt-image-1" in config.OPENAI_MODELS:
try:
response_url = generate_image_with_openai(api_key, message)
return response_url
except Exception as e:
return "이미지를 생성하는 중 오류가 발생했습니다."
def generate_image_with_openai(api_key: str, message: str) -> str:
openai.api_key = api_key
response = openai.images.generate(
model="gpt-image-1",
prompt=message,
n=1,
size="1024x1024"
)
return response.data[0].url
테스트 결과
시도한 모델 : gpt-image-1
결과 : 이미지 생성 실패
오류 메시지 :
{
"error": {
"message": "Your organization must be verified to use the model `gpt-image-1`.",
"type": "invalid_request_error",
"param": null,
"code": null
}
}
OpenAI 플랫폼에서 gpt-image-1 모델 사용을 위해 조직 인증(Organization Verification) 이 필요하다는 응답을 받았으며, 설정 페이지에서 인증 절차를 완료해야 한다고 안내되었다.
코드에서 model을 제외한 결과 다음과같이 URL형식으로 이미지를 받음

결과 확인
