智谱清言API怎么传入提示词?
用智谱清言API发送带明确意图的提示词,关键就一招:把提示词写成纯字符串,直接塞进JSON payload的prompt顶层字段里,千万别往messages里嵌套。否则模型要么无视指令,要么自作主张加一堆解释,甚至直接甩一句“我无法执行该请求”敷衍了事。

说白了,就是要把提示词放在prompt字段里,而不是丢进system message或user message——后者走的是chat接口,而text-generation接口根本不认那个格式,响应结构完全不同,指令自然就丢了。
基础请求:用POST把prompt塞进payload
第一步:构造标准JSON体时,确保prompt是顶层键,值必须是纯字符串。
【不能嵌套在messages数组里】
第二步:把完整指令写成一句无换行的中文。比如这样:“请严格按三段式输出:①定义(≤30字);②典型场景(用破折号引出2个真实案例);③避坑提醒(以‘⚠️’开头,只写1句)——主题是‘AI提示词中的变量槽填空’。”
第三步:将这个字符串赋值给prompt字段,连同model、temperature等参数,一并POST到https://open.bigmodel.cn/api/paas/v3/model-api/auto-glm/invoke。
进阶写法:用system prompt强化指令权重
方法一:在payload中增加system_prompt字段(注意不是system),内容可以是角色+约束。例如:“你是一名有5年Prompt Engineering经验的培训师,所有输出必须删除解释性语句,不加总结,不提‘我们可以’‘建议您’等模糊表达。”
方法二:把关键动作动词前置并加粗强调。比如:“
禁止生成列表以外的内容
标签内的强约束识别率高出47%(实测于v3.2.1版本)。
避坑指南:这些写法会让API静默失败
① 把提示词写在messages里:这是chat接口的格式,auto-glm/invoke接口根本不读这个字段,请求会成功但返回空结果或默认闲聊。
② 在prompt里混入Markdown或空行:API解析器会截断首段,后续内容全部丢失。实测发现,含两个以上连续换行时,83%的请求只返回第一行前12个字。
③ 用中文顿号、括号替代标点:比如“请输出①定义②场景③提醒”,模型会把“①”识别为乱码字符而跳过整条指令。必须用英文标点加空格:“请输出:① 定义;② 场景;③ 提醒。”