AgentsforBedrockRuntime / Client / retrieve_and_generate

retrieve_and_generate#

AgentsforBedrockRuntime.Client.retrieve_and_generate(**kwargs)#

Queries a knowledge base and generates responses based on the retrieved results. The response cites up to five sources but only selects the ones that are relevant to the query.

See also: AWS API Documentation

Request Syntax

response = client.retrieve_and_generate(
    input={
        'text': 'string'
    },
    retrieveAndGenerateConfiguration={
        'knowledgeBaseConfiguration': {
            'generationConfiguration': {
                'promptTemplate': {
                    'textPromptTemplate': 'string'
                }
            },
            'knowledgeBaseId': 'string',
            'modelArn': 'string',
            'retrievalConfiguration': {
                'vectorSearchConfiguration': {
                    'numberOfResults': 123,
                    'overrideSearchType': 'HYBRID'|'SEMANTIC'
                }
            }
        },
        'type': 'KNOWLEDGE_BASE'
    },
    sessionConfiguration={
        'kmsKeyArn': 'string'
    },
    sessionId='string'
)
Parameters:
  • input (dict) –

    [REQUIRED]

    Contains the query to be made to the knowledge base.

    • text (string) – [REQUIRED]

      The query made to the knowledge base.

  • retrieveAndGenerateConfiguration (dict) –

    Contains configurations for the knowledge base query and retrieval process. For more information, see Query configurations.

    • knowledgeBaseConfiguration (dict) –

      Contains details about the resource being queried.

      • generationConfiguration (dict) –

        Contains configurations for response generation based on the knowwledge base query results.

        • promptTemplate (dict) –

          Contains the template for the prompt that’s sent to the model for response generation.

          • textPromptTemplate (string) –

            The template for the prompt that’s sent to the model for response generation. You can include prompt placeholders, which become replaced before the prompt is sent to the model to provide instructions and context to the model. In addition, you can include XML tags to delineate meaningful sections of the prompt template.

            For more information, see the following resources:

      • knowledgeBaseId (string) – [REQUIRED]

        The unique identifier of the knowledge base that is queried and the foundation model used for generation.

      • modelArn (string) – [REQUIRED]

        The ARN of the foundation model used to generate a response.

      • retrievalConfiguration (dict) –

        Contains configurations for how to retrieve and return the knowledge base query.

        • vectorSearchConfiguration (dict) – [REQUIRED]

          Contains details about how the results from the vector search should be returned. For more information, see Query configurations.

          • numberOfResults (integer) –

            The number of source chunks to retrieve.

          • overrideSearchType (string) –

            By default, Amazon Bedrock decides a search strategy for you. If you’re using an Amazon OpenSearch Serverless vector store that contains a filterable text field, you can specify whether to query the knowledge base with a HYBRID search using both vector embeddings and raw text, or SEMANTIC search using only vector embeddings. For other vector store configurations, only SEMANTIC search is available. For more information, see Test a knowledge base.

    • type (string) – [REQUIRED]

      The type of resource that is queried by the request.

  • sessionConfiguration (dict) –

    Contains details about the session with the knowledge base.

    • kmsKeyArn (string) – [REQUIRED]

      The ARN of the KMS key encrypting the session.

  • sessionId (string) – The unique identifier of the session. Reuse the same value to continue the same session with the knowledge base.

Return type:

dict

Returns:

Response Syntax

{
    'citations': [
        {
            'generatedResponsePart': {
                'textResponsePart': {
                    'span': {
                        'end': 123,
                        'start': 123
                    },
                    'text': 'string'
                }
            },
            'retrievedReferences': [
                {
                    'content': {
                        'text': 'string'
                    },
                    'location': {
                        's3Location': {
                            'uri': 'string'
                        },
                        'type': 'S3'
                    }
                },
            ]
        },
    ],
    'output': {
        'text': 'string'
    },
    'sessionId': 'string'
}

Response Structure

  • (dict) –

    • citations (list) –

      A list of segments of the generated response that are based on sources in the knowledge base, alongside information about the sources.

      • (dict) –

        An object containing a segment of the generated response that is based on a source in the knowledge base, alongside information about the source.

        This data type is used in the following API operations:

        • generatedResponsePart (dict) –

          Contains the generated response and metadata

          • textResponsePart (dict) –

            Contains metadata about a textual part of the generated response that is accompanied by a citation.

            • span (dict) –

              Contains information about where the text with a citation begins and ends in the generated output.

              • end (integer) –

                Where the text with a citation ends in the generated output.

              • start (integer) –

                Where the text with a citation starts in the generated output.

            • text (string) –

              The part of the generated text that contains a citation.

        • retrievedReferences (list) –

          Contains metadata about the sources cited for the generated response.

          • (dict) –

            Contains metadata about a source cited for the generated response.

            This data type is used in the following API operations:

            • content (dict) –

              Contains the cited text from the data source.

              • text (string) –

                The cited text from the data source.

            • location (dict) –

              Contains information about the location of the data source.

              • s3Location (dict) –

                Contains the S3 location of the data source.

                • uri (string) –

                  The S3 URI of the data source.

              • type (string) –

                The type of the location of the data source.

    • output (dict) –

      Contains the response generated from querying the knowledge base.

      • text (string) –

        The response generated from querying the knowledge base.

    • sessionId (string) –

      The unique identifier of the session. Reuse the same value to continue the same session with the knowledge base.

Exceptions

  • AgentsforBedrockRuntime.Client.exceptions.ConflictException

  • AgentsforBedrockRuntime.Client.exceptions.ResourceNotFoundException

  • AgentsforBedrockRuntime.Client.exceptions.ValidationException

  • AgentsforBedrockRuntime.Client.exceptions.InternalServerException

  • AgentsforBedrockRuntime.Client.exceptions.DependencyFailedException

  • AgentsforBedrockRuntime.Client.exceptions.BadGatewayException

  • AgentsforBedrockRuntime.Client.exceptions.ThrottlingException

  • AgentsforBedrockRuntime.Client.exceptions.AccessDeniedException

  • AgentsforBedrockRuntime.Client.exceptions.ServiceQuotaExceededException