关于Bedrock Agent知识库检索API中next token的使用及返回问题
Bedrock Agent知识库检索API中nextToken的使用说明
核心作用
nextToken是用于分页获取检索结果的参数:当你的查询匹配到的文档总数超过单次请求设置的numberOfResults上限时,API会返回nextToken,你可以用它发起下一次请求,获取剩余的结果。
你没拿到nextToken的原因
你当前调用没返回nextToken,大概率是这两个情况:
- 你的查询在知识库中匹配到的文档总数≤你设置的
numberOfResults(也就是123),没有剩余结果需要返回,所以不会生成nextToken - 检查下知识库中符合当前查询的实际文档数量,确认是否真的少于等于123
正确使用流程
- 首次调用:不需要传入
nextToken参数(或者传空值),直接发起检索请求response = client.retrieve( knowledgeBaseId='你的知识库ID', retrievalQuery={ 'text': '你的查询文本' }, retrievalConfiguration={ 'vectorSearchConfiguration': { 'numberOfResults': 123 } } ) - 判断是否需要分页:如果响应里包含
nextToken,说明还有未返回的结果 - 后续分页调用:把上一次响应返回的
nextToken传入参数,获取下一页结果next_token = response.get('nextToken') if next_token: next_response = client.retrieve( knowledgeBaseId='你的知识库ID', retrievalQuery={ 'text': '你的查询文本' }, retrievalConfiguration={ 'vectorSearchConfiguration': { 'numberOfResults': 123 } }, nextToken=next_token ) - 重复步骤2-3,直到响应中不再返回
nextToken,说明所有结果都已获取完成
内容的提问来源于stack exchange,提问作者Rajib Deb
相关产品推荐
相关产品推荐

