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 only cites sources that are relevant to the query.

See also: AWS API Documentation

Request Syntax

response = client.retrieve_and_generate(
    input={
        'text': 'string'
    },
    retrieveAndGenerateConfiguration={
        'externalSourcesConfiguration': {
            'generationConfiguration': {
                'promptTemplate': {
                    'textPromptTemplate': 'string'
                }
            },
            'modelArn': 'string',
            'sources': [
                {
                    'byteContent': {
                        'contentType': 'string',
                        'data': b'bytes',
                        'identifier': 'string'
                    },
                    's3Location': {
                        'uri': 'string'
                    },
                    'sourceType': 'S3'|'BYTE_CONTENT'
                },
            ]
        },
        'knowledgeBaseConfiguration': {
            'generationConfiguration': {
                'promptTemplate': {
                    'textPromptTemplate': 'string'
                }
            },
            'knowledgeBaseId': 'string',
            'modelArn': 'string',
            'retrievalConfiguration': {
                'vectorSearchConfiguration': {
                    'filter': {
                        'andAll': [
                            {'... recursive ...'},
                        ],
                        'equals': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'greaterThan': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'greaterThanOrEquals': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'in': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'lessThan': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'lessThanOrEquals': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'notEquals': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'notIn': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        },
                        'orAll': [
                            {'... recursive ...'},
                        ],
                        'startsWith': {
                            'key': 'string',
                            'value': {...}|[...]|123|123.4|'string'|True|None
                        }
                    },
                    'numberOfResults': 123,
                    'overrideSearchType': 'HYBRID'|'SEMANTIC'
                }
            }
        },
        'type': 'KNOWLEDGE_BASE'|'EXTERNAL_SOURCES'
    },
    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.

    • externalSourcesConfiguration (dict) –

      The configuration used with the external source wrapper object in the retrieveAndGenerate function.

      • generationConfiguration (dict) –

        The prompt used with the external source wrapper object with the retrieveAndGenerate function.

        • promptTemplate (dict) –

          Contain the textPromptTemplate string for the external source wrapper object.

          • 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:

      • modelArn (string) – [REQUIRED]

        The modelArn used with the external source wrapper object in the retrieveAndGenerate function.

      • sources (list) – [REQUIRED]

        The document used with the external source wrapper object in the retrieveAndGenerate function.

        • (dict) –

          The unique external source of the content contained in the wrapper object.

          • byteContent (dict) –

            The identifier, contentType, and data of the external source wrapper object.

            • contentType (string) – [REQUIRED]

              The MIME type of the document contained in the wrapper object.

            • data (bytes) – [REQUIRED]

              The byte value of the file to upload, encoded as a Base-64 string.

            • identifier (string) – [REQUIRED]

              The file name of the document contained in the wrapper object.

          • s3Location (dict) –

            The S3 location of the external source wrapper object.

            • uri (string) – [REQUIRED]

              The file location of the S3 wrapper object.

          • sourceType (string) – [REQUIRED]

            The source type of the external source wrapper object.

    • 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.

          • filter (dict) –

            Specifies the filters to use on the metadata in the knowledge base data sources before returning results. For more information, see Query configurations.

            Note

            This is a Tagged Union structure. Only one of the following top level keys can be set: andAll, equals, greaterThan, greaterThanOrEquals, in, lessThan, lessThanOrEquals, notEquals, notIn, orAll, startsWith.

            • andAll (list) –

              Knowledge base data sources whose metadata attributes fulfill all the filter conditions inside this list are returned.

              • (dict) –

                Specifies the filters to use on the metadata attributes in the knowledge base data sources before returning results. For more information, see Query configurations.

                This data type is used in the following API operations:

                Note

                This is a Tagged Union structure. Only one of the following top level keys can be set: andAll, equals, greaterThan, greaterThanOrEquals, in, lessThan, lessThanOrEquals, notEquals, notIn, orAll, startsWith.

            • equals (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value matches the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • greaterThan (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value is greater than the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • greaterThanOrEquals (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value is greater than or equal to the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • in (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value is in the list specified in the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • lessThan (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value is less than the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • lessThanOrEquals (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value is less than or equal to the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • notEquals (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value doesn’t match the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • notIn (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value isn’t in the list specified in the value in this object are returned.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

            • orAll (list) –

              Knowledge base data sources whose metadata attributes fulfill at least one of the filter conditions inside this list are returned.

              • (dict) –

                Specifies the filters to use on the metadata attributes in the knowledge base data sources before returning results. For more information, see Query configurations.

                This data type is used in the following API operations:

                Note

                This is a Tagged Union structure. Only one of the following top level keys can be set: andAll, equals, greaterThan, greaterThanOrEquals, in, lessThan, lessThanOrEquals, notEquals, notIn, orAll, startsWith.

            • startsWith (dict) –

              Knowledge base data sources that contain a metadata attribute whose name matches the key and whose value starts with the value in this object are returned. This filter is currently only supported for Amazon OpenSearch Serverless vector stores.

              • key (string) – [REQUIRED]

                The name that the metadata attribute must match.

              • value (document) – [REQUIRED]

                The value to whcih to compare the value of the metadata attribute.

          • 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'
                    },
                    'metadata': {
                        'string': {...}|[...]|123|123.4|'string'|True|None
                    }
                },
            ]
        },
    ],
    '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.

            • metadata (dict) –

              Contains metadata attributes and their values for the file in the data source. For more information, see Metadata and filtering.

    • 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