【BladeX-AI-Cloud-Pro 2.0】问答结束后,系统提示超时错误信息

Blade 未结 2 25

一、该问题的重现步骤是什么?


1. 大模型配置:qwen3.8-2.4t-a95b 和qwen3.7-plus 都会有一样的错误。

image.png

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

image.png

image.png

二、你期待的结果是什么?实际看到的又是什么?

我认为在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)

2条回答
  • 试一下原生的deepseek看看会有同样问题不,估计是新版qwen的返回格式有变化,如果有问题的话,我们适配下新的解析逻辑,明天会推送更新

    0 讨论(0)
  • 55分钟前

    使用deepseek模型依然出现错误。

    image.png

    image.png

    作者追问:53分钟前

    试一下我们线上的看看有没有同样问题 https://aigc.bladex.cn/ 

    然后看下你用的jdk版本是多少,接着清空控制台日志,再次对话,然后把对话到报错的所有日志复制放到一个txt发到这里,我们去排查

    回答: 44分钟前

    JDK版本为21  image.png

    ,线上 https://aigc.bladex.cn/ 使用正常。 日志文件如下:

    AI对话日志.txt


    作者追问:43分钟前

    好的,我们排查下

    0 讨论(0)
提交回复