Telegram AI Agent 개발: OpenAI & SerpAPI 활용 경험

텔레그램 AI 에이전트 개발 경험 요약

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

앱 개발

대상자

  • AI 에이전트 및 Telegram 봇 개발에 관심 있는 개발자
  • 중급 이상 Python 및 API 사용 경험자

핵심 요약

  • Telegram 봇 + OpenAI Assistant API + SerpAPI를 활용한 자동화 웹 검색 시스템 구축
  • APScheduler를 통해 타이밍 기반 작업 스케줄링 및 알림 기능 구현
  • 보안 강화: .env 파일로 API 토큰 및 비밀 정보 관리, Telegram 사용자 ID 화이트리스트 적용

섹션별 세부 요약

1. 프로젝트 개요

  • Telegram 봇 생성: @BotFather를 통해 봇 생성 후 HTTP API 토큰 발급
  • OpenAI API 키 발급: ChatGPT 사용 시 OpenAI 계정 생성 및 API 키 보안 저장
  • 필수 구성 요소: Telegram 봇, Telegram 토큰, OpenAI API 키

2. 개발 환경 및 구조

  • Python 3.10 + VS Code 사용
  • 프로젝트 구조:
  • bot_prompt_setup.py: 봇 UI, 프롬프트 생성, 작업 관리
  • assistant_core.py: OpenAI 및 SerpAPI와의 통신 처리
  • .env: 보안 정보 저장 (Git 무시)
  • prompts/: 작업 정의 파일

3. 핵심 기능 구현

  • 웹 검색 자동화: 사용자 입력 기반 검색 쿼리 생성 → SerpAPI를 통해 웹 검색 수행 → 결과 Telegram 채널 전송
  • 알림 기능: 설정 시간에 맞춰 알림 메시지 전송
  • 스케줄링: APScheduler를 활용한 daily, weekly, monthly 주기 설정

4. 보안 및 배포

  • 보안 팁:
  • .env 파일로 API 키 및 토큰 저장 (GitHub에 업로드 금지)
  • Telegram 사용자 ID 화이트리스트로 봇 접근 제한
  • 배포 환경: GitHub + PythonAnywhere 사용 (코드 공유 가능, 서비스 비용 최소화)

5. 테스트 및 개선 방향

  • 테스트 항목: 다양한 작업 주기 (일/주/월/한회) 및 웹 검색 기능 검증
  • UX 개선: 버튼 이름 변경, 사용자 가이드 추가, 인터페이스 다국어 지원
  • 향후 개선:
  • HTML 파서 자동화
  • PDF 문서 추출
  • 링크 클릭 및 내부 콘텐츠 분석
  • 스케줄링 기반 요약 및 번역 기능 추가

결론

  • 현재 한계: LLM이 검색 로직 제어 불가 → 관련성 없는 링크 발생 가능성
  • 향후 권장사항: HTML 파서 및 PDF 추출 라이브러리(예: BeautifulSoup, PyPDF2) 활용, SerpAPI 대체 검토
  • 실무 적용 팁: .env 파일 보안, GitHub Actions로 자동 배포, APScheduler의 BlockingScheduler 대신 BackgroundScheduler 사용 권장