UpdateKnowledgeBase
Updates the configuration of a knowledge base with the fields that you specify. Because all fields will be overwritten, you must include the same values for fields that you want to keep the same.
You can change the following fields:
-
name
-
description
-
roleArn
You can't change the knowledgeBaseConfiguration
or storageConfiguration
fields, so you must specify the same configurations as when you created the knowledge base. You can send a GetKnowledgeBase request and copy the same configurations.
Request Syntax
PUT /knowledgebases/knowledgeBaseId
HTTP/1.1
Content-type: application/json
{
"description": "string
",
"knowledgeBaseConfiguration": {
"type": "string
",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "string
",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"dimensions": number
}
}
}
},
"name": "string
",
"roleArn": "string
",
"storageConfiguration": {
"mongoDbAtlasConfiguration": {
"collectionName": "string
",
"credentialsSecretArn": "string
",
"databaseName": "string
",
"endpoint": "string
",
"endpointServiceName": "string
",
"fieldMapping": {
"metadataField": "string
",
"textField": "string
",
"vectorField": "string
"
},
"vectorIndexName": "string
"
},
"opensearchServerlessConfiguration": {
"collectionArn": "string
",
"fieldMapping": {
"metadataField": "string
",
"textField": "string
",
"vectorField": "string
"
},
"vectorIndexName": "string
"
},
"pineconeConfiguration": {
"connectionString": "string
",
"credentialsSecretArn": "string
",
"fieldMapping": {
"metadataField": "string
",
"textField": "string
"
},
"namespace": "string
"
},
"rdsConfiguration": {
"credentialsSecretArn": "string
",
"databaseName": "string
",
"fieldMapping": {
"metadataField": "string
",
"primaryKeyField": "string
",
"textField": "string
",
"vectorField": "string
"
},
"resourceArn": "string
",
"tableName": "string
"
},
"redisEnterpriseCloudConfiguration": {
"credentialsSecretArn": "string
",
"endpoint": "string
",
"fieldMapping": {
"metadataField": "string
",
"textField": "string
",
"vectorField": "string
"
},
"vectorIndexName": "string
"
},
"type": "string
"
}
}
URI Request Parameters
The request uses the following URI parameters.
- knowledgeBaseId
-
The unique identifier of the knowledge base to update.
Pattern:
^[0-9a-zA-Z]{10}$
Required: Yes
Request Body
The request accepts the following data in JSON format.
- description
-
Specifies a new description for the knowledge base.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 200.
Required: No
- knowledgeBaseConfiguration
-
Specifies the configuration for the embeddings model used for the knowledge base. You must use the same configuration as when the knowledge base was created.
Type: KnowledgeBaseConfiguration object
Required: Yes
- name
-
Specifies a new name for the knowledge base.
Type: String
Pattern:
^([0-9a-zA-Z][_-]?){1,100}$
Required: Yes
- roleArn
-
Specifies a different Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the knowledge base.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 2048.
Pattern:
^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/.+$
Required: Yes
- storageConfiguration
-
Specifies the configuration for the vector store used for the knowledge base. You must use the same configuration as when the knowledge base was created.
Type: StorageConfiguration object
Required: Yes
Response Syntax
HTTP/1.1 202
Content-type: application/json
{
"knowledgeBase": {
"createdAt": "string",
"description": "string",
"failureReasons": [ "string" ],
"knowledgeBaseArn": "string",
"knowledgeBaseConfiguration": {
"type": "string",
"vectorKnowledgeBaseConfiguration": {
"embeddingModelArn": "string",
"embeddingModelConfiguration": {
"bedrockEmbeddingModelConfiguration": {
"dimensions": number
}
}
}
},
"knowledgeBaseId": "string",
"name": "string",
"roleArn": "string",
"status": "string",
"storageConfiguration": {
"mongoDbAtlasConfiguration": {
"collectionName": "string",
"credentialsSecretArn": "string",
"databaseName": "string",
"endpoint": "string",
"endpointServiceName": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"opensearchServerlessConfiguration": {
"collectionArn": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"pineconeConfiguration": {
"connectionString": "string",
"credentialsSecretArn": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string"
},
"namespace": "string"
},
"rdsConfiguration": {
"credentialsSecretArn": "string",
"databaseName": "string",
"fieldMapping": {
"metadataField": "string",
"primaryKeyField": "string",
"textField": "string",
"vectorField": "string"
},
"resourceArn": "string",
"tableName": "string"
},
"redisEnterpriseCloudConfiguration": {
"credentialsSecretArn": "string",
"endpoint": "string",
"fieldMapping": {
"metadataField": "string",
"textField": "string",
"vectorField": "string"
},
"vectorIndexName": "string"
},
"type": "string"
},
"updatedAt": "string"
}
}
Response Elements
If the action is successful, the service sends back an HTTP 202 response.
The following data is returned in JSON format by the service.
- knowledgeBase
-
Contains details about the knowledge base.
Type: KnowledgeBase object
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
The request is denied because of missing access permissions.
HTTP Status Code: 403
- ConflictException
-
There was a conflict performing an operation.
HTTP Status Code: 409
- InternalServerException
-
An internal server error occurred. Retry your request.
HTTP Status Code: 500
- ResourceNotFoundException
-
The specified resource Amazon Resource Name (ARN) was not found. Check the Amazon Resource Name (ARN) and try your request again.
HTTP Status Code: 404
- ThrottlingException
-
The number of requests exceeds the limit. Resubmit your request later.
HTTP Status Code: 429
- ValidationException
-
Input validation failed. Check your request parameters and retry the request.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: