데이터분석/Data Analysis With GPT
GPT로 댓글봇 만들기
스윗보스
2023. 12. 27. 09:11
불현듯, GPT로 댓글봇을 만들수 있겠네란 생각이 들어서, 한번 만들어 봤습니다.
실제 댓글 작성까지 자동화하려면 좀 복잡해질거 같고, 실제 만들어서 써먹을 생각도 없으므로,
블로그를 크롤링 한후에, OpenAI의 API를 통해 댓글 작성까지 해보도록 코드를 구현해봤습니다.
당연히, 이 역시도 GPT의 도움을 받아 10분만에 코드를 완성했네요.
실행 결과는 다음과 같습니다.
https://sweetquant.tistory.com/481 글에 대해, "AI는 도구일 뿐, 우리 자신의 성장과 발전에 초점을 맞춰 활용하자는 말씀에 백프로 공감합니다." 라고 누가봐도 GPT 스러운 댓글을 만들어 주네요.^^
코드의 내용을 정리하면 다음과 같습니다.
- OpenAI 클라이언트 설정
- OpenAI 라이브러리를 사용하여 GPT 모델에 접근하기 위한 클라이언트를 설정합니다.
- 각자 사용하는 OpenAI API키가 필요합니다.(유료)
- 댓글 생성 함수 (getReplyFromGPT)
- 주어진 내용에 대한 댓글을 생성하기 위해 OpenAI의 GPT 모델을 호출하는 함수입니다.
- 이 함수는 모델을 지정하고, 사용자의 메시지를 바탕으로 챗봇 응답을 생성합니다.
- 웹 페이지 크롤링
- requests와 BeautifulSoup 라이브러리를 사용하여 특정 URL의 HTML 내용을 가져오고 파싱합니다.
- 이 코드에서는 단순하게 티스토리의 특정 페이지만 사용했습니다.
- 사용하는 블로그에 따라 쉽게 크롤링이 안되거나, 파싱이 안되므로 그에 맞게 코드를 변경해야 합니다.
코드는 다음과 같습니다.
# GPT를 사용한 댓글 봇 만들기.
from openai import OpenAI
import requests
import traceback
from bs4 import BeautifulSoup
client = OpenAI(api_key='각자API키를사용') # API 키 설정
def getReplyFromGPT(content):
try:
# 사용하려는 모델 지정
model = "gpt-4"
# 댓글을 생성할 메시지 설정
prompt = f"이 내용에 공감하는 댓글을 짧은 한 문장의 한글로, 진짜 사람같은 느낌으로 만들어줘: {content}"
# GPT 모델을 사용하여 챗봇 응답 생성
response = client.chat.completions.create(
model=model, # 사용할 모델 지정
messages=[
{"role": "user", "content": prompt}
]
)
res = response.choices[0].message.content
return res
except Exception as e:
print(traceback.format_exc())
# URL 설정
url = 'https://sweetquant.tistory.com/481'
# GET 요청으로 URL에서 데이터 가져오기
response = requests.get(url)
# 응답 상태 확인
if response.status_code == 200:
# HTML 내용 파싱
soup = BeautifulSoup(response.content, 'html.parser')
# 원하는 부분의 내용 추출
# 이 예제에서는 'div' 태그와 'tt_article_useless_p_margin' 클래스를 기준으로 내용을 추출합니다.
# 실제 웹사이트 구조에 따라 이 부분은 변경될 수 있습니다.
main_content = soup.find('div', class_='tt_article_useless_p_margin')
content = main_content.get_text(strip=True)
reply = getReplyFromGPT(content)
print(reply)
else:
print(f"페이지를 가져오는 데 실패했습니다. 상태 코드: {response.status_code}")