Düşünme modunu kullanma

Düşünme modu, modelin nihai bir yanıt oluşturmadan önce akıl yürütme sürecini göstermesini sağlar. Düşünme modu, modelin işlev çağrısı doğruluğunu artırır ve matematik, problem çözme ve diğer karmaşık akıl yürütme görevlerinde iyi performans gösterir.

Düşünme modu etkinleştirildiğinde model çıktısı iki bölüme ayrılır:

  1. Düşünce süreci: Modelin gerçekleştirdiği dahili akıl yürütme veya planlama adımları.
  2. Yanıt: Kullanıcı için oluşturulan son yanıt.

Ön koşullar

Düşünme modu, Gemini Nano v4 ve sonraki sürümlerin yüklü olduğu cihazlarda çalışır. Düşünme modunu, AICore'un etkin olduğu herhangi bir cihazda Geliştirici Önizleme Programı aracılığıyla test edebilirsiniz.

Düşünme modunu etkinleştirme

Düşünme modunu kullanmak için generateContentRequest oluşturucu işlevinizde enableThinking işaretini true olarak ayarlayarak etkinleştirmeniz gerekir:

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

Düşüncelere erişme

ML Kit SDK'sı, akışlı veya akışsız bir uygulama kullanmanıza bağlı olarak bir modelin yanıtından önceki düşüncelere erişmenin farklı yollarını sunar.

Akışla aktarma dışı mod

Standart, akış olmayan çağrılarda akıl yürütme süreci, tam yanıtın bir parçası olarak döndürülür. Bu işleme, GenerateContentResponse nesnesindeki thoughtProcess özelliğini (Candidate nesnelerinin listesini içerir) kullanarak erişebilirsiniz.

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
}

Akışla aktarma modu

Anında geri bildirim özelliğini desteklemek için StreamingCallback arayüzü, onNewThought yöntemini içerecek şekilde güncellendi. Bu sayede uygulamanız, model tarafından oluşturulan düşünce parçalarını akış halinde işleyebilir.

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
}

En iyi uygulamalar

Düşünme modunu kullanırken uygulayabileceğiniz bazı en iyi yöntemler şunlardır:

  • Kullanıcı arayüzü göstergeleri: Akıl yürütme adımlarının oluşturulması zaman alabileceğinden, akış modunda düşünceleri veya "düşünme" göstergesini görüntülemek, kullanıcıya modelin etkin olduğunu göstererek algılanan performansı önemli ölçüde artırabilir.
  • Seçmeli uygulama: Ham akıl yürütmeyi son kullanıcılara göstermek istemiyorsanız thoughtProcess alanını yoksayabilir veya onNewThought uygulamasını atlayabilirsiniz. onNewThought yöntemi, geriye dönük uyumluluğu sağlamaya yardımcı olmak için varsayılan olarak boş bir uygulamaya sahiptir.

Daha fazla ipucu için Gemma'da düşünme modu başlıklı makaleyi inceleyin. AICore'da çok turlu sohbetlerin şu anda desteklenmediğini unutmayın.