ㅁ 개요
O 프로그램 소개
- 이번 글은 이전글([분류 전체보기] - [업그레이드][프로젝트] AI를 이용하여 음성으로 블로그 글 무한 생성하기 - 1.소개편)에 이은 2번째 글로 파이썬으로 chatGPT의 API를 이용하여 블로그 글을 자동으로 생성하는 방법을 살펴보겠습니다.
O 완성된 프로그램 실행 화면
1.프로그램을 실행하면 'AI와 공존하는 방법'에 대하여 chatGPT3.0가 5가지 정도의 방법을 설명해 주고 있습니다.
2. 이번에는 chatGPT3.5로 글쓴 결과 입니다. 조금 더 자세하게 설명을 해주고 있고, 마지막에 결론까지 제시하고 있습니다.(요청을 어떻게 하느냐에 따라 결과는 많이 달라질 수 있습니다.)
3. 이번에는 노션AI, chatGPT3.0, chatGPT3.5 3가지 AI를 이용하여 랜덤하게 돌려본 결과 입니다.
여기서는 노션AI가 선택되어 글쓰기 결과를 보여주었습니다.
4. chatGPT 3.0(model="text-davinci-003")는 무료인줄 알았는데, 역시나 사용한 토큰 수만큼 과금이 되고 있는 것을 알 수 있습니다. 큰 비용은 아니지만, 사용시 조절하여 사용해야 겠습니다.
ㅁ 세부 내용
O 완성된 소스
소스 : 1.py
import openai # pip install openai
from config import *
import time
openai.api_key = OPENAI_API_KEY
TOPIC = 'AI와 공존하는 방법'
# # chatGPT 3.5(유료)
# messages = [
# {'role': 'system', 'content': 'You are a helpful assistant.'},
# {'role': 'user', 'content': TOPIC+' 로 블로그 글 500자 내외로 멋있게 써줘'},
# ]
# response = openai.ChatCompletion.create(
# model='gpt-3.5-turbo',
# messages=messages
# )
# time.sleep(5)
# # print(response)
# content = str(response['choices'][0]['message']['content']).strip()
# print(content)
# chatGPT 3.0(유료)
response = openai.Completion.create(
model="text-davinci-003",
prompt=TOPIC,
temperature=1,
max_tokens=4000
)
time.sleep(5)
content = str(response['choices'][0]['text']).strip()
print(content)
소스 : 2.py
from notionai import NotionAI # pip install --upgrade notionai-py
import openai # pip install openai
from config import *
import time
from tistory import Tistory # pip install tistory
from translate import Translator # pip install translate
import random
openai.api_key = OPENAI_API_KEY
notion_ai = NotionAI(NOTION_TOKEN, NOTION_SPACE_ID)
ts = Tistory(BLOG_URL, CLIENT_ID, CLIENT_SECRET)
ts.access_token = ACCESS_TOKEN
openai.api_key = OPENAI_API_KEY
translator = Translator(from_lang='ko', to_lang='en')
######################################################
def writePostbyNotion():
print('[1] notionAI가 글 쓰는 중...')
content = notion_ai.blog_post(f'write a blog about {TOPIC}').strip()
title = content.split('\n')[0].replace('#', '').strip()
print(f'[*] 제목: {title}')
translation = translator.translate(title)
print(f'[*] 영문 제목: {translation}')
return content
#-----------------------------------
def writePostbyChatGPT35():
print('[1] 챗GPT3.5가 AI가 글 만드는 중...')
# textToVoice("챗GPT AI가 글 만드는 중입니다")
# chatGPT 3.5(유료)
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': TOPIC+' 로 블로그 글 500자 내외로 멋있게 써줘'},
]
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=messages
)
time.sleep(5)
# print(response)
content = str(response['choices'][0]['message']['content']).strip()
# print(content)
title = TOPIC
print(f'[*] 제목: {title}')
translation = translator.translate(title)
print(f'[*] 영문 제목: {translation}')
return content
#-----------------------------------
def writePostbyChatGPT30():
print('[1] 챗GPT3.0이 AI가 글 만드는 중...')
# textToVoice("챗GPT AI가 글 만드는 중입니다")
# chatGPT 3.0(유료)
response = openai.Completion.create(
model="text-davinci-003",
prompt=TOPIC,
temperature=1,
max_tokens=4000
)
time.sleep(5)
content = str(response['choices'][0]['text']).strip()
# print(content)
title = TOPIC
print(f'[*] 제목: {title}')
translation = translator.translate(title)
print(f'[*] 영문 제목: {translation}')
return content
######################################################
TOPIC = 'AI와 공존하는 방법'
writePost_L = ['Notion', 'chatGTP35', 'chatGPT30']
writePost = random.randrange(0,2)
print("랜덤 글쓰기: ", writePost, " 번 ", writePost_L[writePost])
if writePost == 0:
content = writePostbyNotion()
print(content)
elif writePost == 1:
content = writePostbyChatGPT35()
print(content)
elif writePost == 2:
content = writePostbyChatGPT30()
print(content)
else:
print("무언가 이상합니다. 확인이 필요합니다. 글쓰기를 중단합니다.")
> python 2.py
O 주요 내용
- 이전 포스팅에서 대부분 설명했던 내용이므로 간략하게만 짚고 넘어가겠습니다.
1. 아래는 chatGPT3.0을 사용하는 방법입니다.
2. 위 코드를 실행한 모습니다.
3. 아래는 chatGPT3.5를 사용하는 방법입니다.
4. 위 코드(chatGPT3.5)를 실행한 모습니다.
5. 글쓰기 AI 중에서 프로그램 실행시 마다 랜덤하게 바뀔 수 있도록 먼저 함수형태로 만들어 줍니다.
노션 글쓰기 함수
chatGPT3.5 글쓰기 함수
chatGPT3.0 글쓰기 함수
6.아래와 같이 랜덤하게 선택될 수 있도록 random 모듈을 이용하고, 결과로 받은 숫자를 if문을 사용하여 위에서 만든 함수중 선택해서 실행할 수 있도록 해 줍니다.
7. 아래에서는 노션AI가 선택되어 글을 쓰고 있습니다.
ㅁ 정리
O 우리가 배운 내용
오늘은 여기까지이며, 댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.