
之前版本都是可以的,而且模型配置没问题。表单生成了,里面字段空的
请
登录后发表观点
核心问题分析
根本原因:AI 服务在处理一个请求时,试图构建发送给 DeepSeek 大模型的消息列表,但其中某条消息的文本内容(text)为 null,导致断言失败,抛出异常。
从异常堆栈 DeepSeekChatModel.createRequest -> Assert.state(text must not be null) 可以明确看到这一点。
错误链路追溯:
- 用户或上游系统(很可能是
master服务)向ai服务发起了一个 AI 聊天请求。 ai服务根据业务逻辑(你提供的提示词中提到了“数据库建模专家”)构建了一个Prompt对象,其中包含SystemMessage(系统提示词)和用户输入等。- 在调用 DeepSeek API 前,
DeepSeekChatModel需要将所有消息序列化,在这个过程中,它发现SystemMessage或某个UserMessage的textContent为null,于是触发了IllegalStateException。
为什么会出现“text must not be null”?
可能的原因有以下几种:
- 用户输入为空:前端或调用方在请求 AI 时,传递的消息体(
messages)中,某一条的content或text字段是null而不是空字符串。 - 系统提示词加载失败:
ai服务可能从数据库或配置中心加载系统级提示词,如果加载逻辑有误或配置缺失,导致构造的SystemMessage内容为null。 - 数据传递丢失:在微服务间(如从
master调用ai)的 RPC 或消息传递过程中,某些字段因序列化/反序列化问题变成了null。
分析日志估计的原因是
- 用户输入为空:前端或调用方在请求 AI 时,传递的消息体(
messages)中,某一条的content或text字段是null而不是空字符串。