Parametrizes the max chat tool call retries for a single chat request

This commit is contained in:
Markus Klenke 2024-12-09 23:29:43 +01:00
parent 7ffbc5d3f2
commit d8c3edd55f

View File

@ -59,6 +59,10 @@ public class OllamaAPI {
*/ */
@Setter @Setter
private boolean verbose = true; private boolean verbose = true;
@Setter
private int maxChatToolCallRetries = 3;
private BasicAuth basicAuth; private BasicAuth basicAuth;
private final ToolRegistry toolRegistry = new ToolRegistry(); private final ToolRegistry toolRegistry = new ToolRegistry();
@ -782,7 +786,7 @@ public class OllamaAPI {
// check if toolCallIsWanted // check if toolCallIsWanted
List<OllamaChatToolCalls> toolCalls = result.getResponseModel().getMessage().getToolCalls(); List<OllamaChatToolCalls> toolCalls = result.getResponseModel().getMessage().getToolCalls();
int toolCallTries = 0; int toolCallTries = 0;
while(toolCalls != null && !toolCalls.isEmpty() && toolCallTries <3){ while(toolCalls != null && !toolCalls.isEmpty() && toolCallTries < maxChatToolCallRetries){
for (OllamaChatToolCalls toolCall : toolCalls){ for (OllamaChatToolCalls toolCall : toolCalls){
String toolName = toolCall.getFunction().getName(); String toolName = toolCall.getFunction().getName();
ToolFunction toolFunction = toolRegistry.getToolFunction(toolName); ToolFunction toolFunction = toolRegistry.getToolFunction(toolName);