Skip to content

s21lee/telegram_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Gemini Bot

Gemini AI 기반 텔레그램 챗봇입니다.

기능

  • 💬 AI 대화: Gemini 1.5 Flash 모델을 활용한 자연스러운 대화
  • 🔄 대화 맥락 유지: 사용자별 대화 히스토리를 관리하여 이어서 대화 가능
  • 🌐 다국어 지원: 한국어/영어 자동 감지 및 응답
  • 📝 긴 응답 처리: 4096자 초과 응답을 자동으로 분할 전송

프로젝트 구조

telegram/
├── bot/
│   ├── __init__.py
│   ├── main.py              # 봇 진입점
│   ├── handlers.py          # 텔레그램 메시지 핸들러
│   ├── gemini_client.py     # Gemini API 클라이언트
│   ├── conversation.py      # 대화 컨텍스트 관리
│   └── config.py            # 설정 관리
├── tests/
│   ├── __init__.py
│   ├── test_handlers.py     # 핸들러 테스트
│   ├── test_gemini_client.py # Gemini 클라이언트 테스트
│   └── test_conversation.py  # 대화 관리 테스트
├── docs/
│   └── README.md
├── .env                     # 환경 변수 (Git 제외)
├── .env.example             # 환경 변수 템플릿
├── .gitignore
├── pytest.ini
└── requirements.txt

설치 및 실행

1. 사전 준비

2. 환경 설정

# 의존성 설치
pip install -r requirements.txt

# 환경 변수 설정
cp .env.example .env
# .env 파일을 열어 실제 키 값을 입력

3. 실행

python -m bot.main

4. 테스트

pytest -v

봇 명령어

명령어 설명
/start 시작 메시지 표시
/help 도움말 표시
/reset 대화 기록 초기화

환경 변수

변수 설명 기본값
TELEGRAM_BOT_TOKEN 텔레그램 봇 API 토큰 (필수)
GEMINI_API_KEY Google Gemini API 키 (필수)
GEMINI_MODEL 사용할 Gemini 모델 gemini-1.5-flash
MAX_HISTORY_LENGTH 보관할 최대 대화 수 20
SYSTEM_INSTRUCTION 봇 시스템 프롬프트 기본 한/영 응답

기술 스택

  • Python 3.11+
  • python-telegram-bot v21+ (비동기)
  • google-generativeai (Gemini API SDK)
  • python-dotenv (환경 변수 관리)
  • pytest + pytest-asyncio (테스트)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages