CreateKnowledgeBase - Amazon Bedrock

CreateKnowledgeBase

Creates a knowledge base. A knowledge base contains your data sources so that Large Language Models (LLMs) can use your data. To create a knowledge base, you must first set up your data sources and configure a supported vector store. For more information, see Set up a knowledge base.

Note

If you prefer to let Amazon Bedrock create and manage a vector store for you in Amazon OpenSearch Service, use the console. For more information, see Create a knowledge base.

  • Provide the name and an optional description.

  • Provide the Amazon Resource Name (ARN) with permissions to create a knowledge base in the roleArn field.

  • Provide the embedding model to use in the embeddingModelArn field in the knowledgeBaseConfiguration object.

  • Provide the configuration for your vector store in the storageConfiguration object.

Request Syntax

PUT /knowledgebases/ HTTP/1.1 Content-type: application/json { "clientToken": "string", "description": "string", "knowledgeBaseConfiguration": { "type": "string", "vectorKnowledgeBaseConfiguration": { "embeddingModelArn": "string", "embeddingModelConfiguration": { "bedrockEmbeddingModelConfiguration": { "dimensions": number, "embeddingDataType": "string" } } } }, "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" }, "tags": { "string" : "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 to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.

Type: String

Length Constraints: Minimum length of 33. Maximum length of 256.

Pattern: ^[a-zA-Z0-9](-*[a-zA-Z0-9]){0,256}$

Required: No

description

A description of the knowledge base.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 200.

Required: No

knowledgeBaseConfiguration

Contains details about the embeddings model used for the knowledge base.

Type: KnowledgeBaseConfiguration object

Required: Yes

name

A name for the knowledge base.

Type: String

Pattern: ^([0-9a-zA-Z][_-]?){1,100}$

Required: Yes

roleArn

The 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

Contains details about the configuration of the vector database used for the knowledge base.

Type: StorageConfiguration object

Required: Yes

tags

Specify the key-value pairs for the tags that you want to attach to your knowledge base in this object.

Type: String to string map

Key Length Constraints: Minimum length of 1. Maximum length of 128.

Key Pattern: ^[a-zA-Z0-9\s._:/=+@-]*$

Value Length Constraints: Minimum length of 0. Maximum length of 256.

Value Pattern: ^[a-zA-Z0-9\s._:/=+@-]*$

Required: No

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, "embeddingDataType": "string" } } } }, "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

ServiceQuotaExceededException

The number of requests exceeds the service quota. Resubmit your request later.

HTTP Status Code: 402

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: