
获得徽章 0
- Spring AI 1.0.0 使用 chatModel.call(new UserMessage()) 报错 role=USER,不符合 DashScope 要求
环境信息:
Spring AI 版本:1.0.0
引入依赖:
xml
复制
编辑
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
接入模型:阿里云 DashScope
spring:
ai:
openai:
api-key: sk-xxx
base-url:dashscope.aliyuncs.com
chat:
options:
model: qwen-max
@GetMapping("/chat")
public String call(@RequestParam(value = "query", defaultValue = "你好,很高兴认识你,能简单介绍一下自己吗?") String query) {
return chatModel.call(new UserMessage(query)); // 这里报错
}
HTTP 400 - {"error":{"message":"USER is not one of ['system', 'assistant', 'user', 'tool', 'function'] - 'messages.['0].role'"}}
补充信息:
使用 chatModel.stream(new UserMessage(query)) 正常,没有报错;
使用的是 UserMessage 构造方法,但 Spring AI 生成的 role 是 "USER"(大写);
DashScope 要求必须是 "user"(小写);展开评论1 - 求助
org.springframework.ai.chat.model.ChatModel
public String call(@RequestParam(value = "query", defaultValue = "你好,很高兴认识你,能简单介绍一下自己吗?") String query) {
return chatModel.call(new UserMessage(query));
}
spring:
ai:
openai:
api-key: sk-xxx
base-url: dashscope.aliyuncs.com
chat:
options:
model: qwen-max
调用 stream 没问题
chatModel.stream(new UserMessage(prompt));
但是调用
chatModel.call(new UserMessage(query));
就报错说
HTTP 400 - {\"error\":{\"code\":null,\"param\":null,\"message\":\"USER is not one of ['system', 'assistant', 'user', 'tool', 'function'] - 'messages.['0].role'\",\"type\":\"invalid_request_error\"},
spring-ai默认USER不应该是小写的嘛?我引入的依赖是
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
spring-ai 版本是 1.0.0展开评论1