#2108·Fabric

当模式输入变成系统消息时,Groq chat.completions 会拒绝 Fabric 有效负载(最后角色必须为 'user')

作者: das-analyst创建于 2026年5月1日更新于 2026年6月10日

标题: Groq 聊天。 当模式输入成为系统消息时, 完成会拒绝 Fabric 有效载荷( 最后的角色必须是“ 用户 ”)

内容提要

Fabric可以产生只包含系统消息的聊天有效载荷(与INPUT结合的平面指令). Groq的谈话。 professions API 拒绝此选项时写道 : “ 最后一个消息角色必须是“ 用户 ” 。 这打破了许多使用Groq供应商的内在模式(例如总结)。

环境

复制

  1. 确保以~/.config/fabric/.env提供格罗克配置。
  2. 运行 :

打印“摘要的测试输入”。 QQ 织物 - p 概括 - vendor Groq - 模型 groq/ compound - debug=4

  1. 观察出错并调试显示单一系统消息和Groq响应的行:

POST"https://api.groq.com/OpenAI/v1/chat/completes":400 Bad Request {"message":"最后的信息角色必须是"用户"}

预期 当发送到聊天时。 补全时, 消息阵列中的最后消息应该是角色='user' 。 家具应:

  • 将图案作为单独的信息(系统+用户)发送,因此最后的信息角色是“用户”,或
  • 检测Groq在发送前需要用户信息并附加用户信息(如输入).

建议的固定(最小)

  • 在Groq/OpenAI兼容的供应商适配器中,在构建信息阵列时:
  • 如果信件目前以角色结束 !='user'(或只有系统消息),在 POST 之前将用户信件与输入内容相附加(或将输入移入最后的用户信件).
  • 添加包含将INPUT占位符放入 system.md 的单元/整合测试,以确保 Groq 聊天请求总是以用户角色结束 。

任择说明 – 许多模式通过设计将INPUT标记放入了system.md;适配器应该通过确保最后一个消息角色是聊天端点的"用户"来坚固地适应.

我可以根据请求提供调试日志和摘要图案文件.

内容来源: danielmiessler/Fabric