From f171b0fa5e8612a793a4599ad57de7ff598cd68f Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Wed, 3 Jul 2024 16:14:35 +0200 Subject: [PATCH] Handle OpenAiChatModel NPE for partially compatible OpneAI API such as the NVIDIA API --- .../org/springframework/ai/openai/OpenAiChatModel.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java index 844586067..39deeb635 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java @@ -162,8 +162,13 @@ public class OpenAiChatModel extends } List generations = choices.stream().map(choice -> { - return new Generation(choice.message().content(), toMap(chatCompletion.id(), choice)) - .withGenerationMetadata(ChatGenerationMetadata.from(choice.finishReason().name(), null)); + var generation = new Generation(choice.message().content(), toMap(chatCompletion.id(), choice)); + if (choice.finishReason() != null) { + generation = generation + .withGenerationMetadata(ChatGenerationMetadata.from(choice.finishReason().name(), null)); + } + return generation; + }).toList(); return new ChatResponse(generations,