一、该问题的重现步骤是什么?
1. 大模型配置:qwen3.8-2.4t-a95b 和qwen3.7-plus 都会有一样的错误。

2. 问题现象:在AI助手中提任何问题,例如:“你好”,AI能很快返回信息。但是右下角的按钮仍然是“处理中”的状态,过了很久系统提示“连续60000毫秒未收到数据”的错误提示。


二、你期待的结果是什么?实际看到的又是什么?
我认为在AI返回问题后,右下角的按钮状态应该立刻为“处理完成”的状态,并且不应该有超时的错误提示。
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
软件环境:Bladex-AI-Cloud-Pro + Bladex 5.0 操作系统:windows 11
四、请提供详细的错误堆栈信息,这很重要。
2026-10-21 16:31:09.929 INFO 294575 --- [io-6200-exec-10] o.s.core.mp.plugins.SqlLogInterceptor :
============== Sql Start ==============
Execute SQL : insert into ai_conversation (id, resource_type, channel, title, user_id , anonymous, message_count, last_time, tenant_id, create_user , create_dept, create_time, update_user, update_time, status , is_deleted) values (2112823997005594626, 'assistant', 'web', '你好', 2016093354253729794 , false, 0, TIMESTAMP '2026-10-21 16:31:09.913', '000000', 2016093354253729794 , 2031199933474873345, TIMESTAMP '2026-10-21 16:31:09.913', 2016093354253729794, TIMESTAMP '2026-10-21 16:31:09.913', 1 , 0)
Execute Time: 9.494ms
============== Sql End ==============
2026-10-21 16:31:09.930 INFO 294575 --- [io-6200-exec-10] o.s.a.e.i.process.BladeChatMemoryLoader : 对话记忆: 自动创建会话, conversationId=2112823997005594626, model=qwen3.8-2.4t-a95b
2026-10-21 16:31:09.945 INFO 294575 --- [io-6200-exec-10] o.s.core.mp.plugins.SqlLogInterceptor :
============== Sql Start ==============
Execute SQL : insert into ai_run (id, resource_type, channel, conversation_id, user_id , ip, state, total_tokens, inputs, tenant_id , create_user, create_dept, create_time, update_user, update_time , is_deleted) values (2112823997068509186, 'assistant', 'web', 2112823997005594626, 2016093354253729794 , '0:0:0:0:0:0:0:1', 'running', 0, '你好', '000000' , 2016093354253729794, 2031199933474873345, TIMESTAMP '2026-10-21 16:31:09.930', 2016093354253729794, TIMESTAMP '2026-10-21 16:31:09.930' , 0)
Execute Time: 8.385ms
============== Sql End ==============
2026-10-21 16:31:11.829 WARN 294575 --- [ async-task-24] o.s.a.e.i.l.p.ProviderResponseProcessor : DeepSeek 流式数据解析失败,原始数据: {"id":"chatcmpl-96f28de2-f820-92c7-8901-488c19650834","object":"chat.completion.chunk","created":1792571471,"model":"qwen3.8-2.4t-a95b","choices":[],"usage":{"prompt_tokens":62,"total_tokens":99,"completion_tokens":37,"prompt_tokens_details":{"cached_tokens":0,"text_tokens":62},"completion_tokens_details":{"reasoning_tokens":23,"text_tokens":37}}}
2026-10-21 16:31:11.829 WARN 294575 --- [ async-task-24] o.s.a.e.i.l.p.ProviderResponseProcessor : DeepSeek 流式调用失败
org.springblade.ai.engine.inference.exception.InferenceException: DeepSeek 响应解析失败: Cannot invoke "tools.jackson.databind.JsonNode.get(String)" because "choiceNode" is null
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below:
Assembly trace from producer [reactor.core.publisher.FluxHandleFuseable] :
reactor.core.publisher.Flux.mapNotNull(Flux.java:6654)
org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:83)
Error has been observed at the following site(s):
*__Flux.mapNotNull ⇢ at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:83)
|_ Flux.onErrorMap ⇢ at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:84)
Original Stack Trace:
Caused by: java.lang.NullPointerException: Cannot invoke "tools.jackson.databind.JsonNode.get(String)" because "choiceNode" is null
at org.springblade.ai.engine.inference.language.provider.deepseek.DeepSeekTemplate.buildStreamResponse(DeepSeekTemplate.java:124)
at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.parseMessage(ProviderResponseProcessor.java:146)
at reactor.core.publisher.Flux.lambda$mapNotNull$0(Flux.java:6655)
at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:182)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:338)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:251)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:80)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:258)
at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:868)
at reactor.core.publisher.FluxConcatMap$WeakScalarSubscription.request(FluxConcatMap.java:482)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.request(MonoFlatMapMany.java:113)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.request(FluxFilterFuseable.java:411)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:262)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.SerializedSubscriber.request(SerializedSubscriber.java:152)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.request(FluxDoFinally.java:140)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.StrictSubscriber.request(StrictSubscriber.java:140)
at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:358)
at org.springblade.core.context.BladeRunnableWrapper.run(BladeRunnableWrapper.java:63)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-10-21 16:31:11.833 ERROR 294575 --- [io-6200-exec-15] o.s.c.l.e.BladeRestExceptionTranslator : 业务异常
org.springblade.ai.engine.inference.exception.InferenceException: DeepSeek 响应解析失败: Cannot invoke "tools.jackson.databind.JsonNode.get(String)" because "choiceNode" is null
Suppressed: The stacktrace has been enhanced by Reactor, refer to additional information below:
Assembly trace from producer [reactor.core.publisher.FluxHandleFuseable] :
reactor.core.publisher.Flux.mapNotNull(Flux.java:6654)
org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:83)
Error has been observed at the following site(s):
*_______Flux.mapNotNull ⇢ at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:83)
|_ Flux.onErrorMap ⇢ at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:84)
|_ Flux.doOnError ⇢ at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:86)
|_ Flux.doOnCancel ⇢ at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.process(ProviderResponseProcessor.java:87)
|_ Flux.transform ⇢ at org.springblade.ai.engine.inference.language.provider.AbstractLanguageModelTemplate.doChatStreamRequest(AbstractLanguageModelTemplate.java:227)
|_ Flux.retryWhen ⇢ at org.springblade.ai.engine.inference.language.provider.AbstractLanguageModelTemplate.chatStream(AbstractLanguageModelTemplate.java:164)
|_ Flux.doOnNext ⇢ at org.springblade.ai.engine.inference.service.impl.ChatServiceImpl.chatStream(ChatServiceImpl.java:120)
|_ Flux.doOnNext ⇢ at org.springblade.ai.engine.inference.service.impl.ChatServiceImpl.chatStream(ChatServiceImpl.java:121)
|_ Flux.doOnNext ⇢ at org.springblade.ai.engine.inference.service.impl.ChatServiceImpl.chatStream(ChatServiceImpl.java:122)
|_ Flux.doOnNext ⇢ at org.springblade.ai.engine.inference.service.impl.ChatServiceImpl.chatStream(ChatServiceImpl.java:123)
|_ Flux.doOnError ⇢ at org.springblade.ai.engine.inference.service.impl.ChatServiceImpl.chatStream(ChatServiceImpl.java:124)
|_ Flux.doFinally ⇢ at org.springblade.ai.engine.inference.service.impl.ChatServiceImpl.chatStream(ChatServiceImpl.java:126)
*________Flux.concatMap ⇢ at reactor.util.retry.RetryBackoffSpec.lambda$generateCompanion$0(RetryBackoffSpec.java:592)
|_ Flux.onErrorStop ⇢ at reactor.util.retry.RetryBackoffSpec.lambda$generateCompanion$0(RetryBackoffSpec.java:657)
*__Flux.deferContextual ⇢ at reactor.util.retry.RetryBackoffSpec.generateCompanion(RetryBackoffSpec.java:590)
Original Stack Trace:
Caused by: java.lang.NullPointerException: Cannot invoke "tools.jackson.databind.JsonNode.get(String)" because "choiceNode" is null
at org.springblade.ai.engine.inference.language.provider.deepseek.DeepSeekTemplate.buildStreamResponse(DeepSeekTemplate.java:124)
at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.parseMessage(ProviderResponseProcessor.java:146)
at reactor.core.publisher.Flux.lambda$mapNotNull$0(Flux.java:6655)
at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:182)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:338)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:251)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:80)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:258)
at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:868)
at reactor.core.publisher.FluxConcatMap$WeakScalarSubscription.request(FluxConcatMap.java:482)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.request(MonoFlatMapMany.java:113)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.request(FluxFilterFuseable.java:411)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:262)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.SerializedSubscriber.request(SerializedSubscriber.java:152)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.request(FluxDoFinally.java:140)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.StrictSubscriber.request(StrictSubscriber.java:140)
at org.springframework.web.servlet.mvc.method.annotation.ReactiveTypeHandler$AbstractEmitterSubscriber.run(ReactiveTypeHandler.java:358)
at org.springblade.core.context.BladeRunnableWrapper.run(BladeRunnableWrapper.java:63)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-10-21 16:31:11.834 WARN 294575 --- [io-6200-exec-15] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler org.springblade.core.log.error.BladeRestExceptionTranslator#handleError(ServiceException)
org.springframework.http.converter.HttpMessageNotWritableException: No converter for [class org.springblade.core.tool.api.R] with preset Content-Type 'text/event-stream;charset=UTF-8'
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:363)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:213)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:77)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:135)
at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:460)
at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:72)
at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:176)
at org.springframework.web.servlet.handler.HandlerExceptionResolverComposite.resolveException(HandlerExceptionResolverComposite.java:78)
at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1227)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1035)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:866)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1000)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:903)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:649)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:874)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:710)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:132)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:111)
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:110)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:111)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:111)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:512)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:443)
at org.apache.catalina.core.AsyncContextImpl$AsyncRunnable.run(AsyncContextImpl.java:710)
at org.apache.catalina.core.AsyncContextImpl.doInternalDispatch(AsyncContextImpl.java:443)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:163)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:77)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:535)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:86)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:71)
at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:241)
at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:269)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1307)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:2036)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:74)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:949)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:483)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:74)
at java.base/java.lang.Thread.run(Thread.java:1583)
2026-10-21 16:31:11.835 ERROR 294575 --- [io-6200-exec-15] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] threw exception
java.lang.NullPointerException: Cannot invoke "tools.jackson.databind.JsonNode.get(String)" because "choiceNode" is null
at org.springblade.ai.engine.inference.language.provider.deepseek.DeepSeekTemplate.buildStreamResponse(DeepSeekTemplate.java:124)
at org.springblade.ai.engine.inference.language.provider.ProviderResponseProcessor.parseMessage(ProviderResponseProcessor.java:146)
at reactor.core.publisher.Flux.lambda$mapNotNull$0(Flux.java:6655)
at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.onNext(FluxHandleFuseable.java:182)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:338)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:251)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:80)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.innerNext(FluxConcatMapNoPrefetch.java:258)
at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:868)
at reactor.core.publisher.FluxConcatMap$WeakScalarSubscription.request(FluxConcatMap.java:482)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.request(FluxConcatMapNoPrefetch.java:338)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.request(MonoFlatMapMany.java:113)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.request(FluxFilterFuseable.java:411)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxHandleFuseable$HandleFuseableSubscriber.request(FluxHandleFuseable.java:262)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.request(Operators.java:2325)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.request(FluxPeekFuseable.java:144)
at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:653)
试一下原生的deepseek看看会有同样问题不,估计是新版qwen的返回格式有变化,如果有问题的话,我们适配下新的解析逻辑,明天会推送更新
使用deepseek模型依然出现错误。


试一下我们线上的看看有没有同样问题 https://aigc.bladex.cn/
然后看下你用的jdk版本是多少,接着清空控制台日志,再次对话,然后把对话到报错的所有日志复制放到一个txt发到这里,我们去排查
好的,我们排查下
扫一扫访问 Blade技术社区 移动端