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
服务端仍然不记上一轮。少贴一句,它就忘一句。所谓「记得」,是你每次把旧账本复印一份寄过去。
总结
- 多轮 = 历史 + 最新一句,一起放进
messages - 你说的标
user,它说的标assistant - 这还不是记忆功能,只是把对话底板接上了
参见
- 上一篇:Chatbot
- Agent 百科里尚未成文的相邻词条:System prompt、Context window、Harness
- 动手:从 0 实现一个 Agent · 阶段一(聊天机器人)