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:
- Proses pemikiran: Langkah-langkah penalaran atau perencanaan internal yang dilakukan model.
- 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
thoughtProcessatau menghilangkan implementasionNewThought. MetodeonNewThoughtmemiliki 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.