
안녕하세요!
이전에 파이썬으로 썸네일 이미지를 만드는 방법에 대해서 공유한 적이 있습니다.
아래 글에서 확인해볼 수 있습니다 🙂
이번에는 파이썬 코드로 OpenAI API를 사용하는 방법에 대해서 알아보려고 합니다.
OpenAI API 먼저 알고 있자
알아두어야 하는게, 보통 많은 분들이 알고 계시는 ChatGPT는 무료, 유료 버전이 있죠? 대부분의 AI는 제한적이여도 무료 버전이 있습니다.
하지만 API 사용부터는 AI의 경우 유료로 사용해야 합니다. 사용하시는 “토큰”에 따라 요금이 부과 되는데요.
사용할 때마다 부과되는 것은 아니고, 특정 토큰 이상이 되면 특정 금액이 결제되는 형식입니다.

이미지를 보시면 gpt-4o를 기준으로 백만 토큰당 5$ 정도가 결제가 됩니다.
API를 사용하는 법은 또 글로 자세히 작성해 드릴테니, 조금만 기다려주세요.
API를 이미 사용하고 계시다면 이 다음 과정부터 따라와주시면 될 것 같습니다.
API를 사용하는 이유가 뭘까
그러면 돈도 나가는데 무료로 쓰지 왜 API를 사용할까요?
그것은 개인적인 경험을 바탕으로 이야기하자면 바로 “자동화” 때문입니다.
직접 챗지피티에 접속해서 글을 달라고 하고, 작성해달라고 하는 과정도 사실은 “자동화”라고 보기에는 어렵겠죠.
만약에 파이썬으로 챗지피티를 사용하는 코드를 포함한다면, 자동화가 가능하기 때문에 API를 사용하게 되는 것 같습니다.
돈이 얼마나 들까?
생각보다 많이 들 수 있습니다.
대부분 블로그 글을 쓰실텐데, 블로그 글이라는 것 자체가 어느정도 퀄리티가 보장되어야 하고 길이도 좀 있어야겠죠. 글의 양을 점점 늘리려 할수록 사용되는 “토큰” 수가 많아질 것이고, 그만큼 결제되는 시기가 짧아지겠죠.
제 경우에는 자동화 블로그를 7개정도 운영하게 되었을 때, 3일에 한번 정도 $5.5을 결제하게 되니 굉장히 부담스러웠습니다.
그래서 알짜배기 블로그만 남겨둠과 동시에, 이미지 생성을 최대한 줄이는 방법을 택했습니다.
OpenAI API에 대한 요약
- 무료가 아니다
- 많이 쓸수록 금액은 부담스러울 수 있다
- 이미지를 생성시키게 되면 “토큰”을 굉장히 많이 사용한다
OpenAI API를 파이썬으로 구현하기
자, 이제 파이썬으로 구현해볼까요?
import openai
from openai import OpenAI
# generate_thumbnail_summary 함수 정의
class ThumbnailGenerator:
def generate_thumbnail_summary(self, blog_post):
client = OpenAI(api_key="openai의 api key를 입력하세요")
prompt = f"""
당신은 텍스트 요약 전문가입니다. 아래 제공된 블로그 글을 기반으로 썸네일에 사용할 12글자의 간결한 한국어 제목을 작성해주세요. 핵심 키워드를 포함하고, 시각적으로 강렬한 느낌을 줄 수 있도록 하세요.
### 블로그 글:
{blog_post}... (전체 글은 생략되었으나, 전체 내용을 고려해주세요)
### 추가 지시:
- 12글자로 제한.
- 특수 문자를 사용하지 말기.
- 썸네일에 적합하도록 내용을 포함하되 간결하고 임팩트 있게.
"""
try:
response = client.chat.completions.create(
model="gpt-4-turbo", #모델을 선택하세요
messages=[
{"role": "system", "content": "당신은 텍스트 요약 전문가입니다."},
{"role": "user", "content": prompt}
],
max_tokens=50, #사용될 토큰 최대치를 입력하세요
temperature=0.7
)
thumbnail_title = response.choices[0].message.content.strip()
if len(thumbnail_title) > 12: # 12글자 초과 시 자르기
thumbnail_title = thumbnail_title[:12]
return thumbnail_title
except Exception as e:
print(f"썸네일 제목 생성 중 오류 발생: {str(e)}")
return "요약 실패"
# 테스트용 블로그 글 (이전에 제공한 내용 기반)
blog_post = """
안녕하세요! 오늘은 파이썬으로 썸네일을 만들 수 있는 방법에 대해 알아보고 코드도 공유하도록 하겠습니다.
저는 자동화 관련한 파이썬 코드 작성을 많이 하고 비전공자이기 때문에 많은 분들의 입장에서 더 공유할 수 있을 것 같습니다!
제 사이트를 저장해두시면 더 많은 정보를 계속 받아보실 수 있을 것 같습니다.
먼저 오늘 공유 드릴 코드는 파이썬으로 간단하게 썸네일을 만드는 방법입니다.
파이썬으로 만든 후에는 로컬 pc에 저장하도록 코드는 구현이 되어있습니다.
여러가지 글씨체를 사용할 수 있겠지만, 저는 개인적으로 Do Hyeon체를 사용했습니다.
저는 실제로 티스토리 자동화 블로그를 운영하고 있고, 해당 블로그의 썸네일 이미지로 이 코드를 사용하고 있습니다.
결과물도 함께 보여드릴 테니 확인해보세요!
"""
# 테스트 실행 코드
if __name__ == "__main__":
# ThumbnailGenerator 인스턴스 생성
generator = ThumbnailGenerator()
# 함수 테스트
result = generator.generate_thumbnail_summary(blog_post)
# 결과 출력
print(f"생성된 썸네일 제목: {result}")
print(f"제목 길이: {len(result)}자")
제가 가져온 것은 예시 코드입니다.
blog_post라는 변수에는 기본 글이 있습니다. 이 글을 챗gpt에게 주고 원하는 내용을 다시 돌려받을 것입니다.
아래 부분에서 api_key에는 발급받은 OpenAI의 api key를 넣어줘야 합니다. api key는 반드시 보안이 철저해야 할 요소이니, 누구에게든 공유하지 마세요.
def generate_thumbnail_summary(self, blog_post):
client = OpenAI(api_key="openai의 api key를 입력하세요")
이제 어떻게 명령을 줄지는 아래 부분에서 정하게 됩니다. 제 경우에는 텍스트 요약 전문가라는 역할을 주고 제가 원하는 방식으로 글을 써달라고 했습니다.
prompt = f"""
당신은 텍스트 요약 전문가입니다. 아래 제공된 블로그 글을 기반으로 썸네일에 사용할 12글자의 간결한 한국어 제목을 작성해주세요. 핵심 키워드를 포함하고, 시각적으로 강렬한 느낌을 줄 수 있도록 하세요.
### 블로그 글:
{blog_post}... (전체 글은 생략되었으나, 전체 내용을 고려해주세요)
### 추가 지시:
- 12글자로 제한.
- 특수 문자를 사용하지 말기.
- 썸네일에 적합하도록 내용을 포함하되 간결하고 임팩트 있게.
"""
아래 부분은 gpt의 모델을 정하고 시스템상 챗지피티에게 어떤 역할을 줄 것인지 작성하는 칸입니다.
아까 작성한 프롬프트는 그 밑에 user로 입력하게 되어있죠.
그리고 여기서 중요한 점은 max_tokens 인데, 내가 사용할 최대 토큰 수입니다. 이것을 잘 작성하면 토큰 사용량을 많이 절약할 수 있겠죠?
try:
response = client.chat.completions.create(
model="gpt-4-turbo", #모델을 선택하세요
messages=[
{"role": "system", "content": "당신은 텍스트 요약 전문가입니다."},
{"role": "user", "content": prompt}
],
max_tokens=50, #사용될 토큰 최대치를 입력하세요
아래 부분은 제가 실제 사용하는 코드를 가져오다 보니 추가되었는데, 저는 반환되는 글자에서 최대 12자까지만 사용하고자 이것을 추가했고 필요없다면 if 구문을 추가할 필요는 없을 것 같습니다.
if len(thumbnail_title) > 12: # 12글자 초과 시 자르기
thumbnail_title = thumbnail_title[:12]
return thumbnail_title
한번 이용해보시고, 안되는 부분은 또 알아가는 재미가 있겠죠?
다들 더 멋있는 코드가 있으면 공유해주세요. 저도 더욱 유용한 코드를 가져올 수 있도록 노력하겠습니다.