如何获取OpenAI Thread中超出100条限制的历史消息?
获取OpenAI Thread完整消息的解决方案
OpenAI的线程消息API默认采用分页机制,即便设置limit=100(当前最大值),也只会返回一批最新的消息。要获取完整对话内容,需通过分页遍历所有消息,具体步骤如下:
- 检查分页标识:每次调用
GET /v1/threads/{thread_id}/messages?limit=100后,查看响应中的has_more字段。如果该值为true,说明还有更早的消息未被返回。 - 使用
before参数翻页:API默认按消息创建时间降序返回结果(最新消息在前)。要获取更早的消息,需将当前返回结果中**最后一条消息的id**作为before参数传入下一次调用,示例调用格式:GET https://api.openai.com/v1/threads/{thread_id}/messages?limit=100&before={last_message_id} - 合并所有结果:重复上述调用流程,直到
has_more变为false。将每次返回的消息列表按顺序拼接(后续调用拿到的是更早的消息,需追加到已有结果的末尾),最终就能得到完整的对话内容。
你在Playground中看到的“可通过API获取截断消息”提示,正是对应这种分页获取机制——Playground本身仅显示部分最新消息,完整内容需要通过分页遍历API来获取。
内容的提问来源于stack exchange,提问作者phill99
相关产品推荐
相关产品推荐

