diff --git a/src/main/java/de/unistuttgart/iste/meitrex/common/ollama/OllamaClient.java b/src/main/java/de/unistuttgart/iste/meitrex/common/ollama/OllamaClient.java index 2770d33..81e2dfd 100644 --- a/src/main/java/de/unistuttgart/iste/meitrex/common/ollama/OllamaClient.java +++ b/src/main/java/de/unistuttgart/iste/meitrex/common/ollama/OllamaClient.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Nullable; import java.io.*; import java.net.URI; import java.net.http.HttpClient; @@ -109,17 +110,20 @@ public String fillTemplate(final String promptTemplate, final Map ResponseType startQuery( final Class responseType, final String prompt, final Map argMap, - final ResponseType error) { + final ResponseType error, + @Nullable final String modelOverride) { try { final String filledPrompt = fillTemplate(prompt, argMap); @@ -127,8 +131,19 @@ public ResponseType startQuery( final String jsonSchema = jsonSchemaService.getJsonSchema(responseType); final Map schemaObject = jsonMapper.readValue(jsonSchema, typeRef); + // Determine which model to use: override or default config + final String modelToUse = (modelOverride != null && !modelOverride.isBlank()) + ? modelOverride + : this.config.getModel(); + + log.info("Starting LLM query. Model: {}", modelToUse); + OllamaRequest request = new OllamaRequest( - this.config.getModel(), filledPrompt, false, schemaObject); + modelToUse, + filledPrompt, + false, + schemaObject + ); final OllamaResponse response = queryLLM(request); final Optional parsedResponse = parseResponse(response, responseType);