OpenAI ChatModel: handle null finish reasons responses

This commit is contained in:
Christian Tzolov
2024-07-18 15:04:21 +02:00
parent 0a07f65d6a
commit 588082285a
2 changed files with 5 additions and 4 deletions

View File

@@ -277,7 +277,8 @@ public class OpenAiChatModel extends AbstractToolCallSupport implements ChatMode
.toList();
var assistantMessage = new AssistantMessage(choice.message().content(), metadata, toolCalls);
var generationMetadata = ChatGenerationMetadata.from(choice.finishReason().name(), null);
String finishReason = (choice.finishReason() != null ? choice.finishReason().name() : "");
var generationMetadata = ChatGenerationMetadata.from(finishReason, null);
var generation = new Generation(assistantMessage, generationMetadata);
return generation;

View File

@@ -302,7 +302,7 @@ class OpenAiChatModelIT extends AbstractIT {
logger.info(response.getResult().getOutput().getContent());
assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple");
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket");
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket", "fruit stand");
}
@ParameterizedTest(name = "{0} : {displayName} ")
@@ -318,7 +318,7 @@ class OpenAiChatModelIT extends AbstractIT {
logger.info(response.getResult().getOutput().getContent());
assertThat(response.getResult().getOutput().getContent()).contains("bananas", "apple");
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket");
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("bowl", "basket", "fruit stand");
}
@Test
@@ -341,7 +341,7 @@ class OpenAiChatModelIT extends AbstractIT {
.collect(Collectors.joining());
logger.info("Response: {}", content);
assertThat(content).contains("bananas", "apple");
assertThat(content).containsAnyOf("bowl", "basket");
assertThat(content).containsAnyOf("bowl", "basket", "fruit stand");
}
@Test