错误信息: Error Details: "messages length only support 1" 堆栈信息: AI_ProviderSpecificE...
🚨 错误信息
错误名称: AI_ProviderSpecificError
错误信息: Error Details:
"messages length only support 1"
堆栈信息: AI_ProviderSpecificError: Error Details:
"messages length only support 1"
at AiSdkToChunkAdapter.convertAndEmitChunk (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:46527:64)
at AiSdkToChunkAdapter.readFullStream (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:46345:10)
at async AiSdkToChunkAdapter.processStream (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:46314:31)
at async ModernAiProvider.modernCompletions (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:258723:22)
at async ModernAiProvider._completionsOrImageGeneration (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:258644:10)
at async ModernAiProvider._completionsForTrace (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:258681:19)
at async ModernAiProvider.completions (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:258626:11)
at async fetchChatCompletion (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:261017:2)
at async transformMessagesAndFetch (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:50115:3)
at async fetchAndProcessAssistantResponseImpl (file:///D:/Program%20Files(x86)/CherryStudio/Cherry%20Studio/resources/app.asar/out/renderer/assets/store-Z-tJeJfQ.js:51734:3)
错误原因: "messages length only support 1"
🤖 AI解决方案
错误分析报告
1. 错误翻译
原文:"messages length only support 1"
译文:"消息长度仅支持1"
2. 原因分析
- 根本原因: API接口要求消息数组长度必须为1,但当前代码传递了多个消息
- 错误位置: 在处理AI服务提供商的API调用时,
ModernAiProvider.modernCompletions方法中 - 上下文: 这是一个AI服务提供商特定的限制,可能是指某些AI模型只支持单消息输入
3. 解决方案
// 修复方案:确保messages数组长度为1
// 方法1:使用第一条消息
const singleMessage = messages.length > 0 ? [messages[0]] : [];
// 方法2:合并多条消息为单条消息
const combinedMessage = [{
role: 'user',
content: messages.map(msg => msg.content).join('\n\n')
}];
// 在ModernAiProvider中使用
await modernCompletions({
messages: singleMessage, // 或 combinedMessage
// 其他参数...
});
4. ️ 预防措施
if (messages.length !== 1) {
throw new Error(`当前AI服务仅支持单条消息,当前消息数: ${messages.length}`);
}
建议: 在代码中添加服务商能力检测逻辑,根据不同的AI服务提供商动态调整消息处理策略。