async def iter_retrieve(
self,
knowledge_base_id: "capo_bedrock_agent_runtime.types.knowledge_base_identifier.KnowledgeBaseIdentifier",
retrieval_query: "capo_bedrock_agent_runtime.types.knowledge_base_query.KnowledgeBaseQuery",
*,
config_overrides: Optional[AsyncBedrockAgentRuntimeClientConfig] = None,
retrieval_configuration: Optional[
"capo_bedrock_agent_runtime.types.knowledge_base_retrieval_configuration.KnowledgeBaseRetrievalConfiguration"
] = None,
guardrail_configuration: Optional[
"capo_bedrock_agent_runtime.types.guardrail_configuration.GuardrailConfiguration"
] = None,
next_token: Optional[
"capo_bedrock_agent_runtime.types.next_token.NextToken"
] = None,
user_context: Optional[
"capo_bedrock_agent_runtime.types.user_context.UserContext"
] = None,
) -> "AsyncIterator[capo_bedrock_agent_runtime.types.knowledge_base_retrieval_result.KnowledgeBaseRetrievalResult]":
_token = next_token
while True:
_response = await self.retrieve(
knowledge_base_id,
retrieval_query,
config_overrides=config_overrides,
retrieval_configuration=retrieval_configuration,
guardrail_configuration=guardrail_configuration,
next_token=_token,
user_context=user_context,
)
_page = _resolve_path(_response, ("retrieval_results",))
for _item in _page or []:
yield _item
_token = _resolve_path(_response, ("next_token",))
if not _token:
break