Section 14/142 menit
14. Ringkasan & Decision Guide
14. Ringkasan & Decision Guide
| Skenario | Rekomendasi |
|---|---|
| Percakapan multi-turn | Satu LanguageModelSession per conversation thread, hidup selama UI screen aktif |
| Task independen (summarize, extract) | Session baru per task — tidak perlu retain |
| Banyak task paralel | Buat session baru per task, jalankan dengan TaskGroup |
| Output harus konsisten dan type-safe | @Generable + @Guide yang deskriptif |
| Output AI tidak perlu divalidasi tipenya | respond(to:) biasa — tapi tambahkan validasi manual |
| Tool bisa gagal | Kembalikan pesan error informatif dari ToolOutput — jangan throw dari call() |
| Session terlalu panjang | Implementasi periodic reset dengan summary, atau gunakan context compaction alami |
| Testing fitur AI | Protocol-based mocking + XCTSkip jika model tidak tersedia |
| Data sensitif (PII) | Sanitasi sebelum kirim ke model, meski on-device |
| Latensi penting | Decomposisi task, streaming untuk UX, paralel session untuk batch |
Pola Arsitektur yang Direkomendasikan
swift
Lapisan UI (SwiftUI / UIKit)
↓ input dari user
@Observable ViewModel ←→ AISessionManager (actor)
↑ result ↓
↑ LanguageModelSession(s)
↑ ↓
↑ Tool implementations
↑ ↓
↑ Foundation Models Framework
↑ (on-device)
└─── update state ──────────┘
Kunci desain: pisahkan LanguageModelSession dari ViewModel menggunakan protocol atau actor boundary. Ini memungkinkan testing, swapping implementasi, dan isolation yang bersih.
Langkah Belajar Selanjutnya
Setelah menguasai Foundation Models secara mendalam, langkah logis berikutnya:
- App Intents (
app-intents-guide.md) — integrasikan AI session dengan Siri dan Shortcuts agar pengguna bisa trigger fitur AI via suara - Core ML (
coreml-guide.md) — untuk task yang butuh custom model (klasifikasi gambar, deteksi objek) yang tidak bisa dilakukan Foundation Models - SwiftData (
swiftdata-guide.md) — simpan hasil analisis AI secara persisten dan efisien - Swift Testing (
swift6-swift-testing.md) — bangun test suite yang robust untuk fitur AI Anda dengan strategi mocking yang sudah dibahas di file ini