This is an automated email from the ASF dual-hosted git repository. xtsong pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/flink-agents.git
commit 3eede02a788664f20fdc2540be20ab4eee5e2ad7 Author: WenjinXie <[email protected]> AuthorDate: Tue Jan 27 19:29:39 2026 +0800 [ollama] Align the behavior of think related parameters for ollama between python and java. --- .../agents/integration/test/ChatModelIntegrationAgent.java | 1 + .../apache/flink/agents/examples/ReActAgentExample.java | 1 + .../chatmodels/ollama/OllamaChatModelConnection.java | 14 ++++++++++++-- .../chatmodels/ollama/OllamaChatModelSetup.java | 5 ++++- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java index 476afba3..99977169 100644 --- a/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java +++ b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java @@ -104,6 +104,7 @@ public class ChatModelIntegrationAgent extends Agent { return ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "chatModelConnection") .addInitialArgument("model", OLLAMA_MODEL) + .addInitialArgument("think", false) .addInitialArgument( "tools", List.of("calculateBMI", "convertTemperature", "createRandomNumber")) diff --git a/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java b/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java index 4a68f6a7..624f3b83 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/ReActAgentExample.java @@ -147,6 +147,7 @@ public class ReActAgentExample { ResourceDescriptor.Builder.newBuilder(ResourceName.ChatModel.OLLAMA_SETUP) .addInitialArgument("connection", "ollamaChatModelConnection") .addInitialArgument("model", "qwen3:8b") + .addInitialArgument("think", false) .addInitialArgument( "tools", Collections.singletonList("notifyShippingManager")) .build(), diff --git a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java index b591e0ea..773069f4 100644 --- a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java +++ b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelConnection.java @@ -180,8 +180,18 @@ public class OllamaChatModelConnection extends BaseChatModelConnection { public ChatMessage chat( List<ChatMessage> messages, List<Tool> tools, Map<String, Object> arguments) { try { + // convert think to think mode. + final Object think = arguments.getOrDefault("think", true); + ThinkMode thinkMode = ThinkMode.ENABLED; + for (ThinkMode mode : ThinkMode.values()) { + if (mode.getValue().equals(think)) { + thinkMode = mode; + break; + } + } + final boolean extractReasoning = - (boolean) arguments.getOrDefault("extract_reasoning", false); + (boolean) arguments.getOrDefault("extract_reasoning", true); final List<Tools.Tool> ollamaTools = this.convertToOllamaTools(tools); final List<OllamaChatMessage> ollamaChatMessages = @@ -194,7 +204,7 @@ public class OllamaChatModelConnection extends BaseChatModelConnection { OllamaChatRequest.builder() .withMessages(ollamaChatMessages) .withModel(modelName) - .withThinking(extractReasoning ? ThinkMode.ENABLED : ThinkMode.DISABLED) + .withThinking(thinkMode) .withUseTools(false) .build(); diff --git a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java index e12aed41..63805c81 100644 --- a/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java +++ b/integrations/chat-models/ollama/src/main/java/org/apache/flink/agents/integrations/chatmodels/ollama/OllamaChatModelSetup.java @@ -56,13 +56,15 @@ import java.util.function.BiFunction; public class OllamaChatModelSetup extends BaseChatModelSetup { private final String model; + private final Object think; private final boolean extractReasoning; public OllamaChatModelSetup( ResourceDescriptor descriptor, BiFunction<String, ResourceType, Resource> getResource) { super(descriptor, getResource); this.model = descriptor.getArgument("model"); - this.extractReasoning = descriptor.getArgument("extract_reasoning", false); + this.think = descriptor.getArgument("think", true); + this.extractReasoning = descriptor.getArgument("extract_reasoning", true); } /** @@ -90,6 +92,7 @@ public class OllamaChatModelSetup extends BaseChatModelSetup { public Map<String, Object> getParameters() { Map<String, Object> params = new HashMap<>(); params.put("model", model); + params.put("think", think); params.put("extract_reasoning", extractReasoning); return params; }
