-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Nullpointer when using Azure Open AI and streaming #2691
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I got the same result with the OpenAI module. |
I have found that this issue is not related to Spring AI.
Using |
I am a beginner, please forgive me if there are any mistakes in what I said. Here is my opinion: |
I agree. Created a PR to make the processing of chatReponses more robust |
thanks so much! will review. |
Bug description
While using the AzureOpenAI chat client streaming won't work. It gets into this nullpointer. When I subscribe and print out the .content() Flux; I noticed that the last received token is
null
.2025-04-10 17:38:22.611 [http-nio-8080-exec-7] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet].log - Servlet.service() for servlet [dispatcherServlet] threw exception
java.lang.NullPointerException: Cannot invoke "com.azure.ai.openai.models.ChatResponseMessage.getToolCalls()" because "responseMessage" is null
at org.springframework.ai.azure.openai.AzureOpenAiChatModel.buildGeneration(AzureOpenAiChatModel.java:498)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Assembly trace from producer [reactor.core.publisher.FluxMapFuseable] :
reactor.core.publisher.Flux.map(Flux.java:6588)
org.springframework.ai.azure.openai.AzureOpenAiChatModel.lambda$internalStream$13(AzureOpenAiChatModel.java:381)
Environment
Spring-AI 1.0.0-M6
Chat Model: Azure OpenAI
Steps to reproduce
chatClient.prompt().user("How are you?").stream().content().doOnEach(data -> System.out.println(data.get()));
//output
How
can
I
assist
you
today
?
null
Expected behavior
AzureOpenAiChatModel should be null safe or null values should be filtered out.
Minimal Complete Reproducible example
See above. When I switch to another vendor like Anthrophic the result is as expected (without a null at the end of the stream)
The text was updated successfully, but these errors were encountered: