Menggunakan mode berpikir

Mode berpikir mendorong model untuk menampilkan proses penalarannya sebelum membuat respons akhir. Mode penalaran meningkatkan akurasi panggilan fungsi model dan berfungsi dengan baik untuk matematika, pemecahan masalah, dan tugas penalaran kompleks lainnya.

Jika mode berpikir diaktifkan, output model dibagi menjadi dua bagian:

  1. Proses pemikiran: Langkah-langkah penalaran atau perencanaan internal yang dilakukan model.
  2. Respons: Jawaban akhir yang dihasilkan untuk pengguna.

Prasyarat

Mode berpikir berfungsi di perangkat yang menjalankan Gemini Nano V4 dan yang lebih tinggi. Anda dapat menguji mode berpikir melalui program Pratinjau Developer di perangkat yang kompatibel dengan AICore.

Mengaktifkan mode penalaran

Untuk menggunakan mode berpikir, Anda harus memilih ikut serta dengan menyetel flag enableThinking ke true dalam fungsi builder generateContentRequest:

val request = generateContentRequest {
    text("Solve this complex riddle: ...")
    enableThinking = true // Enable thinking mode for Gemini Nano V4
}

Akses pemikiran

ML Kit SDK menyediakan berbagai cara untuk mengakses pemikiran yang mendahului respons model, bergantung pada apakah Anda menggunakan penerapan non-streaming atau streaming.

Mode non-streaming

Dalam panggilan non-streaming standar, proses penalaran ditampilkan sebagai bagian dari respons lengkap. Anda dapat mengakses proses ini menggunakan properti thoughtProcess—yang berisi daftar objek Candidate—pada objek GenerateContentResponse.

try {
    val response = generativeModel.generateContent(request)
    
    // 1. Access the main response
    val answer = response.candidates.firstOrNull()?.text
    println("Final Answer: $answer")
    
    // 2. Access the separated thought process
    println("Thought Process:")
    response.thoughtProcess.forEach { thoughtCandidate ->
        print(thoughtCandidate.text)
    }
} catch (e: GenAiException) {
    // Handle SDK-specific exceptions
}

Mode streaming

Untuk mendukung masukan real-time, antarmuka StreamingCallback telah diperbarui untuk menyertakan metode onNewThought. Hal ini memungkinkan aplikasi Anda menangani potongan pemikiran streaming saat dihasilkan oleh model.

val callback = object : StreamingCallback {
    override fun onNewText(additionalText: String) {
        // Called for regular response chunks
        print(additionalText)
    }

    override fun onNewThought(additionalThought: String) {
        // Called for thought chunks before final text arrives
        // Update a separate reasoning UI or status indicator
        print("[Thinking: $additionalThought]")
    }
}

try {
    generativeModel.generateContent(request, callback)
} catch (e: GenAiException) {
    // Handle exception
}

Praktik terbaik

Berikut beberapa praktik terbaik saat menggunakan mode berpikir:

  • Indikator UI: Karena langkah-langkah penalaran memerlukan waktu untuk dibuat, menampilkan pemikiran atau indikator "berpikir" dalam mode streaming dapat meningkatkan performa yang dirasakan secara signifikan dengan menunjukkan kepada pengguna bahwa model sedang aktif.
  • Implementasi selektif: Jika tidak ingin mengekspos alasan mentah kepada pengguna akhir, Anda dapat mengabaikan kolom thoughtProcess atau menghilangkan implementasi onNewThought. Metode onNewThought memiliki implementasi kosong default untuk membantu memastikan kompatibilitas mundur.

Untuk mengetahui tips selengkapnya, lihat Mode berpikir di Gemma. Perhatikan bahwa percakapan multi-turn saat ini tidak didukung di AICore.