create_data_source
Add an S3 data source to an Amazon Bedrock Knowledge Base, specifying bucket location, optional folder prefixes, and custom parsing or chunking strategies for document processing.
Instructions
Knowledge Baseにデータソースを作成します。
データソースは、Knowledge Baseがデータを取得する場所を定義します。 S3バケットを指定し、必要に応じて特定のプレフィックス(フォルダ)のみを 含めることができます。パーシング設定とチャンキング設定を指定することで、 データソースごとに異なる処理方法を適用できます。
注意: Knowledge Baseのstorage_typeがS3_VECTORSでも、データソースのtypeは
常にS3になります。これらは異なる概念です:
storage_type: Knowledge Baseのストレージ設定(S3またはS3_VECTORS)dataSourceConfiguration.type: データソースのタイプ(S3, WEB, CONFLUENCEなど)
Args: knowledge_base_id: データソースを追加するKnowledge BaseのID name: データソースの名前(1-100文字) source_type: データソースタイプ(現在は'S3'のみサポート、デフォルト: 'S3') bucket_arn: データソースとして使用するS3バケットのARN(arn:aws:s3:::BUCKET_NAME形式) inclusion_prefixes: 含めるS3プレフィックスのカンマ区切り文字列(オプション) 例: "documents/,images/" のように複数のプレフィックスを指定可能 空文字列の場合はバケット内のすべてのオブジェクトが対象
パーシング設定(オプション):
parsing_strategy: パーシング戦略
- 'BEDROCK_FOUNDATION_MODEL': Foundation Modelを使用したパーシング
(マルチモーダルデータ(画像、表、グラフなど)を処理可能、プロンプトカスタマイズ可能)
- 'BEDROCK_DATA_AUTOMATION': Bedrock Data Automationを使用したパーシング
(マルチモーダルデータを処理可能、完全マネージド、追加プロンプト不要)
注意: 指定しない場合はKnowledge Baseのデフォルト設定が使用されます
parsing_model_arn: Foundation ModelのARN(parsing_strategy='BEDROCK_FOUNDATION_MODEL'の場合必須)
例: "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0"
サポートされているモデル: Claude 3 Sonnet, Claude 3 Opus, Claude 3 Haikuなど
parsing_modality: マルチモーダル設定
- 'MULTIMODAL': テキストと画像の両方を処理(オプション)
parsing_prompt_text: パーシングプロンプトのテキスト(オプション)
Foundation Modelにドキュメントの解釈方法を指示するテキスト
例: "Extract all text, tables, and figures from this document."
チャンキング設定(オプション):
chunking_strategy: チャンキング戦略
- 'FIXED_SIZE': 固定サイズのチャンクに分割(推奨: max_tokens=1000, overlap_percentage=20)
- 'HIERARCHICAL': 階層的なチャンクに分割(大きなチャンクと小さなチャンクの2層)
- 'SEMANTIC': セマンティックなチャンクに分割(NLPを使用して類似コンテンツでグループ化)
- 'NONE': チャンクに分割しない(各ファイルが1つのチャンクとして扱われる)
注意: 指定しない場合はKnowledge Baseのデフォルト設定が使用されます
chunking_max_tokens: 最大トークン数(chunking_strategy='FIXED_SIZE'または'SEMANTIC'の場合に使用)
- FIXED_SIZE: 1以上(推奨: 500-2000)
- SEMANTIC: 1以上(推奨: 1000-3000)
chunking_overlap_percentage: オーバーラップ率(chunking_strategy='FIXED_SIZE'の場合に使用)
範囲: 1-99(推奨: 10-30)
隣接するチャンク間で重複するトークンの割合
chunking_overlap_tokens: オーバーラップトークン数(chunking_strategy='HIERARCHICAL'の場合に使用)
階層チャンキングで使用する重複トークン数
chunking_buffer_size: バッファサイズ(chunking_strategy='SEMANTIC'の場合に使用)
範囲: 0-1(推奨: 1)
文を比較する際の移動コンテキストウィンドウのサイズ
chunking_breakpoint_threshold: ブレークポイントのパーセンタイル閾値(chunking_strategy='SEMANTIC'の場合に使用)
範囲: 50-99(推奨: 80-95)
チャンクを分割するための類似度閾値(低いほど多くのチャンクが作成される)Returns: DataSourceResponseDict: データソースの作成結果 - data_source_id: 作成されたデータソースのID - status: データソースのステータス('CREATING', 'ACTIVE', 'FAILED'など)
Raises: ValueError: 入力値が無効な場合(source_typeが無効、バリデーションエラーなど) - source_typeが'S3'以外の場合 - parsing_strategy='BEDROCK_FOUNDATION_MODEL'でparsing_model_arnが指定されていない場合 - ARN形式が無効な場合
Examples: # 基本的なデータソースの作成(デフォルト設定) create_data_source( knowledge_base_id="KB123", name="My Data Source", source_type="S3", bucket_arn="arn:aws:s3:::my-bucket" )
# 特定のプレフィックスのみを含めるデータソース
create_data_source(
knowledge_base_id="KB123",
name="Documents Only",
source_type="S3",
bucket_arn="arn:aws:s3:::my-bucket",
inclusion_prefixes="documents/,pdfs/"
)
# カスタムパーシングとチャンキング設定を使用
create_data_source(
knowledge_base_id="KB123",
name="Custom Data Source",
source_type="S3",
bucket_arn="arn:aws:s3:::my-bucket",
parsing_strategy="BEDROCK_FOUNDATION_MODEL",
parsing_model_arn="arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0",
parsing_modality="MULTIMODAL",
chunking_strategy="FIXED_SIZE",
chunking_max_tokens=1000,
chunking_overlap_percentage=20
)Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| knowledge_base_id | Yes | ||
| name | Yes | ||
| source_type | No | S3 | |
| bucket_arn | No | ||
| inclusion_prefixes | No | ||
| parsing_strategy | No | ||
| parsing_model_arn | No | ||
| parsing_modality | No | ||
| parsing_prompt_text | No | ||
| chunking_strategy | No | ||
| chunking_max_tokens | No | ||
| chunking_overlap_percentage | No | ||
| chunking_overlap_tokens | No | ||
| chunking_buffer_size | No | ||
| chunking_breakpoint_threshold | No |
Implementation Reference
- The actual implementation that calls the Bedrock API to create the data source.
def create_data_source( self, knowledge_base_id: str, name: str, data_source_configuration: Dict[str, Any], vector_ingestion_configuration: Optional[Dict[str, Any]] = None, ) -> DataSourceResponseDict: """ Knowledge Baseにデータソースを作成します。 データソースは、Knowledge Baseがデータを取得する場所を定義します。 通常はS3バケットを指定します。 Args: knowledge_base_id: データソースを追加するKnowledge BaseのID name: データソースの名前 data_source_configuration: データソース設定の辞書 - type: データソースタイプ(現在は"S3"のみサポート) - s3Configuration: S3設定 - bucketArn: S3バケットARN - inclusionPrefixes (オプション): 含めるS3プレフィックスのリスト vector_ingestion_configuration: ベクトル取り込み設定の辞書(オプション) - parsingConfiguration: パーシング設定(オプション) - chunkingConfiguration: チャンキング設定(オプション) Returns: DataSourceResponseDict: データソースの作成結果 - data_source_id: 作成されたデータソースのID - status: データソースのステータス Raises: ClientError: AWS API呼び出しが失敗した場合 """ try: # API呼び出しパラメータを構築 api_params = { "knowledgeBaseId": knowledge_base_id, "name": name, "dataSourceConfiguration": data_source_configuration, } # ベクトル取り込み設定が指定されている場合は追加 # パーシング設定やチャンキング設定を含むことができます if vector_ingestion_configuration: api_params["vectorIngestionConfiguration"] = vector_ingestion_configuration # AWS Bedrock APIを呼び出してデータソースを作成 response = self.bedrock_agent.create_data_source(**api_params) - The MCP tool handler function which invokes the bedrock_client.create_data_source logic. Note: The code provided for handle_create_data_source spans from line 518 to 722 in main.py.
def create_data_source( knowledge_base_id: str, name: str, source_type: str = "S3", bucket_arn: str = "", inclusion_prefixes: str = "", # パーシング設定(オプション) parsing_strategy: str = "", parsing_model_arn: str = "", parsing_modality: str = "", parsing_prompt_text: str = "", # チャンキング設定(オプション) chunking_strategy: str = "", chunking_max_tokens: int = 0, chunking_overlap_percentage: int = 0, chunking_overlap_tokens: int = 0, chunking_buffer_size: int = 0, chunking_breakpoint_threshold: int = 0, ) -> DataSourceResponseDict: """ Knowledge Baseにデータソースを作成します。 データソースは、Knowledge Baseがデータを取得する場所を定義します。 S3バケットを指定し、必要に応じて特定のプレフィックス(フォルダ)のみを 含めることができます。パーシング設定とチャンキング設定を指定することで、 データソースごとに異なる処理方法を適用できます。 注意: Knowledge Baseの`storage_type`が`S3_VECTORS`でも、データソースの`type`は 常に`S3`になります。これらは異なる概念です: - `storage_type`: Knowledge Baseのストレージ設定(S3またはS3_VECTORS) - `dataSourceConfiguration.type`: データソースのタイプ(S3, WEB, CONFLUENCEなど) Args: knowledge_base_id: データソースを追加するKnowledge BaseのID name: データソースの名前(1-100文字) source_type: データソースタイプ(現在は'S3'のみサポート、デフォルト: 'S3') bucket_arn: データソースとして使用するS3バケットのARN(arn:aws:s3:::BUCKET_NAME形式) inclusion_prefixes: 含めるS3プレフィックスのカンマ区切り文字列(オプション) 例: "documents/,images/" のように複数のプレフィックスを指定可能 空文字列の場合はバケット内のすべてのオブジェクトが対象 パーシング設定(オプション): parsing_strategy: パーシング戦略 - 'BEDROCK_FOUNDATION_MODEL': Foundation Modelを使用したパーシング (マルチモーダルデータ(画像、表、グラフなど)を処理可能、プロンプトカスタマイズ可能) - 'BEDROCK_DATA_AUTOMATION': Bedrock Data Automationを使用したパーシング (マルチモーダルデータを処理可能、完全マネージド、追加プロンプト不要) 注意: 指定しない場合はKnowledge Baseのデフォルト設定が使用されます parsing_model_arn: Foundation ModelのARN(parsing_strategy='BEDROCK_FOUNDATION_MODEL'の場合必須) 例: "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-sonnet-20240229-v1:0" サポートされているモデル: Claude 3 Sonnet, Claude 3 Opus, Claude 3 Haikuなど parsing_modality: マルチモーダル設定 - 'MULTIMODAL': テキストと画像の両方を処理(オプション) parsing_prompt_text: パーシングプロンプトのテキスト(オプション) Foundation Modelにドキュメントの解釈方法を指示するテキスト 例: "Extract all text, tables, and figures from this document." チャンキング設定(オプション): chunking_strategy: チャンキング戦略 - 'FIXED_SIZE': 固定サイズのチャンクに分割(推奨: max_tokens=1000, overlap_percentage=20) - 'HIERARCHICAL': 階層的なチャンクに分割(大きなチャンクと小さなチャンクの2層) - 'SEMANTIC': セマンティックなチャンクに分割(NLPを使用して類似コンテンツでグループ化) - 'NONE': チャンクに分割しない(各ファイルが1つのチャンクとして扱われる) 注意: 指定しない場合はKnowledge Baseのデフォルト設定が使用されます chunking_max_tokens: 最大トークン数(chunking_strategy='FIXED_SIZE'または'SEMANTIC'の場合に使用) - FIXED_SIZE: 1以上(推奨: 500-2000) - SEMANTIC: 1以上(推奨: 1000-3000) chunking_overlap_percentage: オーバーラップ率(chunking_strategy='FIXED_SIZE'の場合に使用) 範囲: 1-99(推奨: 10-30) 隣接するチャンク間で重複するトークンの割合 chunking_overlap_tokens: オーバーラップトークン数(chunking_strategy='HIERARCHICAL'の場合に使用) 階層チャンキングで使用する重複トークン数 chunking_buffer_size: バッファサイズ(chunking_strategy='SEMANTIC'の場合に使用) 範囲: 0-1(推奨: 1) 文を比較する際の移動コンテキストウィンドウのサイズ chunking_breakpoint_threshold: ブレークポイントのパーセンタイル閾値(chunking_strategy='SEMANTIC'の場合に使用) 範囲: 50-99(推奨: 80-95) チャンクを分割するための類似度閾値(低いほど多くのチャンクが作成される) Returns: DataSourceResponseDict: データソースの作成結果 - data_source_id: 作成されたデータソースのID - status: データソースのステータス('CREATING', 'ACTIVE', 'FAILED'など) Raises: ValueError: 入力値が無効な場合(source_typeが無効、バリデーションエラーなど) - source_typeが'S3'以外の場合 - parsing_strategy='BEDROCK_FOUNDATION_MODEL'でparsing_model_arnが指定されていない場合 - The Pydantic model for validating the CreateDataSource MCP tool input.
class CreateDataSourceRequest(BaseModel): """ データソース作成リクエストのバリデーションモデル データソースを作成する際に必要なパラメータを定義し、 入力値の検証を行います。 Attributes: knowledge_base_id: データソースを追加するKnowledge BaseのID name: データソースの名前(1-100文字) source_type: データソースタイプ(現在はS3のみサポート、デフォルト: S3) bucket_arn: データソースとして使用するS3バケットのARNまたはS3 URI inclusion_prefixes: 含めるS3プレフィックスのカンマ区切り文字列(オプション) vector_ingestion_configuration: ベクトル取り込み設定(オプション) """ # Knowledge Base ID: 必須 knowledge_base_id: str = Field(..., description="Knowledge Base ID") # データソース名: 必須、1-100文字 name: str = Field(..., min_length=1, max_length=100, description="データソース名") # データソースタイプ: デフォルトはS3