status_code=400, Requests ending with a model turn are not supported. (request i...

2026年11月01日 03:54 13.83 秒 success

错误信息

status_code=400, Requests ending with a model turn are not supported. (request id: 20261101035403712181356pTvyhNfz)

AI 解决方案

🌐 错误翻译


原文:status_code=400, Requests ending with a model turn are not supported. (request id: 20261101035403712181356pTvyhNfz)
译文:状态码为400,不支持以模型回合(model turn)结束的请求。(请求编号:20261101035403712181356pTvyhNfz)

🎯 原因分析


  • 根本原因:API请求的消息序列不符合规范,请求体的最后一条消息类型为assistant(模型回合),平台要求请求不能以模型回合结尾,需以用户回合(user)结尾。

  • 错误位置:请求体的消息列表(messages),通常是代码中拼接消息时,误将模型回复放在了请求序列的末尾。
  • 💡 解决方案


    调整请求参数,确保消息列表的最后一条消息为user类型,若需多轮对话,可在末尾追加用户输入消息。

    # 错误示例:最后一条是模型回合
    messages = [
        {"role": "user", "content": "你好"},
        {"role": "assistant", "content": "你好,有什么可以帮你?"}  # ❌ 模型回合结尾
    ]
    
    # 正确示例:末尾补充用户回合
    messages = [
        {"role": "user", "content": "你好"},
        {"role": "assistant", "content": "你好,有什么可以帮你?"},
        {"role": "user", "content": "我想了解一下API功能"}  # ✅ 以用户回合结尾
    ]
    

    🛡️ 预防措施


  • 消息结构校验:发送请求前,编写工具函数检查消息列表,确保最后一条消息的role为user,避免格式错误。

  • 使用API调试工具:推荐用Apifox、Postman等工具可视化构造请求体,提前验证消息结构,快速定位格式问题。