Section 9/201 menit

9. Foundation Models: On-Device LLM

9. Foundation Models: On-Device LLM

Foundation Models (iOS 18.1+) memberikan akses ke Apple Intelligence LLM yang berjalan sepenuhnya on-device.

swift
// Foundation Models: structured output generation on-device

import FoundationModels

// Model untuk output terstruktur
@Generable
struct ProductReview {
    @Guide(description: "Rating 1-5")
    var rating: Int

    @Guide(description: "Ringkasan singkat (max 2 kalimat)")
    var summary: String

    @Guide(description: "Aspek positif")
    var pros: [String]

    @Guide(description: "Aspek negatif, kosong jika tidak ada")
    var cons: [String]

    @Guide(description: "Rekomendasi: 'Beli' atau 'Skip'")
    var recommendation: String
}

final class ReviewAnalyzer {
    func analyzeReview(_ reviewText: String) async throws -> ProductReview {
        let session = LanguageModelSession()

        let result = try await session.respond(
            to: "Analisis review produk berikut dan berikan penilaian terstruktur:\n\n\(reviewText)",
            generating: ProductReview.self
        )

        return result.content
    }

    // Streaming untuk respons yang panjang
    func summarizeDocument(_ document: String) async throws {
        let session = LanguageModelSession()

        let stream = session.streamResponse(
            to: "Buat ringkasan dokumen berikut dalam 3 poin utama:\n\n\(document)"
        )

        for try await partial in stream {
            print(partial, terminator: "")  // Print real-time
        }
        print()  // Newline setelah selesai
    }
}