ストーリー
ミッション概要
| ミッション | テーマ | 目安時間 |
|---|---|---|
| Mission 1 | リトライ・フォールバック戦略の設計 | 20分 |
| Mission 2 | ストリーミングアーキテクチャの設計 | 20分 |
| Mission 3 | コスト最適化計画の策定 | 20分 |
| Mission 4 | モニタリングダッシュボードの仕様設計 | 20分 |
前提シナリオ
サービス: 社内ナレッジ検索チャットボット
ユーザー: 社員5,000名
月間リクエスト: 50万件
要件:
- レスポンスタイム: p95 < 3秒(初回トークンまで)
- 可用性: 99.9%
- 月額予算: 50万円
Mission 1: リトライ・フォールバック戦略(20分)
要件
LLM API呼び出しのリトライ戦略とフォールバック設計を作成してください。
解答例
リトライ戦略
| エラー種別 | リトライ | 間隔 | 最大回数 |
|---|---|---|---|
| 429 Rate Limit | あり | Exponential backoff(1s, 2s, 4s) | 3回 |
| 500 Server Error | あり | Fixed 2秒 | 2回 |
| 408 Timeout | あり | Fixed 1秒 | 1回 |
| 400 Bad Request | なし | - | - |
フォールバック戦略
graph TD
P["Primary:
Claude Sonnet → Retry 3回"]
F1["Fallback 1:
Claude Haiku
コスト低、品質やや低"]
F2["Fallback 2:
キャッシュ済み類似回答を返却"]
F3["Fallback 3:
現在応答に時間がかかっています"]
P -->|"失敗"| F1
F1 -->|"失敗"| F2
F2 -->|"該当なし"| F3
style P fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af
style F1 fill:#d1fae5,stroke:#059669,color:#065f46
style F2 fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#92400e
style F3 fill:#fee2e2,stroke:#dc2626,color:#991b1b
Mission 2: ストリーミングアーキテクチャ(20分)
要件
SSEベースのストリーミングアーキテクチャを設計してください。
解答例
graph LR
LLM["LLM API"] -->|"Stream"| BFF["BFF
Node.js"]
BFF -->|"SSE"| Client["Client
React"]
BFF --> RAG["RAG Pipeline"]
RAG --> R1["Query Embedding"]
RAG --> R2["Vector Search"]
RAG --> R3["Context Assembly"]
Client --> UI["UI: チャンク単位で
リアルタイム表示"]
style LLM fill:#f3e8ff,stroke:#7c3aed,color:#5b21b6
style BFF fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af
style Client fill:#d1fae5,stroke:#059669,color:#065f46
style RAG fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#92400e
style R1,R2,R3 fill:#f3f4f6,stroke:#9ca3af,color:#374151
style UI fill:#f3f4f6,stroke:#9ca3af,color:#374151
| コンポーネント | 設計 |
|---|---|
| フロントエンド | EventSource APIでSSE接続、チャンク受信ごとにUI更新 |
| BFF | LLM APIのストリームを受信し、SSEとしてクライアントに転送 |
| タイムアウト | 初回トークン: 10秒、全体: 60秒 |
| エラー処理 | ストリーム中断時は最後の完全な文で切断 |
Mission 3: コスト最適化計画(20分)
要件
月額50万円の予算内で50万リクエストを処理するコスト計画を作成してください。
解答例
モデルルーティング戦略
| カテゴリ | 割合 | モデル | 単価/リクエスト | 月額 |
|---|---|---|---|---|
| 簡単(FAQ) | 50% | Haiku | ¥2 | ¥500,000→¥250,000×¥2=¥500K |
| 普通(要約) | 35% | Sonnet | ¥10 | ¥175,000×¥10=¥1,750K |
| 複雑(分析) | 15% | Opus | ¥50 | ¥75,000×¥50=¥3,750K |
合計: ¥6,000K(600万円)→ 予算オーバー
最適化適用後
| 施策 | 削減効果 |
|---|---|
| セマンティックキャッシュ(ヒット率40%) | -40% |
| プロンプト圧縮(30%トークン削減) | -20% |
| 簡単カテゴリの割合増加(LLM不要の直接回答) | -15% |
最適化後: 600万 × 0.6 × 0.8 × 0.85 = 約245万円 → まだオーバー
追加最適化: 簡単カテゴリの70%をルールベース(LLM不要)で直接回答 → 月額約48万円
Mission 4: モニタリングダッシュボード仕様(20分)
要件
LLMシステムのモニタリングダッシュボードの仕様を設計してください。
解答例
| パネル | メトリクス | アラート閾値 |
|---|---|---|
| レイテンシ | p50/p95/p99 TTFT、Total | p95 > 5秒 |
| エラー率 | LLM APIエラー率、フォールバック率 | エラー率 > 5% |
| スループット | リクエスト数/分、同時接続数 | 同時接続 > 100 |
| コスト | 日次/週次コスト、モデル別コスト | 日次 > 2万円 |
| 品質 | ユーザー評価(👍/👎率)、回答長 | 👎率 > 20% |
| キャッシュ | ヒット率、キャッシュサイズ | ヒット率 < 20% |
| RAG | 検索ヒット数、関連度スコア分布 | 平均スコア < 0.7 |
まとめ
| ポイント | 内容 |
|---|---|
| フォールバック | 段階的なフォールバックで可用性を確保 |
| ストリーミング | SSEで体感速度を改善 |
| コスト | モデルルーティング+キャッシュで大幅削減 |
| モニタリング | レイテンシ・コスト・品質を統合監視 |
チェックリスト
- リトライ・フォールバック戦略を設計できた
- ストリーミングアーキテクチャを設計できた
- コスト最適化計画を策定できた
- モニタリングダッシュボードを設計できた
次のステップへ
次はチェックポイントクイズで理解度を確認します。
推定読了時間: 80分