Phase 5-3 모니터링 강화 작업의 통합을 완료했습니다. 변경사항: - Logger 통합: console.log를 구조화된 로깅으로 전환 (9개 파일) - JSON 기반 로그, 환경별 자동 전환 (개발/프로덕션) - 타입 안전성 보장, 성능 측정 타이머 내장 - Metrics 통합: 실시간 성능 모니터링 시스템 연결 (3개 파일) - Circuit Breaker 상태 추적 (api_call_count, error_count, state) - Retry 재시도 횟수 추적 (retry_count) - OpenAI API 응답 시간 측정 (api_call_duration) - 알림 통합: 장애 자동 알림 시스템 구현 (2개 파일) - Circuit Breaker OPEN 상태 → 관리자 Telegram 알림 - 재시도 실패 → 관리자 Telegram 알림 - Rate Limiting 적용 (1시간에 1회) - 문서 업데이트: - CLAUDE.md: coder 에이전트 설명 강화 (20년+ 시니어 전문가) - README.md, docs/: 아키텍처 문서 추가 영향받은 파일: 16개 (수정 14개, 신규 2개) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
80 lines
2.7 KiB
Markdown
80 lines
2.7 KiB
Markdown
# 🤖 Cloudflare Workers 텔레그램 AI 봇
|
|
|
|
> **Cloudflare Workers + D1 + OpenAI**를 활용한 서버리스 아키텍처 기반의 지능형 텔레그램 봇입니다.
|
|
> 사용자별 프로필을 자동으로 생성하고 기억하며, 예치금 관리 및 도메인 등록 등의 복잡한 작업을 수행할 수 있습니다.
|
|
|
|

|
|

|
|

|
|
|
|
## 📚 문서 안내
|
|
|
|
- **[사용자 가이드 (User Guide)](./docs/USER_GUIDE.md)**: 봇 사용법, 명령어, 예치금/도메인 기능 설명
|
|
- **[시스템 아키텍처 (Architecture)](./docs/ARCHITECTURE.md)**: 기술 구조, 데이터 흐름, 프로필 시스템 상세
|
|
- **[개발자 가이드 (Dev Guide)](./CLAUDE.md)**: 개발 환경 설정, 컨벤션, 트러블슈팅
|
|
|
|
---
|
|
|
|
## ✨ 주요 기능
|
|
|
|
* 🧠 **AI 기반 개인화**: 대화 내용을 분석하여 사용자의 관심사와 맥락을 기억하는 **동적 프로필 시스템**
|
|
* 🛠 **Function Calling**: 날씨, 검색, 계산, 시간 등 다양한 도구를 자연어로 호출
|
|
* 💰 **예치금 시스템**: 은행 SMS 자동 파싱(AI 폴백 지원) 및 양방향 매칭을 통한 자동 충전
|
|
* 🌐 **도메인 관리**: 도메인 검색, 추천(AI), 가격 조회, 등록, DNS 관리 통합
|
|
* ⚡ **서버리스**: Cloudflare Workers 위에서 동작하여 별도의 서버 관리 불필요
|
|
|
|
---
|
|
|
|
## 🚀 빠른 시작 (배포 가이드)
|
|
|
|
### 1. 환경 설정
|
|
```bash
|
|
# 의존성 설치
|
|
npm install
|
|
|
|
# Wrangler 로그인
|
|
npx wrangler login
|
|
```
|
|
|
|
### 2. 데이터베이스 생성
|
|
```bash
|
|
npx wrangler d1 create telegram-conversations
|
|
npx wrangler d1 execute telegram-conversations --file=schema.sql
|
|
```
|
|
*생성된 `database_id`를 `wrangler.toml`에 반영해야 합니다.*
|
|
|
|
### 3. 비밀키 설정 (Secrets)
|
|
```bash
|
|
npx wrangler secret put BOT_TOKEN # Telegram Bot Token
|
|
npx wrangler secret put OPENAI_API_KEY # OpenAI API Key
|
|
npx wrangler secret put WEBHOOK_SECRET # Webhook 검증용 Secret
|
|
```
|
|
|
|
### 4. 배포 및 웹훅 연결
|
|
```bash
|
|
# 배포
|
|
npx wrangler deploy
|
|
|
|
# 웹훅 설정 (배포된 URL 사용)
|
|
curl https://<YOUR_WORKER_URL>/setup-webhook
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠 기술 스택
|
|
|
|
| 분류 | 기술 | 비고 |
|
|
|------|------|------|
|
|
| **Runtime** | Cloudflare Workers | Serverless |
|
|
| **DB** | Cloudflare D1 | SQLite |
|
|
| **Cache** | Cloudflare KV | Rate Limiting |
|
|
| **AI** | OpenAI GPT-4o-mini | Logic & Tools |
|
|
| **Fallback** | Workers AI (Llama 3) | Backup AI |
|
|
|
|
---
|
|
|
|
## 🤝 기여 및 문의
|
|
|
|
버그 신고나 기능 제안은 Issue를 등록해주세요.
|
|
소스 코드는 **[Gitea](https://gitea.anvil.it.com/kaffa/telegram-bot-workers)**에서 관리됩니다.
|