불현듯, 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}")
'데이터분석 > Data Analysis With GPT' 카테고리의 다른 글
선만 추가했을 뿐인데 OK가 된 리포트 (1) | 2024.05.08 |
---|---|
바짝 긴장해라! H.U.M.A.N. GPT가 곧 SQL을 정복할 것이다. (0) | 2024.05.02 |
DBeaver에 GPT 연동하기 (1) | 2024.05.01 |
GPT를 활용한 용어 결정: StockCode?Ticker?Symbol? (1) | 2023.12.27 |
GPT의 놀라운 통찰력: GPT가 제안한 중국 관광객 마케팅 전략 (2) | 2023.12.26 |
AI 시대에 가져야 할 우리의 자세 (1) | 2023.12.24 |
GPT랑 쿵짝해서 주요 ETF 들을 한눈에 볼 수 있게 만들어봤습니다. (0) | 2023.11.03 |
GPT 시대, 관계형 데이터의 재조명 (0) | 2023.10.10 |