create_knowledge_base

create_knowledge_base(**kwargs)

Creates a knowledge base.

Note

When using this API, you cannot reuse Amazon AppIntegrations DataIntegrations with external knowledge bases such as Salesforce and ServiceNow. If you do, you'll get an InvalidRequestException error.

<p>For example, you're programmatically managing your external knowledge base, and you want to add or remove one of the fields that is being ingested from Salesforce. Do the following:</p> <ol> <li> <p>Call <a href="https://docs.aws.amazon.com/wisdom/latest/APIReference/API_DeleteKnowledgeBase.html">DeleteKnowledgeBase</a>.</p> </li> <li> <p>Call <a href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_DeleteDataIntegration.html">DeleteDataIntegration</a>.</p> </li> <li> <p>Call <a href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a> to recreate the DataIntegration or a create different one.</p> </li> <li> <p>Call CreateKnowledgeBase.</p> </li> </ol> </note>

See also: AWS API Documentation

Request Syntax

response = client.create_knowledge_base(
    clientToken='string',
    description='string',
    knowledgeBaseType='EXTERNAL'|'CUSTOM',
    name='string',
    renderingConfiguration={
        'templateUri': 'string'
    },
    serverSideEncryptionConfiguration={
        'kmsKeyId': 'string'
    },
    sourceConfiguration={
        'appIntegrations': {
            'appIntegrationArn': 'string',
            'objectFields': [
                'string',
            ]
        }
    },
    tags={
        'string': 'string'
    }
)
Parameters
  • clientToken (string) --

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    This field is autopopulated if not provided.

  • description (string) -- The description.
  • knowledgeBaseType (string) --

    [REQUIRED]

    The type of knowledge base. Only CUSTOM knowledge bases allow you to upload your own content. EXTERNAL knowledge bases support integrations with third-party systems whose content is synchronized automatically.

  • name (string) --

    [REQUIRED]

    The name of the knowledge base.

  • renderingConfiguration (dict) --

    Information about how to render the content.

    • templateUri (string) --

      A URI template containing exactly one variable in ${variableName} format. This can only be set for EXTERNAL knowledge bases. For Salesforce and ServiceNow, the variable must be one of the following:

      • Salesforce: Id , ArticleNumber , VersionNumber , Title , PublishStatus , or IsDeleted
      • ServiceNow: number , short_description , sys_mod_count , workflow_state , or active
      <p>The variable is replaced with the actual value for a piece of content when calling <a href="https://docs.aws.amazon.com/wisdom/latest/APIReference/API_GetContent.html">GetContent</a>. </p>
  • serverSideEncryptionConfiguration (dict) --

    The KMS key used for encryption.

  • sourceConfiguration (dict) --

    The source of the knowledge base content. Only set this argument for EXTERNAL knowledge bases.

    Note

    This is a Tagged Union structure. Only one of the following top level keys can be set: appIntegrations.

    • appIntegrations (dict) --

      Configuration information for Amazon AppIntegrations to automatically ingest content.

      • appIntegrationArn (string) -- [REQUIRED]

        The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to use for ingesting content.

      • objectFields (list) -- [REQUIRED]

        The fields from the source that are made available to your agents in Wisdom.

        • For Salesforce, you must include at least Id , ArticleNumber , VersionNumber , Title , PublishStatus , and IsDeleted .
        • For ServiceNow, you must include at least number , short_description , sys_mod_count , workflow_state , and active .

        Make sure to include additional fields. These fields are indexed and used to source recommendations.

        • (string) --
  • tags (dict) --

    The tags used to organize, track, or control access for this resource.

    • (string) --
      • (string) --
Return type

dict

Returns

Response Syntax

{
    'knowledgeBase': {
        'description': 'string',
        'knowledgeBaseArn': 'string',
        'knowledgeBaseId': 'string',
        'knowledgeBaseType': 'EXTERNAL'|'CUSTOM',
        'lastContentModificationTime': datetime(2015, 1, 1),
        'name': 'string',
        'renderingConfiguration': {
            'templateUri': 'string'
        },
        'serverSideEncryptionConfiguration': {
            'kmsKeyId': 'string'
        },
        'sourceConfiguration': {
            'appIntegrations': {
                'appIntegrationArn': 'string',
                'objectFields': [
                    'string',
                ]
            }
        },
        'status': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'ACTIVE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETED',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • knowledgeBase (dict) --

      The knowledge base.

      • description (string) --

        The description.

      • knowledgeBaseArn (string) --

        The Amazon Resource Name (ARN) of the knowledge base.

      • knowledgeBaseId (string) --

        The identifier of the knowledge base.

      • knowledgeBaseType (string) --

        The type of knowledge base.

      • lastContentModificationTime (datetime) --

        An epoch timestamp indicating the most recent content modification inside the knowledge base. If no content exists in a knowledge base, this value is unset.

      • name (string) --

        The name of the knowledge base.

      • renderingConfiguration (dict) --

        Information about how to render the content.

        • templateUri (string) --

          A URI template containing exactly one variable in ${variableName} format. This can only be set for EXTERNAL knowledge bases. For Salesforce and ServiceNow, the variable must be one of the following:

          • Salesforce: Id , ArticleNumber , VersionNumber , Title , PublishStatus , or IsDeleted
          • ServiceNow: number , short_description , sys_mod_count , workflow_state , or active

          <p>The variable is replaced with the actual value for a piece of content when calling <a href="https://docs.aws.amazon.com/wisdom/latest/APIReference/API_GetContent.html">GetContent</a>. </p>

      • serverSideEncryptionConfiguration (dict) --

        The KMS key used for encryption.

      • sourceConfiguration (dict) --

        Source configuration information about the knowledge base.

        Note

        This is a Tagged Union structure. Only one of the following top level keys will be set: appIntegrations. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
        
        • appIntegrations (dict) --

          Configuration information for Amazon AppIntegrations to automatically ingest content.

          • appIntegrationArn (string) --

            The Amazon Resource Name (ARN) of the AppIntegrations DataIntegration to use for ingesting content.

          • objectFields (list) --

            The fields from the source that are made available to your agents in Wisdom.

            • For Salesforce, you must include at least Id , ArticleNumber , VersionNumber , Title , PublishStatus , and IsDeleted .
            • For ServiceNow, you must include at least number , short_description , sys_mod_count , workflow_state , and active .

            Make sure to include additional fields. These fields are indexed and used to source recommendations.

            • (string) --
      • status (string) --

        The status of the knowledge base.

      • tags (dict) --

        The tags used to organize, track, or control access for this resource.

        • (string) --
          • (string) --

Exceptions

  • ConnectWisdomService.Client.exceptions.ConflictException
  • ConnectWisdomService.Client.exceptions.ValidationException
  • ConnectWisdomService.Client.exceptions.ServiceQuotaExceededException
  • ConnectWisdomService.Client.exceptions.AccessDeniedException