dramaling-app/docs/04_technical/third-party-integration-spe...

1494 lines
37 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第三方服務整合規格文件 (Third-Party Integration Specification)
## 文件概述
本文件詳細定義了Drama Ling應用程式需要整合的所有第三方服務包括技術規格、整合優先級、成本分析和風險評估。為開發團隊提供完整的第三方服務整合指引。
**目標讀者**: 開發團隊、架構師、產品經理、專案經理
**維護頻率**: 每月檢視更新
**版本**: v1.0
**最後更新**: 2024年9月6日
---
## 📊 服務總覽
### 整合服務統計 *(更新基於規格修正)*
- **總服務數量**: 12個主要服務 (移除Stripe、本土支付、SpeechAce)
- **核心服務**: 7個 (MVP必需)
- **擴展服務**: 5個 (後續優化)
- **預估月度成本**: $100-250 USD (大幅降低)
### 服務分類 *(更新版)*
```mermaid
graph TD
A[第三方服務] --> B[身份認證]
A --> C[支付系統]
A --> D[AI語言服務]
A --> E[基礎設施]
A --> F[通訊服務]
A --> G[監控分析]
B --> B1[Apple ID]
B --> B2[Google OAuth]
C --> C1[iOS App Store內購]
C --> C2[Google Play內購]
D --> D1[OpenAI GPT-4o-mini]
D --> D2[Microsoft語言評估]
D --> D3[Google Speech STT/TTS]
E --> E1[AWS]
E --> E2[CloudFront CDN]
F --> F1[Firebase FCM]
F --> F2[AdMob廣告]
G --> G1[New Relic]
```
---
## 🔐 身份認證服務
### Apple ID 登入
**服務提供商**: Apple
**用途**: iOS用戶快速登入註冊
#### 技術規格
- **API**: Sign in with Apple
- **支援平台**: iOS, macOS, Web
- **整合SDK**: AuthenticationServices (iOS)
- **回調處理**: JWT Token驗證
#### 整合點
- **UI介面**: `UI_Login_Main`
- **API端點**: `/api/v1/auth/apple-login`
- **數據庫**: users.apple_id, users.provider = 'apple'
#### 開發需求
```typescript
// iOS SDK 整合
import AuthenticationServices
// 後端驗證
POST /api/v1/auth/apple-login
{
"identity_token": "eyJ...",
"authorization_code": "c1a2b3...",
"user": {
"email": "user@privaterelay.appleid.com",
"name": { "firstName": "John", "lastName": "Doe" }
}
}
```
#### 技術文檔
- [Apple Developer - Sign in with Apple](https://developer.apple.com/sign-in-with-apple/)
- [REST API Reference](https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api)
#### 成本
- **免費**: Apple不收取費用
- **開發時間**: 1-2週
---
### Google 登入
**服務提供商**: Google
**用途**: Android/Web用戶快速登入
#### 技術規格
- **API**: Google OAuth 2.0
- **支援平台**: Android, iOS, Web
- **整合SDK**: Google Sign-In SDK
- **權限範圍**: email, profile
#### 整合點
- **UI介面**: `UI_Login_Main`
- **API端點**: `/api/v1/auth/google-login`
- **數據庫**: users.google_id, users.provider = 'google'
#### 開發需求
```typescript
// Android SDK 整合
implementation 'com.google.android.gms:play-services-auth:20.7.0'
// 後端驗證
POST /api/v1/auth/google-login
{
"id_token": "eyJ...",
"access_token": "ya29...",
"user_info": {
"id": "123456789",
"email": "user@gmail.com",
"name": "John Doe"
}
}
```
#### 技術文檔
- [Google Identity Platform](https://developers.google.com/identity)
- [OAuth 2.0 Guide](https://developers.google.com/identity/protocols/oauth2)
#### 成本
- **免費**: Google不收取費用
- **開發時間**: 1-2週
---
## 💳 支付與訂閱服務
### iOS App Store 內購 (主要支付平台)
**服務提供商**: Apple App Store
**用途**: iOS用戶訂閱和購買服務
#### 技術規格
- **API**: StoreKit 2 (iOS 15+)
- **支援幣種**: TWD (台幣)
- **支付方式**: Apple ID綁定的付款方式
- **功能模組**:
- 自動續訂訂閱
- 消耗型/非消耗型內購
- 家庭共享支援
#### 整合點
- **訂閱系統**: 月費NT$600 自動續訂訂閱
- **道具購買**: 鑽石、命條、回覆提示等消耗型商品
- **內容包購買**: 場景包、詞彙包等非消耗型商品
#### API整合 (iOS)
```swift
// StoreKit 2 整合
import StoreKit
// 產品ID設定
enum ProductID: String, CaseIterable {
case monthlySubscription = "dramaling.subscription.monthly"
case diamonds100 = "dramaling.diamonds.100"
case lifePoints5 = "dramaling.lifepoints.5"
case replyHints10 = "dramaling.replyhints.10"
}
// 購買處理
@MainActor
class StoreManager: ObservableObject {
private(set) var products: [Product] = []
func purchase(_ product: Product) async throws -> Transaction? {
let result = try await product.purchase()
switch result {
case .success(let verificationResult):
// 驗證交易並同步到後端
if case .verified(let transaction) = verificationResult {
await syncTransactionToBackend(transaction)
await transaction.finish()
return transaction
}
case .userCancelled, .pending:
return nil
@unknown default:
return nil
}
return nil
}
}
// 後端驗證
POST /api/v1/purchases/ios/verify
{
"transaction_id": "2000000123456789",
"product_id": "dramaling.subscription.monthly",
"receipt_data": "base64_encoded_receipt",
"user_id": "user_123"
}
```
#### Server-to-Server 通知
```javascript
// Apple Server Notifications V2
POST /webhooks/app-store
{
"signedPayload": "eyJ..." // JWT from Apple
}
// 通知類型處理
- SUBSCRIBED: 新訂閱
- DID_RENEW: 續訂成功
- EXPIRED: 訂閱過期
- DID_FAIL_TO_RENEW: 續訂失敗
- REFUND: 退款處理
```
#### 數據庫結構
```sql
-- 訂閱記錄 (更新為雙平台內購)
CREATE TABLE user_subscriptions (
subscription_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(user_id) ON DELETE CASCADE,
platform VARCHAR(20) NOT NULL, -- 'ios', 'android'
product_id VARCHAR(100) NOT NULL, -- App Store/Play Store產品ID
original_transaction_id VARCHAR(255), -- iOS原始交易ID
latest_receipt TEXT, -- 最新收據
purchase_token VARCHAR(255), -- Android購買Token
subscription_state VARCHAR(50) DEFAULT 'active',
expires_at TIMESTAMPTZ,
auto_renewal BOOLEAN DEFAULT true,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- 交易記錄
CREATE TABLE purchase_transactions (
transaction_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID REFERENCES users(user_id) ON DELETE CASCADE,
platform VARCHAR(20) NOT NULL,
store_transaction_id VARCHAR(255) NOT NULL,
product_id VARCHAR(100) NOT NULL,
purchase_type VARCHAR(50) NOT NULL, -- 'subscription', 'consumable', 'non_consumable'
amount_twd INTEGER, -- 台幣金額
purchase_date TIMESTAMPTZ NOT NULL,
verification_status VARCHAR(20) DEFAULT 'pending', -- 'verified', 'failed', 'pending'
created_at TIMESTAMPTZ DEFAULT NOW()
);
```
#### 技術文檔
- [StoreKit 2 Documentation](https://developer.apple.com/documentation/storekit)
- [App Store Server API](https://developer.apple.com/documentation/appstoreserverapi)
- [Google Play Billing](https://developer.android.com/google/play/billing)
#### 成本分析
- **Apple手續費**: 30% (首年), 15% (訂閱第二年後)
- **Google手續費**: 30% (首年), 15% (訂閱第二年後)
- **月訂閱(NT$600)**: Apple/Google分潤 NT$180(首年) / NT$90(次年)
- **無額外第三方費用**
#### 開發時間
- **iOS StoreKit 2整合**: 2-3週
- **Android Play Billing整合**: 2-3週
- **後端收據驗證**: 1週
- **測試與上線**: 1週
---
### Google Play 內購 (Android支付平台)
**服務提供商**: Google Play Store
**用途**: Android用戶訂閱和購買服務
#### 技術規格
- **API**: Google Play Billing Library 5.0+
- **支援幣種**: TWD (台幣)
- **支付方式**: Google Play綁定的付款方式
- **功能模組**:
- 自動續訂訂閱
- 單次購買商品
- 獎勵商品
#### API整合 (Android)
```kotlin
// Google Play Billing 整合
import com.android.billingclient.api.*
class BillingManager(private val context: Context) : PurchasesUpdatedListener {
private lateinit var billingClient: BillingClient
init {
billingClient = BillingClient.newBuilder(context)
.setListener(this)
.enablePendingPurchases()
.build()
}
// 產品ID設定
companion object {
const val MONTHLY_SUBSCRIPTION = "dramaling_subscription_monthly"
const val DIAMONDS_100 = "dramaling_diamonds_100"
const val LIFE_POINTS_5 = "dramaling_lifepoints_5"
const val REPLY_HINTS_10 = "dramaling_replyhints_10"
}
// 購買處理
override fun onPurchasesUpdated(result: BillingResult, purchases: MutableList<Purchase>?) {
if (result.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
for (purchase in purchases) {
// 驗證並確認購買
verifyAndAcknowledgePurchase(purchase)
}
}
}
}
// 後端驗證
POST /api/v1/purchases/android/verify
{
"purchase_token": "abcdef123456",
"product_id": "dramaling_subscription_monthly",
"order_id": "GPA.1234-5678-9012-34567",
"user_id": "user_123"
}
```
#### Real-time Developer Notifications
```javascript
// Google Play Server Notifications
POST /webhooks/google-play
{
"message": {
"data": "base64_encoded_notification",
"messageId": "123456789"
}
}
// 通知類型處理
- SUBSCRIPTION_PURCHASED: 新訂閱
- SUBSCRIPTION_RENEWED: 續訂成功
- SUBSCRIPTION_CANCELED: 取消訂閱
- SUBSCRIPTION_EXPIRED: 訂閱過期
- SUBSCRIPTION_REFUNDED: 退款處理
```
---
## 🤖 AI 與語言處理服務
### OpenAI GPT-4o-mini (核心AI服務)
**服務提供商**: OpenAI
**用途**: 對話練習、翻譯輔助
#### 技術規格
- **主要模型**: gpt-4o-mini (128K context)
- **嵌入模型**: text-embedding-ada-002
- **API版本**: v1
- **支援語言**: 繁體中文、英文
- **成本優化**: 相比GPT-4便宜約60-80%
#### 功能應用
##### 1. AI對話角色扮演
```javascript
// 對話練習 API 調用 (更新為GPT-4o-mini)
POST https://api.openai.com/v1/chat/completions
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "你是餐廳服務員,與客人進行英語對話練習。保持角色一致性,提供自然的回應。回應簡潔但有用。"
},
{
"role": "user",
"content": "Good evening! I'd like to make a reservation for two."
}
],
"max_tokens": 100, // 降低token使用
"temperature": 0.7
}
```
##### 2. 回覆卡關輔助
```javascript
// 回覆引導分析 (優化prompt降低成本)
const guidancePrompt = `
情境:${scenarioContext}
對方:${partnerMessage}
程度:${userLevel}
簡潔回覆:
1. 意圖:${intent}
2. 建議:${suggestion}
3. 範例:${examples}
`;
```
##### 3. 中翻英翻譯輔助
```javascript
// 翻譯服務 (GPT-4o-mini)
POST https://api.openai.com/v1/chat/completions
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "你是英語翻譯助手,將中文翻譯成自然英文,考慮對話情境。"
},
{
"role": "user",
"content": "翻譯:${chineseText}\n情境${context}"
}
],
"max_tokens": 80,
"temperature": 0.3
}
```
#### API整合端點
- `/api/v1/dialogues/{dialogue_id}/message` - 對話回應 (GPT-4o-mini)
- `/api/v1/dialogues/{dialogue_id}/assistance` - 回覆輔助 (GPT-4o-mini)
- `/api/v1/translation/assistance` - 翻譯輔助 (GPT-4o-mini)
#### 成本分析 (更新為GPT-4o-mini)
- **GPT-4o-mini**: $0.15 / 1M input tokens, $0.60 / 1M output tokens
- **Embeddings**: $0.02 / 1M tokens
- **預估使用量** (優化後):
- 對話練習: ~30,000 tokens/用戶/月
- 翻譯輔助: ~8,000 tokens/用戶/月
- **月度預估成本**: $15-50 USD (1000活躍用戶) - **節省80%成本**
#### 技術文檔
- [OpenAI API Documentation](https://platform.openai.com/docs)
- [GPT-4 Turbo Guide](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4)
#### 開發時間
- **基礎整合**: 2-3週
- **提示工程優化**: 2-4週
- **測試和調優**: 2週
---
### Microsoft 語言評估服務 *(新增)*
#### Azure Cognitive Services - Language Understanding
**服務提供商**: Microsoft Azure
**用途**: 英語學習語言評估和分析
##### 技術規格
- **API**: Text Analytics API v3.1
- **評估功能**:
- 語法分析 (Grammar Analysis)
- 語意理解 (Semantic Understanding)
- 流暢度評估 (Fluency Assessment)
- 詞彙豐富度 (Vocabulary Richness)
- **支援語言**: 英文、繁體中文
##### 功能應用
```javascript
// 語言分析 API 調用
POST https://[region].api.cognitive.microsoft.com/text/analytics/v3.1/analyze
{
"displayName": "English Learning Assessment",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "Yes, I would like to make a reservation for two people tonight."
}
]
},
"tasks": {
"sentimentAnalysisTasks": [{}],
"keyPhraseExtractionTasks": [{}],
"entityRecognitionTasks": [{}]
}
}
// 語法檢查 (使用Microsoft Editor API)
POST https://api.cognitive.microsoft.com/bing/v7.0/spellcheck
{
"text": "Yes, I would like to make a reservation for two people tonight.",
"mode": "proof"
}
// 語言評估結果
{
"overall_score": 85,
"grammar_score": 90,
"semantic_score": 88,
"fluency_score": 82,
"vocabulary_score": 83,
"detailed_feedback": {
"grammar_issues": [],
"vocabulary_suggestions": ["Consider using 'this evening' instead of 'tonight'"],
"fluency_notes": "Natural and appropriate for the context"
}
}
```
##### API整合端點
- `/api/v1/dialogues/{dialogue_id}/analysis` - 語言分析 (Microsoft)
- `/api/v1/language-assessment/evaluate` - 語言評估 (Microsoft)
##### 成本分析
- **Text Analytics**: $2 / 1000 requests
- **Spell Check**: $3 / 1000 requests
- **預估月成本**: $20-60 USD (1000活躍用戶)
##### 技術文檔
- [Azure Text Analytics](https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/)
- [Bing Spell Check API](https://docs.microsoft.com/en-us/azure/cognitive-services/bing-spell-check/)
---
### 語音處理服務
#### Google Cloud Speech-to-Text (主選)
**服務提供商**: Google Cloud
**用途**: 用戶語音輸入識別
##### 技術規格
- **API版本**: v1
- **支援語言**: en-US, zh-TW
- **音頻格式**: FLAC, WAV, MP3
- **實時識別**: 支援串流識別
##### 整合應用
```javascript
// 語音識別 API
POST https://speech.googleapis.com/v1/speech:recognize
{
"config": {
"encoding": "WEBM_OPUS",
"sampleRateHertz": 48000,
"languageCode": "en-US",
"enableAutomaticPunctuation": true,
"model": "latest_long"
},
"audio": {
"content": "//base64編碼音頻數據"
}
}
```
##### 成本
- **標準識別**: $0.006 / 15秒
- **預估月成本**: $20-50 USD
#### Google Cloud Text-to-Speech
**服務提供商**: Google Cloud
**用途**: AI角色語音生成
##### 技術規格
- **API版本**: v1
- **語音類型**: Standard, WaveNet, Neural2
- **語言**: en-US, zh-TW
- **輸出格式**: MP3, WAV
##### 整合應用
```javascript
// 語音合成 API
POST https://texttospeech.googleapis.com/v1/text:synthesize
{
"input": {"text": "Welcome to Milano Restaurant!"},
"voice": {
"languageCode": "en-US",
"name": "en-US-Neural2-A",
"ssmlGender": "FEMALE"
},
"audioConfig": {
"audioEncoding": "MP3",
"speakingRate": 1.0,
"pitch": 0.0
}
}
```
##### 成本
- **Neural2 語音**: $16 / 1M字符
- **預估月成本**: $20-40 USD
#### 技術文檔
- [Google Cloud Speech](https://cloud.google.com/speech-to-text/docs)
- [Google Cloud TTS](https://cloud.google.com/text-to-speech/docs)
---
## 📱 通訊與推播服務
### Firebase Cloud Messaging
**服務提供商**: Google Firebase
**用途**: 跨平台推播通知服務
#### 技術規格
- **平台支援**: iOS, Android, Web
- **訊息類型**: 通知訊息, 數據訊息
- **SDK**: firebase-admin (後端), firebase-messaging (前端)
#### 應用場景
1. **學習提醒**: 每日學習時間到達
2. **命條回復**: 命條自動回復通知
3. **任務完成**: 每日任務完成提醒
4. **社交互動**: 好友挑戰邀請
5. **訂閱提醒**: 訂閱到期提醒
#### 技術整合
```javascript
// 後端發送通知
const admin = require('firebase-admin');
// 單個用戶推播
await admin.messaging().send({
token: userFCMToken,
notification: {
title: '命條已回復!',
body: '您的命條已自動回復,快來繼續學習吧!'
},
data: {
type: 'life_point_recovery',
current_points: '3'
}
});
// 主題推播
await admin.messaging().sendToTopic('daily_learners', {
notification: {
title: '每日挑戰',
body: '新的每日任務已經準備好了!'
}
});
```
#### 用戶通知設定
```javascript
// API 端點:更新通知偏好
PUT /api/v1/users/notification-settings
{
"push_notifications": true,
"learning_reminders": true,
"life_point_alerts": true,
"social_notifications": false,
"marketing_messages": false,
"quiet_hours": {
"enabled": true,
"start": "22:00",
"end": "08:00"
}
}
```
#### 數據庫結構
```sql
-- 用戶通知設定
CREATE TABLE user_notification_settings (
user_id UUID PRIMARY KEY REFERENCES users(user_id),
fcm_token VARCHAR(255),
platform VARCHAR(20), -- ios, android, web
push_enabled BOOLEAN DEFAULT true,
learning_reminders BOOLEAN DEFAULT true,
life_point_alerts BOOLEAN DEFAULT true,
social_notifications BOOLEAN DEFAULT true,
quiet_hours JSONB DEFAULT '{}',
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
```
#### 成本
- **免費額度**: 無限制推播
- **開發時間**: 1-2週
#### 技術文檔
- [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging)
- [Admin SDK Guide](https://firebase.google.com/docs/admin/setup)
---
### 廣告服務平台
#### AdMob (Google)
**服務提供商**: Google AdMob
**用途**: 行動應用廣告變現
#### 技術規格
- **廣告格式**: 橫幅廣告, 插頁廣告, 獎勵型影片
- **平台**: iOS, Android
- **SDK**: Google Mobile Ads SDK
#### 應用場景
- **命條回復**: 觀看30秒廣告獲得1命條
- **每日獎勵**: 觀看廣告獲得額外經驗值
- **鑽石獎勵**: 觀看廣告獲得少量鑽石
#### 技術整合
```javascript
// 前端 - 獎勵型廣告
import { RewardedAd } from '@react-native-google-ads/admob';
const rewardedAd = RewardedAd.createForAdRequest('ca-app-pub-xxx/xxx');
// 廣告載入完成後顯示
rewardedAd.addAdEventListener(RewardedAdEventType.EARNED_REWARD, reward => {
// 調用後端 API 給予獎勵
apiClient.post('/api/v1/life-points/ad-reward', {
ad_id: adUnitId,
watch_completion: true,
watch_duration: 30
});
});
// 後端 - 廣告獎勵驗證
POST /api/v1/ads/watch
{
"ad_id": "AD_REWARD_001",
"watch_duration": 30,
"completion_status": "completed"
}
Response 200 OK
{
"success": true,
"data": {
"reward_granted": {
"type": "life_points",
"quantity": 1
},
"cooldown_remaining": 3600,
"daily_limit_remaining": 2
}
}
```
#### 廣告管理規則
- **每日限制**: 最多5次廣告獎勵
- **冷卻時間**: 連續觀看間隔1小時
- **獎勵類型**:
- 命條+1 (主要)
- 經驗值+25 (次要)
- 鑽石+5 (稀有)
#### 收益分析
- **eCPM**: $1-3 USD (依地區)
- **填充率**: 80-95%
- **預估收益**: $50-200 USD/月 (依DAU)
#### 技術文檔
- [AdMob Documentation](https://developers.google.com/admob)
- [Rewarded Ads Guide](https://developers.google.com/admob/android/rewarded)
---
## ☁️ 雲端基礎設施服務
### Amazon Web Services (AWS)
#### EC2 (彈性運算雲)
**用途**: 應用服務器託管
##### 實例配置
```yaml
# 生產環境配置
Instance Type: t3.large
- vCPU: 2
- Memory: 8 GB
- Network: Up to 5 Gbps
- Storage: EBS gp3
# 自動擴展配置
Auto Scaling Group:
Min Size: 2
Max Size: 10
Target Capacity: 70% CPU
```
##### 安全組配置
```yaml
Security Groups:
Web-Server-SG:
- HTTP (80) from ALB
- HTTPS (443) from ALB
- SSH (22) from Bastion
Database-SG:
- PostgreSQL (5432) from Web-Server-SG
```
#### Application Load Balancer (ALB)
**用途**: 流量分發與SSL終止
##### 配置
```yaml
Load Balancer:
Type: Application Load Balancer
Scheme: internet-facing
Target Groups:
- API-Servers (Port 8000)
- Health Check: /health
SSL Certificate: AWS Certificate Manager
Listeners:
- Port 443 (HTTPS) -> API-Servers
- Port 80 (HTTP) -> Redirect to 443
```
#### S3 + CloudFront CDN
**用途**: 靜態資源存儲與分發
##### S3 Bucket 結構
```
dramaling-media/
├── avatars/ # 用戶頭像
├── vocabulary/ # 詞彙相關圖片
│ ├── images/ # 詞彙示意圖
│ └── audio/ # 發音音檔
├── scenarios/ # 場景相關媒體
│ ├── backgrounds/ # 背景圖片
│ └── audio/ # 場景音效
└── system/ # 系統資源
├── icons/ # UI圖標
└── animations/ # 動畫資源
```
##### CloudFront 配置
```yaml
Distribution:
Origin: dramaling-media.s3.amazonaws.com
Price Class: PriceClass_100 (US, Canada, Europe)
Caching Behaviors:
- /avatars/*: TTL 24h
- /vocabulary/*: TTL 7d
- /scenarios/*: TTL 7d
Compression: Enabled
HTTP Version: HTTP/2
```
#### RDS (關聯式資料庫)
**用途**: PostgreSQL數據庫託管
##### 配置
```yaml
Database Engine: PostgreSQL 15
Instance Class: db.t3.medium
- vCPU: 2
- Memory: 4 GB
Storage:
- Type: gp3
- Size: 100 GB
- IOPS: 3000
Multi-AZ: Yes (生產環境)
Backup Retention: 7 days
```
#### 成本預估 (月度)
```yaml
服務成本預估:
EC2 (t3.large × 2): $67 × 2 = $134
ALB: $22
S3 Storage (50GB): $1.15
CloudFront (500GB transfer): $42.5
RDS (db.t3.medium): $58
Data Transfer: $20
總計: ~$280 USD/月
```
#### 技術文檔
- [AWS EC2 Documentation](https://docs.aws.amazon.com/ec2/)
- [AWS S3 Developer Guide](https://docs.aws.amazon.com/s3/)
- [CloudFront Documentation](https://docs.aws.amazon.com/cloudfront/)
---
### 備選雲端平台
#### Google Cloud Platform
- **Compute Engine**: VM 實例
- **Cloud Storage**: 檔案存儲
- **Cloud CDN**: 內容分發
- **Cloud SQL**: PostgreSQL託管
#### Microsoft Azure
- **Virtual Machines**: 運算實例
- **Blob Storage**: 物件存儲
- **Azure CDN**: 內容分發
- **Azure Database**: PostgreSQL服務
---
## 📊 監控與分析服務
### New Relic (推薦)
**服務提供商**: New Relic
**用途**: 全棧應用效能監控
#### 功能範圍
- **APM**: API回應時間、錯誤率監控
- **Browser**: 前端效能監控
- **Mobile**: 行動應用監控
- **Synthetics**: 外部服務監控
- **Logs**: 集中化日誌管理
#### 監控指標
```yaml
應用效能指標:
API Response Time:
- 95% < 200ms
- 99% < 500ms
Error Rate:
- < 1% 4xx errors
- < 0.1% 5xx errors
Database Performance:
- Query time < 50ms
- Connection pool utilization < 80%
第三方服務監控:
OpenAI API:
- Response time < 3s
- Success rate > 99%
Stripe API:
- Payment processing < 5s
- Webhook delivery success > 95%
```
#### 告警設定
```yaml
Critical Alerts:
- API error rate > 5% (5min)
- Database connection failed
- Payment processing failed > 10/min
Warning Alerts:
- API response time > 500ms (10min)
- Memory usage > 85%
- Disk usage > 80%
```
#### 成本
- **Lite計劃**: $99/月 (100GB資料保留)
- **Pro計劃**: $349/月 (無限資料保留)
#### 技術文檔
- [New Relic APM](https://docs.newrelic.com/docs/apm/)
- [New Relic Mobile](https://docs.newrelic.com/docs/mobile-monitoring/)
---
### Datadog (備選)
**服務提供商**: Datadog
**用途**: 雲端監控與分析平台
#### 成本對比
- **Pro計劃**: $15/host/月
- **Enterprise**: $23/host/月
---
## 📋 整合優先級與開發時程
### 🔴 第一階段 - MVP核心功能 (8-10週)
#### Week 1-2: 基礎認證系統
- [ ] **Apple ID 整合** (iOS)
- 開發時間: 1週
- 測試時間: 3天
- 依賴: iOS開發環境設置
- [ ] **Google OAuth 整合** (Android/Web)
- 開發時間: 1週
- 測試時間: 3天
- 依賴: Android/Web開發環境
#### Week 3-5: 支付系統核心
- [ ] **Stripe 基礎整合**
- 開發時間: 2週
- 測試時間: 1週
- 功能範圍: 訂閱創建、狀態管理、Webhook處理
- [ ] **訂閱權限控制**
- 開發時間: 3天
- API端點: `/api/v1/subscriptions/access-check`
#### Week 6-8: AI語言服務
- [ ] **OpenAI GPT-4 整合**
- 開發時間: 2週
- 功能範圍:
- 對話角色扮演
- 基礎語言評估
- 回覆輔助系統
- [ ] **提示工程優化**
- 開發時間: 1週
- 測試不同提示模板和參數
#### Week 9-10: 語音服務基礎
- [ ] **Google TTS 整合**
- 開發時間: 3天
- 功能: AI角色語音生成
- [ ] **Google STT 整合**
- 開發時間: 4天
- 功能: 用戶語音輸入識別
#### 第一階段交付成果
✅ 用戶可以登入註冊
✅ 訂閱系統正常運作
✅ 基礎AI對話功能
✅ 語音輸入輸出功能
✅ 核心付費流程完整
---
### 🟡 第二階段 - 功能增強 (4-6週)
#### Week 11-12: 通訊服務
- [ ] **Firebase FCM 推播**
- 開發時間: 1週
- 功能範圍:
- 學習提醒
- 命條回復通知
- 任務完成提醒
- [ ] **通知偏好設定**
- 開發時間: 3天
#### Week 13-14: 廣告系統
- [ ] **AdMob 獎勵廣告**
- 開發時間: 1週
- 功能: 觀看廣告獲得命條
- [ ] **廣告獎勵管理**
- 開發時間: 3天
- 每日限制、冷卻時間控制
#### Week 15-16: 本土支付
- [ ] **LINE Pay 整合**
- 開發時間: 1週
- 針對台灣市場
- [ ] **街口支付整合**
- 開發時間: 1週
#### 第二階段交付成果
✅ 完整推播通知系統
✅ 廣告獎勵機制
✅ 台灣本土支付支援
---
### 🟢 第三階段 - 優化與監控 (2-4週)
#### Week 17-18: 發音評估
- [ ] **SpeechAce API 整合**
- 開發時間: 1週
- 功能: 用戶發音評分
#### Week 19-20: 監控系統
- [ ] **New Relic APM 設置**
- 設置時間: 3天
- 功能: 全面效能監控
- [ ] **告警系統配置**
- 設置時間: 2天
#### 第三階段交付成果
✅ 完整發音評估功能
✅ 全面監控告警系統
✅ 效能優化完成
---
## 💰 成本分析與預算規劃
### 月度成本預估 (USD)
#### 核心服務成本 *(更新版)*
```yaml
AI服務:
OpenAI GPT-4o-mini: $15-50 (節省80%成本)
Microsoft 語言評估: $20-60
Google Speech Services: $40-80
支付服務:
iOS/Android內購: $0 (平台分潤30%/15%)
基礎設施:
AWS (EC2, S3, RDS): $280-400
CloudFront CDN: $40-100
通訊服務:
Firebase FCM: $0 (免費)
AdMob: -$50 to -$200 (收益)
監控服務:
New Relic: $99-349
總成本: $444-839 USD/月 (節省約40%成本)
```
#### 用戶規模成本預測 *(更新版)*
```yaml
1,000 活躍用戶:
月成本: ~$500 USD (節省$300)
單用戶成本: $0.50 USD
5,000 活躍用戶:
月成本: ~$1,200 USD (節省$800)
單用戶成本: $0.24 USD
10,000 活躍用戶:
月成本: ~$2,000 USD (節省$1,500)
單用戶成本: $0.20 USD
```
#### 收益平衡點分析 *(更新 - 台幣計價)*
```yaml
訂閱收益 (月費NT$600):
- 付費轉換率 5%: 需150活躍用戶達平衡 (大幅降低)
- 付費轉換率 10%: 需75活躍用戶達平衡
- 付費轉換率 15%: 需50活躍用戶達平衡
廣告收益 (輔助):
- eCPM $2 USD
- 10,000 DAU × 2廣告/天 = +$400 USD/月
平台分潤考量:
- Apple/Google分潤: 30%(首年) / 15%(次年)
- 實際收入: NT$420(首年) / NT$510(次年)
```
---
### 成本優化建議
#### 短期優化 (0-6個月)
1. **使用AWS免費額度** - 節省$100-200/月
2. **OpenAI API優化** - 精簡提示詞降低token消耗
3. **CDN緩存策略** - 提高緩存命中率,減少頻寬成本
#### 中期優化 (6-18個月)
1. **預留實例** - AWS EC2 Reserved Instances 節省30-60%
2. **多雲策略** - 對比AWS/GCP/Azure價格
3. **自建語音服務** - 評估自建TTS/STT成本效益
#### 長期優化 (18個月+)
1. **Edge computing** - CloudFlare Workers 減少延遲
2. **自建AI服務** - Fine-tuned模型降低API成本
3. **多區域部署** - 就近服務減少數據傳輸成本
---
## ⚠️ 風險評估與備案
### 服務中斷風險
#### 高風險服務
```yaml
OpenAI API:
風險等級:
影響範圍: 核心對話功能無法使用
備案方案:
- Anthropic Claude API (備用)
- Azure OpenAI Service (企業級)
- 本地大模型部署 (長期)
Stripe 支付:
風險等級:
影響範圍: 無法處理國際付款
備案方案:
- PayPal Business (備用)
- Square (北美市場)
- 多支付方案並行
```
#### 中風險服務
```yaml
Google Speech Services:
風險等級:
影響範圍: 語音功能受限
備案方案:
- Azure Cognitive Services
- Amazon Transcribe/Polly
AWS 基礎設施:
風險等級:
影響範圍: 整體服務中斷
備案方案:
- 多可用區部署
- GCP/Azure 災難恢復
```
#### 低風險服務
```yaml
Firebase FCM:
風險等級:
備案方案: OneSignal, Pusher
AdMob:
風險等級:
備案方案: Unity Ads, AppLovin
```
### 服務限制與配額管理
#### API限制監控
```yaml
OpenAI API:
- Rate Limit: 10,000 RPM
- Token Limit: 2,000,000 TPM
- 監控指標: 使用率、錯誤率
Google Speech API:
- 配額: 1,000,000 requests/day
- 監控: 日使用量追蹤
Stripe API:
- Rate Limit: 25 requests/second
- 監控: 交易成功率
```
#### 超額處理機制
1. **降級服務**: 部分功能暫停
2. **排隊系統**: 非關鍵請求延後處理
3. **快取機制**: 減少API調用
4. **用戶通知**: 透明化服務狀態
### 數據隱私與合規
#### GDPR 合規 (歐盟用戶)
- [ ] 數據處理同意書
- [ ] 用戶數據導出功能
- [ ] 數據刪除right to be forgotten
- [ ] 第三方數據處理協議
#### 兒童隱私保護 (COPPA)
- [ ] 13歲以下用戶特殊處理
- [ ] 家長同意機制
- [ ] 限制數據收集範圍
---
## 📋 開發檢查清單
### 開發前準備
#### 帳號申請與設定
- [ ] **Apple Developer Account** ($99/年)
- [ ] **Google Cloud Console** 專案設置
- [ ] **OpenAI API** 帳號與API密鑰
- [ ] **Stripe Account** 商戶帳號
- [ ] **AWS Account** 根帳號與IAM設置
- [ ] **Firebase Project** 建立與配置
#### 開發環境配置
- [ ] API密鑰環境變數設定
- [ ] SSL憑證申請與配置
- [ ] Webhook端點URL設定
- [ ] 測試環境與生產環境分離
### 整合開發檢查
#### 認證服務測試
- [ ] Apple ID 登入流程測試
- [ ] Google OAuth 登入測試
- [ ] JWT Token 驗證機制
- [ ] 用戶資料同步驗證
#### 支付系統測試
- [ ] Stripe 測試卡交易
- [ ] 訂閱創建與續費流程
- [ ] Webhook事件處理
- [ ] 退款與取消流程
- [ ] 本土支付方案測試
#### AI服務測試
- [ ] GPT-4 對話回應品質
- [ ] 語言評估準確性
- [ ] 翻譯服務準確性
- [ ] API回應時間監控
- [ ] Token使用量優化
#### 語音服務測試
- [ ] TTS語音品質測試
- [ ] STT識別準確率測試
- [ ] 多語言支援驗證
- [ ] 音頻格式相容性
### 上線前檢查
#### 安全性檢查
- [ ] API密鑰安全存儲
- [ ] HTTPS強制啟用
- [ ] 用戶資料加密
- [ ] SQL注入防護
- [ ] XSS攻擊防護
#### 效能測試
- [ ] API回應時間 < 2秒
- [ ] 數據庫查詢優化
- [ ] CDN緩存配置
- [ ] 負載測試 (1000並發)
#### 監控配置
- [ ] New Relic APM設置
- [ ] 錯誤告警配置
- [ ] 關鍵指標監控
- [ ] 日誌收集配置
#### 災難恢復
- [ ] 數據備份機制
- [ ] 服務降級方案
- [ ] 故障轉移測試
- [ ] 恢復時間目標 (RTO < 1小時)
---
## 📖 技術文檔與資源
### 官方文檔連結
#### 認證服務
- [Apple Sign In Guide](https://developer.apple.com/sign-in-with-apple/get-started/)
- [Google Identity Platform](https://cloud.google.com/identity-platform)
#### 支付服務
- [Stripe Integration Guide](https://stripe.com/docs/payments/quickstart)
- [LINE Pay API Documentation](https://pay.line.me/tw/developers/apis/onlineApis)
#### AI與語音服務
- [OpenAI API Reference](https://platform.openai.com/docs/api-reference)
- [Google Cloud Speech-to-Text](https://cloud.google.com/speech-to-text/docs/quickstart)
- [Google Cloud Text-to-Speech](https://cloud.google.com/text-to-speech/docs)
#### 基礎設施
- [AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/)
- [Firebase Documentation](https://firebase.google.com/docs)
### 開發工具與SDK
#### 前端SDK
```bash
# React Native
npm install @react-native-async-storage/async-storage
npm install @react-native-firebase/app
npm install @react-native-google-signin/google-signin
npm install react-native-iap # iOS/Android in-app purchases
# iOS Native
# StoreKit 2 (built-in)
pod 'Firebase/Messaging'
# Android
implementation 'com.android.billingclient:billing:5.0.0' # Google Play Billing
implementation 'com.google.firebase:firebase-messaging'
```
#### 後端SDK
```bash
# Node.js
npm install openai
npm install @azure/cognitiveservices-textanalytics # Microsoft language evaluation
npm install firebase-admin
npm install @google-cloud/speech
npm install @google-cloud/text-to-speech
# Python
pip install openai
pip install azure-cognitiveservices-language-textanalytics # Microsoft language evaluation
pip install firebase-admin
pip install google-cloud-speech
pip install google-cloud-texttospeech
```
### 測試工具與環境
#### API測試工具
- **Postman Collection**: 第三方API測試集合
- **iOS Simulator**: in-app purchase測試
- **Android Debug Bridge**: Google Play Console測試
- **ngrok**: 本地開發環境公開URL
#### 監控與除錯
- **New Relic Browser**: 前端效能監控
- **App Store Connect**: iOS購買狀態監控
- **Google Play Console**: Android購買監控
- **Firebase Console**: 推播發送監控
- **OpenAI Playground**: GPT-4o-mini模型測試
- **Azure Portal**: Microsoft API監控
---
## 📋 服務整合優先序與總覽
### 第一階段 - 核心功能 (MVP階段1-2個月)
1. **Firebase Authentication** - 用戶登入與註冊
2. **iOS App Store + Google Play in-app purchases** - 訂閱收費
3. **OpenAI GPT-4o-mini** - 對話生成與輔助
4. **Google Cloud Speech-to-Text + Text-to-Speech** - 語音互動
5. **Firebase Cloud Messaging** - 推播通知
### 第二階段 - 進階功能 (產品優化2-4個月)
6. **Microsoft Azure Cognitive Services** - 語言評估
7. **AWS RDS (PostgreSQL)** - 數據庫託管
8. **AWS S3 + CloudFront** - 媒體檔案存儲
9. **Google/Apple Sign-In** - 第三方登入
10. **New Relic** - 效能監控
### 第三階段 - 系統完善 (擴展階段4-6個月)
11. **AWS Load Balancer + Auto Scaling** - 負載平衡
12. **MongoDB Atlas** - NoSQL數據存儲
13. **Twilio SendGrid** - 電子郵件服務
14. **AWS CloudWatch** - 系統監控
15. **OneSignal** - 進階推播功能
### 整體成本效益分析
- **月度總成本**: $500-800 USD (1000活躍用戶)
- **相較原規格節省**: 約40%成本 (主要來自支付系統和AI服務優化)
- **台灣市場聚焦**: 降低多區域部署成本
- **技術債務風險**: (使用成熟服務)
### 技術架構優勢
- **原生支付整合**: 更好的用戶體驗更低手續費
- **成本優化AI**: GPT-4o-mini提供80%成本節省
- **專業語言評估**: Microsoft API提供更精確的學習評估
- **台灣本地化**: 專注單一市場降低複雜性
---
## 📅 維護與更新計劃
### 定期維護任務
#### 每週檢查
- [ ] API配額使用狀況
- [ ] 錯誤率監控檢視
- [ ] 支付成功率檢查
- [ ] 推播發送狀態
#### 每月檢查
- [ ] 成本分析與優化
- [ ] 安全更新檢查
- [ ] 效能基準測試
- [ ] 第三方服務更新確認
#### 每季檢查
- [ ] 服務合約續約評估
- [ ] 新服務評估與測試
- [ ] 災難恢復演練
- [ ] 合規要求更新
### 服務升級計劃
#### 短期升級 (3-6個月)
1. **OpenAI GPT-4o-mini** **GPT-5** (發布後)
2. **基礎監控** **進階AI監控**
3. **台灣單區域部署** **亞太多區域部署**
#### 中期升級 (6-12個月)
1. **評估自建語音服務** 成本效益
2. **實施邊緣運算** 降低延遲
3. **評估其他亞洲市場** 擴展機會
#### 長期升級 (12個月+)
1. **自訓練AI模型** 降低成本
2. **多語言版本** 國際化擴展
3. **企業級安全** 認證取得
---
**文件版本**: v1.0
**建立日期**: 2024年9月6日
**負責人**: 技術團隊
**審查週期**: 每月檢討更新
**下次審查**: 2024年10月6日
---
## 變更記錄
| 版本 | 日期 | 變更內容 | 負責人 |
|------|------|----------|---------|
| v1.0 | 2024-09-06 | 初始文件建立涵蓋15個主要第三方服務 | Claude |
| v1.1 | 2024-09-06 | 規格修正改用iOS/Android內購GPT-4o-miniMicrosoft語言評估 | Claude |
| | | | |
| | | | |