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
  • 这还不是记忆功能,只是把对话底板接上了

参见