From 8e3005275182a99ca72bdae9cd773ce8673c6bb5 Mon Sep 17 00:00:00 2001 From: Ricken Bazolo Date: Sat, 18 Jan 2025 15:55:07 +0100 Subject: [PATCH] Resolve Mistral AI Function Call issue and activate testing. Signed-off-by: Ricken Bazolo --- .../api/tool/MistralAiApiToolFunctionCallIT.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/api/tool/MistralAiApiToolFunctionCallIT.java b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/api/tool/MistralAiApiToolFunctionCallIT.java index 2dcc5ca269e..09406736d2d 100644 --- a/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/api/tool/MistralAiApiToolFunctionCallIT.java +++ b/models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/api/tool/MistralAiApiToolFunctionCallIT.java @@ -21,7 +21,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.slf4j.Logger; @@ -37,14 +36,15 @@ import org.springframework.ai.mistralai.api.MistralAiApi.FunctionTool.Type; import org.springframework.ai.model.ModelOptionsUtils; import org.springframework.http.ResponseEntity; +import org.springframework.util.ObjectUtils; import static org.assertj.core.api.Assertions.assertThat; /** * @author Christian Tzolov + * @author Ricken Bazolo */ @EnabledIfEnvironmentVariable(named = "MISTRAL_AI_API_KEY", matches = ".+") -@Disabled public class MistralAiApiToolFunctionCallIT { static final String MISTRAL_AI_CHAT_MODEL = MistralAiApi.ChatModel.LARGE.getValue(); @@ -121,7 +121,7 @@ public void toolFunctionCall() throws JsonProcessingException { assertThat(responseMessage.toolCalls()).isNotNull(); // Check if the model wanted to call a function - if (responseMessage.toolCalls() != null) { + if (!ObjectUtils.isEmpty(responseMessage.toolCalls())) { // extend conversation with assistant's reply. messages.add(responseMessage); @@ -137,7 +137,7 @@ public void toolFunctionCall() throws JsonProcessingException { // extend conversation with function response. messages.add(new ChatCompletionMessage("" + weatherResponse.temp() + weatherRequest.unit(), - Role.TOOL, functionName, null)); + Role.TOOL, functionName, null, toolCall.id())); } }