소개
최근에 이재엽 님께서 저희 지피터스 직원들이 댓글을 열심히 달아주니 넘 좋다는 이야기를 해주셨더라고요.. 그래서 최대한 더 분발해보고자 그래서 "AI 댓글 비서를 만들어 보자!"라는 아이디어를 떠올렸습니다.
단순히 AI가 댓글을 대신 다는 것이 아니라, 더 많은 댓글을 효율적으로 작성해 소통의 가치를 높이는 역할을 목표로 했습니다.
(아직은 프로토타입... 으로 단순히 댓글을 생성하고 자동 업로드되고 있지만 - 차차 개선해보려고요 )
스터디 리더 잔마왕님 최고! 👑✨ 이런 시스템이 가능하도록 영감을 주셨습니다.
진행 방법
1. AI툴
AI 댓글 생성:
Anthropic Claude API코드 작성:
CursorUI 제작:
Streamlit
2. 구현 과정
(1) 게시글 크롤링
게시글 순차 크롤링:
크롬 개발자 도구에서XPath를 추출하여 게시판의 첫 번째 글부터 데이터를 가져왔습니다.댓글 영역 탐색:
스크롤을 최하단으로 내린 뒤 댓글 입력 영역을 찾는 방식으로 구현했습니다.
다만 영역이 보이지 않을 경우에는 스크롤을 위로 다시 올려서 탐색하도록 로직을 보완했죠.
생성된 댓글 2개 중 하나를 선택하면 자동으로 스크롤이 내려가고 댓글이 달립니다.
(2) 댓글 생성
AI를 활용한 댓글 생성:
Claude API를 활용하여 게시글 내용에 맞는 댓글을 생성했습니다.
댓글은 감정을 담아 자연스러움을 강조했습니다. (아직 더 고도화 해야함...)
def generate_comments(self, title, content, is_regeneration=False):
if not is_regeneration:
prompt = f"""다음 게시글에 댓글 2개를 생성해주세요.
게시글 제목: {title}
게시글 내용: {content}
다음 조건을 지켜주세요:
1. 게시글에서 직접 인용한 구체적인 문구나 키워드를 반드시 포함
2. 다음과 같은 요소들을 자연스럽게 섞어서 사용:
- 'ㅎㅎ', '...!', 'ㅠㅠ' 같은 감정 표현
- '맞아요~', '그러게요...' 같은 공감 표현
- 말줄임표(...) 활용
3. 각 댓글은 1-2문장으로 짧게
4. 존댓말 사용하되 너무 형식적이지 않게
5. 1번 댓글은 긍정적으로, 2번 댓글은 긍정과 함께 제안점도 추가해서 생성해줘.
"""
else:
prompt = f"""다음 게시글에 새로운 댓글 2개를 생성해주세요.
게시글 제목: {title}
게시글 내용: {content}
다음 조건을 지켜주세요:
1. 게시글의 핵심 워크플로우나 아이디어에 대해 놀라움/감탄을 표현
2. 다음 요소들을 자연스럽게 섞어서 사용:
- 이모지 적극 활용 (예: 👀, 👍, ✨, 🎉)
- '와우', '대박', '신기하네요' 같은 감탄 표현
- '이런 방법이...!' 같은 놀람 표현
3. 각 댓글은 1-2문장으로 짧게
4. 친근한 존댓말 사용
5. 1번 댓글은 순수한 감탄/칭찬으로, 2번 댓글은 감탄하면서 다른 아이디어도 제안
"""
response = self.anthropic.messages.create(
model="claude-3-sonnet-20240229",
max_tokens=3000,
temperature=0.2,
messages=[{"role": "user", "content": prompt}]
)(3) 중복 방지와 로그인 유지
중복 방지: 이미 스크랩핑한 게시글은 JSON 파일에 저장해 중복 작업을 피했습니다.
로그인 유지: 매번 로그인해야 하는 불편함을 해결하기 위해
쿠키를 저장 및 불러오는 기능을 추가했습니다.
(4) Streamlit으로 UI 제작
UI 제작 과정의 삽질(!):
크롤링 상태를 실시간으로 확인하고, 댓글 작성 여부를 선택할 수 있는 UI를 만들었지만, 데이터를 저장하는 로직에서 꽤나 헤맸습니다. 지금 대부분 동작하긴 하는데 댓글 재생성 기능이 안 돌아가서 애를 먹고 있네요 😭
결과와 배운 점
AI 댓글 생성은 단순히 댓글을 대신 다는 게 아니라, 더 많은 소통을 효율적으로 가능하게 해주는 도구라는 점에서 의미가 있습니다. 역시 사람이 한땀한땀 써준 댓글과는 정성스러운 부분 차이가 많이 납니다..
한 번에 여러 이슈를 해결하려고 덤비다가 오히려 코드가 꼬여서 여러번 다시 시도를 했는데요, 역시 하나하나씩 차근차근 보완하는게 중요한 것 같아요.
잔마왕님과의 스터디에서 공유하며 피드백 받고 더 도움이 되는 댓글을 달아주려고 합니다! 🙌
그리고 이 게시글은 제가 만든 '지피터스 게시글 서포트 GPT'로 초안을 생성했습니다. 대략적인 내용을 넣으면 구조를 잘 잡아줘서 편하긴하네요! (챗봇 링크)
소소한 꿀팁 - 처음에는 좀 딱딱하게 게시글을 써주는데 재밌고 흥미롭게 써달라고 하면 잘 바꿔줍니다.