Skip to content

Commit b1c570e

Browse files
committed
Add extended thinking support
1 parent 63a6eb9 commit b1c570e

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/commonMain/kotlin/Claudine.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,15 @@ package com.xemantic.ai.claudine
2121
import com.xemantic.ai.anthropic.Anthropic
2222
import com.xemantic.ai.anthropic.AnthropicConfigException
2323
import com.xemantic.ai.anthropic.cache.CacheControl
24+
import com.xemantic.ai.anthropic.content.ThinkingBlock
2425
import com.xemantic.ai.anthropic.cost.CostWithUsage
2526
import com.xemantic.ai.anthropic.cost.costReport
2627
import com.xemantic.ai.anthropic.message.Message
2728
import com.xemantic.ai.anthropic.message.StopReason
2829
import com.xemantic.ai.anthropic.message.System
2930
import com.xemantic.ai.anthropic.message.addCacheBreakpoint
3031
import com.xemantic.ai.anthropic.message.plusAssign
32+
import com.xemantic.ai.anthropic.thinking.ThinkingConfigEnabled
3133
import com.xemantic.ai.anthropic.tool.Toolbox
3234
import com.xemantic.ai.claudine.tool.CreateFile
3335
import com.xemantic.ai.claudine.tool.ExecuteShellCommand
@@ -140,6 +142,9 @@ suspend fun claudine(): Int {
140142
ttl = CacheControl.Ephemeral.TTL.ONE_HOUR
141143
)
142144
tools = toolbox.tools
145+
thinking = ThinkingConfigEnabled {
146+
budgetTokens = 2048
147+
}
143148
}
144149
if (response.stopReason == StopReason.MAX_TOKENS) {
145150
println("[Claudine]> Error: max number of output tokens reached")
@@ -151,6 +156,13 @@ suspend fun claudine(): Int {
151156

152157
conversation += response
153158

159+
// Display thinking process if available
160+
response.content.filterIsInstance<ThinkingBlock>().firstOrNull()?.let { thinkingBlock ->
161+
print("[Claudine - Thinking]> ")
162+
println(thinkingBlock.thinking)
163+
println()
164+
}
165+
154166
response.text?.run {
155167
println("[Claudine]> ${response.text}")
156168
}

0 commit comments

Comments
 (0)