多轮对话
对话接口是无状态的,服务端不会记住之前的请求。每一轮都需要把完整的对话历史放进 messages 一起发送。
下面的例子中,第一轮的 messages 是:
[{"role": "user", "content": "世界上最高的山是哪座?"}]
第二轮把模型的回复和新问题追加进去,messages 变为:用户提问、模型回答、用户追问三条。
from openai import OpenAI
client = OpenAI(api_key="<你的 API Key>", base_url="https://api.tokenjoy.org/v1")
# 第一轮
messages = [{"role": "user", "content": "世界上最高的山是哪座?"}]
response = client.chat.completions.create(model="gpt-5", messages=messages)
messages.append(response.choices[0].message)
print(messages[-1].content)
# 第二轮:把上一轮的回复带上,再追加新问题
messages.append({"role": "user", "content": "第二高的呢?"})
response = client.chat.completions.create(model="gpt-5", messages=messages)
print(response.choices[0].message.content)历史消息每一轮都会作为输入重新计费。对话很长时,可以只保留最近若干轮,或用摘要替代早期内容,见 Token 用量计算。