Skip to content

pizzalist/auto-kakao-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kakao Agent

카카오톡 PC 클라이언트를 감시하고, RAG + LLM 파이프라인으로 응답을 제안한 뒤 Slack 승인 절차를 거쳐 자동으로 전송하는 에이전트입니다. OpenAI API 키가 없을 때는 Mock 모드로 동작하여 흐름을 빠르게 검증할 수 있습니다.

주요 기능

  • 카카오톡 대화 파싱 후 RAG(ChromaDB)로 말투와 과거 대화를 검색
  • OpenAI LLM 또는 Mock 에이전트로 메시지 분류 및 응답 생성
  • Slack 봇으로 승인 / 거절 / 재생성 루프를 운영 (버튼 기반)
  • KakaoTalk GUI 자동화 컨트롤러와 연동하여 전송까지 자동 처리
  • 콘솔 모드 테스트 시 샘플 대화로 파이프라인을 시뮬레이션

빠른 시작

  1. Python 환경 준비
    python -m venv .venv
    source .venv/bin/activate  # Windows: .venv\Scripts\activate
    pip install -r requirements.txt
  2. 환경 변수 설정 – 루트의 .env 파일에 값을 채웁니다.
    OPENAI_API_KEY="sk-..."        # 없으면 Mock RAG + LLM으로 동작
    SLACK_BOT_TOKEN="xoxb-..."     # Slack OAuth Token (Bot User)
    SLACK_APP_TOKEN="xapp-..."     # Slack Socket Mode App Token
    SLACK_CHANNEL_ID="C012345"     # 승인 요청을 보낼 채널
  3. 대화 데이터 준비data/my_chats에 카카오톡 txt/csv 내보내기를 넣으면 main.py 또는 GUI 실행 시 로컬 말투/대화가 로딩됩니다. 샘플이 필요하면 data/sample_chats를 사용할 수 있습니다.

실행 방법

1) 콘솔 파이프라인 테스트

개발/테스트 용도. 기본적으로 data/my_chats를 로드한 뒤 main.py에 정의된 시나리오를 순차적으로 실행합니다.

python main.py [--skip-load] [--auto]
  • --skip-load: 이미 RAG가 구축되어 있다면 데이터 로딩을 건너뜁니다.
  • --auto: 승인 없이 자동 전송 가능한 케이스는 즉시 전송합니다.

2) KakaoTalk GUI 자동화 (Windows)

PC 카카오톡 앱을 직접 제어하여 실시간 메시지를 처리합니다.

python kakao_gui.py \
  --chat-dir ./data/my_chats \
  --poll-interval 2.5 \
  --auto-send \
  --skip-slack

주요 옵션:

  • --chat-dir: 초기 학습용 채팅 파일 경로
  • --auto-send: 자동 응답이 안전하다고 판단되는 경우 즉시 전송
  • --skip-slack: Slack 승인 루프를 생략 (테스트/데모 용)
  • --debug-dir: OCR 디버깅 스크린샷 저장 경로

데이터 디렉터리

경로 설명
data/chroma_db/ ChromaDB 퍼시스턴스 (벡터 인덱스)
data/gui_exports/ GUI 추출 / OCR 디버깅 캡처 보관
data/my_chats/ 실제 카카오톡 대화 내보내기 (개인 데이터)
data/sample_chats/ 배포용 샘플 대화, 데모/테스트에 사용

위 경로들은 .gitignore에 개별적으로 추가되어 GitHub에 업로드되지 않습니다. 민감한 .env는 프로젝트 특성상 버전에 포함되어도 되지만, 외부에 공유되는 저장소라면 비공개 브랜치나 시크릿 관리 도구(GitHub Secrets, 1Password 등)로 대체하는 것을 권장합니다.

추가 팁

  • Slack 토큰을 사용하지 않으면 승인 루프는 콘솔 입력 기반으로 시뮬레이션됩니다.
  • OpenAI 키가 없으면 MockRAGRetriever / MockLLMAgent가 자동으로 선택되어 비용 없이 흐름을 확인할 수 있습니다.
  • GUI 자동화는 Windows 카카오톡 UI 좌표에 의존하므로 사용할 모니터 배율과 언어 설정을 고정하고, 필요 시 --fixed-chat-point--debug-dir 옵션으로 조정하세요.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages