CreateKnowledgeBase
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.
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:
-
Call DeleteKnowledgeBase.
-
Call DeleteDataIntegration.
-
Call CreateDataIntegration to recreate the DataIntegration or a create different one.
-
Call CreateKnowledgeBase.
Request Syntax
POST /knowledgeBases HTTP/1.1
Content-type: application/json
{
"clientToken": "string
",
"description": "string
",
"knowledgeBaseType": "string
",
"name": "string
",
"renderingConfiguration": {
"templateUri": "string
"
},
"serverSideEncryptionConfiguration": {
"kmsKeyId": "string
"
},
"sourceConfiguration": { ... },
"tags": {
"string
" : "string
"
},
"vectorIngestionConfiguration": {
"chunkingConfiguration": {
"chunkingStrategy": "string
",
"fixedSizeChunkingConfiguration": {
"maxTokens": number
,
"overlapPercentage": number
},
"hierarchicalChunkingConfiguration": {
"levelConfigurations": [
{
"maxTokens": number
}
],
"overlapTokens": number
},
"semanticChunkingConfiguration": {
"breakpointPercentileThreshold": number
,
"bufferSize": number
,
"maxTokens": number
}
},
"parsingConfiguration": {
"bedrockFoundationModelConfiguration": {
"modelArn": "string
",
"parsingPrompt": {
"parsingPromptText": "string
"
}
},
"parsingStrategy": "string
"
}
}
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- clientToken
-
A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the AWS SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs
. Type: String
Length Constraints: Minimum length of 1. Maximum length of 4096.
Required: No
- description
-
The description.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern:
^[a-zA-Z0-9\s_.,-]+
Required: No
- knowledgeBaseType
-
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.
Type: String
Valid Values:
EXTERNAL | CUSTOM | QUICK_RESPONSES | MESSAGE_TEMPLATES | MANAGED
Required: Yes
- name
-
The name of the knowledge base.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern:
^[a-zA-Z0-9\s_.,-]+
Required: Yes
- renderingConfiguration
-
Information about how to render the content.
Type: RenderingConfiguration object
Required: No
- serverSideEncryptionConfiguration
-
The configuration information for the customer managed key used for encryption.
This KMS key must have a policy that allows
kms:CreateGrant
,kms:DescribeKey
,kms:Decrypt
, andkms:GenerateDataKey*
permissions to the IAM identity using the key to invoke Amazon Q in Connect.For more information about setting up a customer managed key for Amazon Q in Connect, see Enable Amazon Q in Connect for your instance.
Type: ServerSideEncryptionConfiguration object
Required: No
- sourceConfiguration
-
The source of the knowledge base content. Only set this argument for EXTERNAL or Managed knowledge bases.
Type: SourceConfiguration object
Note: This object is a Union. Only one member of this object can be specified or returned.
Required: No
-
The tags used to organize, track, or control access for this resource.
Type: String to string map
Key Length Constraints: Minimum length of 1. Maximum length of 128.
Key Pattern:
^(?!aws:)[a-zA-Z+-=._:/]+$
Value Length Constraints: Minimum length of 1. Maximum length of 256.
Required: No
- vectorIngestionConfiguration
-
Contains details about how to ingest the documents in a data source.
Type: VectorIngestionConfiguration object
Required: No
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"knowledgeBase": {
"description": "string",
"ingestionFailureReasons": [ "string" ],
"ingestionStatus": "string",
"knowledgeBaseArn": "string",
"knowledgeBaseId": "string",
"knowledgeBaseType": "string",
"lastContentModificationTime": number,
"name": "string",
"renderingConfiguration": {
"templateUri": "string"
},
"serverSideEncryptionConfiguration": {
"kmsKeyId": "string"
},
"sourceConfiguration": { ... },
"status": "string",
"tags": {
"string" : "string"
},
"vectorIngestionConfiguration": {
"chunkingConfiguration": {
"chunkingStrategy": "string",
"fixedSizeChunkingConfiguration": {
"maxTokens": number,
"overlapPercentage": number
},
"hierarchicalChunkingConfiguration": {
"levelConfigurations": [
{
"maxTokens": number
}
],
"overlapTokens": number
},
"semanticChunkingConfiguration": {
"breakpointPercentileThreshold": number,
"bufferSize": number,
"maxTokens": number
}
},
"parsingConfiguration": {
"bedrockFoundationModelConfiguration": {
"modelArn": "string",
"parsingPrompt": {
"parsingPromptText": "string"
}
},
"parsingStrategy": "string"
}
}
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- knowledgeBase
-
The knowledge base.
Type: KnowledgeBaseData object
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You do not have sufficient access to perform this action.
HTTP Status Code: 403
- ConflictException
-
The request could not be processed because of conflict in the current state of the resource. For example, if you're using a
Create
API (such asCreateAssistant
) that accepts name, a conflicting resource (usually with the same name) is being created or mutated.HTTP Status Code: 409
- ServiceQuotaExceededException
-
You've exceeded your service quota. To perform the requested action, remove some of the relevant resources, or use service quotas to request a service quota increase.
HTTP Status Code: 402
- ValidationException
-
The input fails to satisfy the constraints specified by a service.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: