diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java index 22c99aefaa8..712b6b05f2f 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiEmbeddingModel.java @@ -23,6 +23,8 @@ import org.slf4j.LoggerFactory; import org.springframework.ai.chat.metadata.DefaultUsage; +import org.springframework.ai.chat.metadata.EmptyUsage; +import org.springframework.ai.chat.metadata.Usage; import org.springframework.ai.document.Document; import org.springframework.ai.document.MetadataMode; import org.springframework.ai.embedding.AbstractEmbeddingModel; @@ -167,8 +169,9 @@ public EmbeddingResponse call(EmbeddingRequest request) { return new EmbeddingResponse(List.of()); } - var metadata = new EmbeddingResponseMetadata(apiEmbeddingResponse.model(), - getDefaultUsage(apiEmbeddingResponse.usage())); + OpenAiApi.Usage usage = apiEmbeddingResponse.usage(); + Usage embeddingResponseUsage = usage != null ? getDefaultUsage(usage) : new EmptyUsage(); + var metadata = new EmbeddingResponseMetadata(apiEmbeddingResponse.model(), embeddingResponseUsage); List embeddings = apiEmbeddingResponse.data() .stream()