feat: DuckDuckGo → Brave Search 교체 + 입금 알림 개선
## 검색 API 교체 - DuckDuckGo Instant Answer API → Brave Search API - 실제 웹 검색 결과 반환 (제목, 설명, URL) - Vault에 API 키 저장 (secret/brave-search) - Free AI 플랜: 2,000 queries/월 ## 시스템 프롬프트 개선 - 검색 도구 사용 조건 명시 (최신 정보, 실시간 가격 등) - 도구 description에 트리거 키워드 추가 ## 입금 알림 개선 - 자동 매칭 성공 시 사용자에게 Telegram 알림 전송 - tryAutoMatch() 반환값에 userId, amount 추가 ## 문서 업데이트 - Function Calling Tools 테이블에 트리거 키워드 컬럼 추가 - AI 시스템 프롬프트 섹션 추가 - Deposit Agent 프롬프트 수정 방법 문서화 - 자동 알림 시스템 섹션 추가 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
37
README.md
37
README.md
@@ -130,7 +130,7 @@ OpenAI Function Calling을 통해 AI가 자동으로 필요한 도구를 호출
|
||||
| 기능 | 예시 질문 | API |
|
||||
|------|-----------|-----|
|
||||
| **날씨** | "서울 날씨", "도쿄 날씨 알려줘" | wttr.in |
|
||||
| **검색** | "파이썬이 뭐야", "클라우드플레어란" | DuckDuckGo |
|
||||
| **검색** | "파이썬이 뭐야", "클라우드플레어란" | Brave Search |
|
||||
| **시간** | "지금 몇 시야", "뉴욕 시간" | 내장 |
|
||||
| **계산** | "123 * 456", "100의 20%" | 내장 |
|
||||
| **문서** | "React hooks 사용법", "OpenAI API 예제" | Context7 |
|
||||
@@ -181,15 +181,15 @@ OpenAI: 날씨 데이터를 자연어로 응답 생성
|
||||
│ bank_notifications│ ← 기존 은행 알림 확인
|
||||
└──────────────────┘
|
||||
│
|
||||
├── 매칭 발견 → 즉시 confirmed + 잔액 증가
|
||||
├── 매칭 발견 → 즉시 confirmed + 잔액 증가 (대화 중 응답)
|
||||
│
|
||||
└── 매칭 없음 → pending 상태로 대기
|
||||
└── 매칭 없음 → pending 상태로 대기 (SMS 도착 시 자동 매칭 + 알림)
|
||||
```
|
||||
|
||||
```
|
||||
[시나리오 2: 은행 SMS가 먼저 도착]
|
||||
|
||||
은행 SMS → Email Worker 수신
|
||||
은행 SMS → Gmail → Apps Script
|
||||
│
|
||||
▼
|
||||
┌──────────────────┐
|
||||
@@ -202,9 +202,10 @@ OpenAI: 날씨 데이터를 자연어로 응답 생성
|
||||
│ deposit_transactions│ ← 대기중 입금 확인
|
||||
└──────────────────┘
|
||||
│
|
||||
├── 매칭 발견 → 즉시 confirmed + 잔액 증가
|
||||
├── 매칭 발견 → confirmed + 잔액 증가 + 사용자에게 Telegram 알림 🎉
|
||||
│ + 관리자에게 Telegram 알림
|
||||
│
|
||||
└── 매칭 없음 → bank_notifications에 저장 (나중에 매칭)
|
||||
└── 매칭 없음 → bank_notifications에 저장 + 관리자에게 알림 (대기)
|
||||
```
|
||||
|
||||
### 지원 기능
|
||||
@@ -220,6 +221,25 @@ OpenAI: 날씨 데이터를 자연어로 응답 생성
|
||||
| `수동 확인` | 입금 수동 확정 처리 | 관리자 전용 |
|
||||
| `입금 거절` | 입금 요청 거절 | 관리자 전용 |
|
||||
|
||||
### 자동 알림 시스템
|
||||
|
||||
자동 매칭 성공 시 **사용자와 관리자 모두에게 Telegram 알림**이 전송됩니다.
|
||||
|
||||
| 이벤트 | 사용자 알림 | 관리자 알림 |
|
||||
|--------|-------------|-------------|
|
||||
| 자동 매칭 성공 | ✅ 입금액 + 현재 잔액 | ✅ 입금 정보 + 매칭 완료 |
|
||||
| 매칭 대기 (SMS만) | - | ⏳ 입금 정보 + 대기 상태 |
|
||||
|
||||
**사용자가 받는 메시지 예시:**
|
||||
```
|
||||
✅ 입금 확인 완료!
|
||||
|
||||
입금액: 7원
|
||||
현재 잔액: 7원
|
||||
|
||||
감사합니다! 🎉
|
||||
```
|
||||
|
||||
### Gmail → Apps Script → Worker 연동
|
||||
|
||||
SMS를 Gmail로 전달받아 Apps Script에서 Worker API를 호출합니다.
|
||||
@@ -229,6 +249,8 @@ SMS를 Gmail로 전달받아 Apps Script에서 Worker API를 호출합니다.
|
||||
은행 SMS → Gmail(deposit.anvil@gmail.com) → Apps Script (1분마다)
|
||||
↓
|
||||
POST /api/bank-notification → DB 저장 → 자동 매칭
|
||||
↓
|
||||
매칭 성공 → 사용자/관리자 Telegram 알림
|
||||
```
|
||||
|
||||
**Apps Script 코드:**
|
||||
@@ -389,6 +411,9 @@ wrangler secret put OPENAI_API_KEY
|
||||
|
||||
# 입금 알림 API Secret (Apps Script 연동용)
|
||||
wrangler secret put BANK_API_SECRET
|
||||
|
||||
# Brave Search API Key
|
||||
wrangler secret put BRAVE_API_KEY
|
||||
```
|
||||
|
||||
### Vault 연동 (선택)
|
||||
|
||||
Reference in New Issue
Block a user