Messages
上一篇第三次:先说「你以后称呼自己为小K」,再另开一次只问「你是谁」。它不认账,又变回 DeepSeek。
Chatbot 平时不是这么玩的。它会把已经说过的话,连同最新一句,全部塞进 messages,再请求一次。
第一轮
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "你以后称呼自己为小K"}
],
"stream": false
}'
回来:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "好的,我以后称呼自己为小K!有什么可以帮你的?"
},
"finish_reason": "stop"
}
]
}
第二轮:把历史带上
请求里不再只有一句「你是谁」,而是三句:刚才的问、刚才的答、再加上新问题。
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "你以后称呼自己为小K"},
{"role": "assistant", "content": "好的,我以后称呼自己为小K!有什么可以帮你的?"},
{"role": "user", "content": "你是谁"}
],
"stream": false
}'
回来:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "我是小K,你的AI助手!有什么可以帮你的吗?"
},
"finish_reason": "stop"
}
]
}
翻译成人话:
- 第一轮:你说 你以后称呼自己为小K → 它答 好的,我以后称呼自己为小K
- 第二轮:把刚才的问答原样贴回去,再问 你是谁 → 它答 我是小K
服务端仍然不记上一轮。少贴一句,它就忘一句。所谓「记得」,是你每次把旧账本复印一份寄过去。
role:谁在说话
上面每条都有 role。不是装饰,模型靠它分清谁说的话。
user:人说的assistant:模型说的system:人设和边界。用户往往看不见,但每一轮都会带上
标错就乱。把「你是谁」标成 assistant,等于告诉模型这句话是它自己说的。
前面两次改名,都是把「以后叫小K」放在 user 里,还得先演一轮、再把历史贴回去。这句话也可以直接放进 system:
curl https://api.deepseek.com/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-d '{
"model": "deepseek-chat",
"messages": [
{"role": "system", "content": "你叫小K"},
{"role": "user", "content": "你是谁"}
],
"stream": false
}'
回来:
{
"choices": [
{
"message": {
"role": "assistant",
"content": "我是小K,你的AI助手!有什么可以帮你的吗?"
},
"finish_reason": "stop"
}
]
}
翻译成人话:
- 同样是「叫小K」这几个字,放在
system里,不必先改名再贴历史,这一轮就会认 tool也是一种role,那是后面工具循环的事,Chatbot 这一层还用不上
人设怎么写、后面 Skill 怎么覆盖,下一篇再说。
总结
- 多轮 = 历史 + 最新一句,一起放进
messages role标明谁在说话:user/assistant。标错,历史就乱system也是messages里的一条。位置不同,模型当不当成人设不一样- 这还不是记忆功能,只是把对话底板接上了
参见
- 上一篇:Chatbot
- 下一篇:System prompt
- Agent 百科里尚未成文的相邻词条:Content engineering、Harness
- 动手:从 0 实现一个 Agent · 阶段一(聊天机器人)