From 4954cd905696d1c5f52f03b4e85d2ea39395e982 Mon Sep 17 00:00:00 2001 From: Hai Nguyen <3423575+haiphucnguyen@users.noreply.github.com> Date: Sun, 26 Jul 2026 17:07:40 -0700 Subject: [PATCH] Fix low max tokens value for Anthropic when it supports thinking --- gradle/libs.versions.toml | 6 +++--- .../core/providers/anthropic/AnthropicModelFactory.kt | 6 +++++- .../io/askimo/core/providers/gemini/GeminiModelFactory.kt | 7 ++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4c802d25f..b2c58973c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,9 @@ [versions] graalvm-plugin = "0.11.5" jline = "3.30.6" -langchain4j = "1.17.1" -langchain4j-extra = "1.17.1-beta27" -langchain4j-jvector = "1.17.0-beta27" +langchain4j = "1.18.0" +langchain4j-extra = "1.18.0-beta28" +langchain4j-jvector = "1.18.0-beta28" commonmark = "0.29.0" kotlinxSerializationJson = "1.11.0" kotlinxCoroutines = "1.11.0" diff --git a/shared/src/main/kotlin/io/askimo/core/providers/anthropic/AnthropicModelFactory.kt b/shared/src/main/kotlin/io/askimo/core/providers/anthropic/AnthropicModelFactory.kt index 0915d08b1..d2807a575 100644 --- a/shared/src/main/kotlin/io/askimo/core/providers/anthropic/AnthropicModelFactory.kt +++ b/shared/src/main/kotlin/io/askimo/core/providers/anthropic/AnthropicModelFactory.kt @@ -183,7 +183,7 @@ class AnthropicModelFactory : ChatModelFactory { .cacheTools(true) .logger(log) .logRequests(log.isDebugEnabled) - .logResponses(log.isTraceEnabled) + .logResponses(log.isDebugEnabled) .listeners(listOf(TelemetryChatModelListener(telemetry, ANTHROPIC.name.lowercase()))) .apply { if (supportsThinking) { @@ -191,10 +191,14 @@ class AnthropicModelFactory : ChatModelFactory { thinkingType("adaptive") sendThinking(true) returnThinking(true) + .maxTokens(32_000) } else { // OFF — explicitly disable extended thinking thinkingType("disabled") + maxTokens(8192) } + } else { + maxTokens(8192) } } .build() diff --git a/shared/src/main/kotlin/io/askimo/core/providers/gemini/GeminiModelFactory.kt b/shared/src/main/kotlin/io/askimo/core/providers/gemini/GeminiModelFactory.kt index ed4d3734d..b928ec491 100644 --- a/shared/src/main/kotlin/io/askimo/core/providers/gemini/GeminiModelFactory.kt +++ b/shared/src/main/kotlin/io/askimo/core/providers/gemini/GeminiModelFactory.kt @@ -91,10 +91,8 @@ class GeminiModelFactory : ChatModelFactory { ) { ModelCapabilitiesCache.setToolSupport(GEMINI, settings.defaultModel, true) val modelName = settings.defaultModel - val capturedModel = streamingModel - val capturedMode = executionMode CoroutineScope(Dispatchers.IO + SupervisorJob()).launch { - val supportsTools = probeToolSupport(modelName, capturedModel, capturedMode) + val supportsTools = probeToolSupport(modelName, streamingModel, executionMode) ModelCapabilitiesCache.setToolSupport(GEMINI, modelName, supportsTools) } } @@ -106,9 +104,8 @@ class GeminiModelFactory : ChatModelFactory { if (!ModelCapabilitiesCache.hasTestedImageSupport(GEMINI, settings.defaultModel)) { ModelCapabilitiesCache.setImageSupport(GEMINI, settings.defaultModel, false) val modelName = settings.defaultModel - val capturedModel = streamingModel CoroutineScope(Dispatchers.IO + SupervisorJob()).launch { - val supportsImage = probeImageCapability(GEMINI, modelName, capturedModel) + val supportsImage = probeImageCapability(GEMINI, modelName, streamingModel) ModelCapabilitiesCache.setImageSupport(GEMINI, modelName, supportsImage) } }