Class: AWSCDK::Wisdom::CfnKnowledgeBase::ChunkingConfigurationProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
wisdom/cfn_knowledge_base.rb

Overview

Details about how to chunk the documents in the data source.

A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(chunking_strategy:, fixed_size_chunking_configuration: nil, hierarchical_chunking_configuration: nil, semantic_chunking_configuration: nil) ⇒ ChunkingConfigurationProperty

Returns a new instance of ChunkingConfigurationProperty.

Parameters:



753
754
755
756
757
758
759
760
761
762
# File 'wisdom/cfn_knowledge_base.rb', line 753

def initialize(chunking_strategy:, fixed_size_chunking_configuration: nil, hierarchical_chunking_configuration: nil, semantic_chunking_configuration: nil)
  @chunking_strategy = chunking_strategy
  Jsii::Type.check_type(@chunking_strategy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "chunkingStrategy")
  @fixed_size_chunking_configuration = fixed_size_chunking_configuration.is_a?(Hash) ? ::AWSCDK::Wisdom::CfnKnowledgeBase::FixedSizeChunkingConfigurationProperty.new(**fixed_size_chunking_configuration.transform_keys(&:to_sym)) : fixed_size_chunking_configuration
  Jsii::Type.check_type(@fixed_size_chunking_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c193aXNkb20uQ2ZuS25vd2xlZGdlQmFzZS5GaXhlZFNpemVDaHVua2luZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "fixedSizeChunkingConfiguration") unless @fixed_size_chunking_configuration.nil?
  @hierarchical_chunking_configuration = hierarchical_chunking_configuration.is_a?(Hash) ? ::AWSCDK::Wisdom::CfnKnowledgeBase::HierarchicalChunkingConfigurationProperty.new(**hierarchical_chunking_configuration.transform_keys(&:to_sym)) : hierarchical_chunking_configuration
  Jsii::Type.check_type(@hierarchical_chunking_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c193aXNkb20uQ2ZuS25vd2xlZGdlQmFzZS5IaWVyYXJjaGljYWxDaHVua2luZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "hierarchicalChunkingConfiguration") unless @hierarchical_chunking_configuration.nil?
  @semantic_chunking_configuration = semantic_chunking_configuration.is_a?(Hash) ? ::AWSCDK::Wisdom::CfnKnowledgeBase::SemanticChunkingConfigurationProperty.new(**semantic_chunking_configuration.transform_keys(&:to_sym)) : semantic_chunking_configuration
  Jsii::Type.check_type(@semantic_chunking_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c193aXNkb20uQ2ZuS25vd2xlZGdlQmFzZS5TZW1hbnRpY0NodW5raW5nQ29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "semanticChunkingConfiguration") unless @semantic_chunking_configuration.nil?
end

Instance Attribute Details

#chunking_strategyString (readonly)

Knowledge base can split your source data into chunks.

A chunk refers to an excerpt from a data source that is returned when the knowledge base that it belongs to is queried. You have the following options for chunking your data. If you opt for NONE , then you may want to pre-process your files by splitting them up such that each file corresponds to a chunk.



770
771
772
# File 'wisdom/cfn_knowledge_base.rb', line 770

def chunking_strategy
  @chunking_strategy
end

#fixed_size_chunking_configurationAWSCDK::IResolvable, ... (readonly)

Configurations for when you choose fixed-size chunking.

If you set the chunking_strategy as NONE , exclude this field.



777
778
779
# File 'wisdom/cfn_knowledge_base.rb', line 777

def fixed_size_chunking_configuration
  @fixed_size_chunking_configuration
end

#hierarchical_chunking_configurationAWSCDK::IResolvable, ... (readonly)

Settings for hierarchical document chunking for a data source.

Hierarchical chunking splits documents into layers of chunks where the first layer contains large chunks, and the second layer contains smaller chunks derived from the first layer.



784
785
786
# File 'wisdom/cfn_knowledge_base.rb', line 784

def hierarchical_chunking_configuration
  @hierarchical_chunking_configuration
end

#semantic_chunking_configurationAWSCDK::IResolvable, ... (readonly)

Settings for semantic document chunking for a data source.

Semantic chunking splits a document into smaller documents based on groups of similar content derived from the text with natural language processing.



791
792
793
# File 'wisdom/cfn_knowledge_base.rb', line 791

def semantic_chunking_configuration
  @semantic_chunking_configuration
end

Class Method Details

.jsii_propertiesObject



793
794
795
796
797
798
799
800
# File 'wisdom/cfn_knowledge_base.rb', line 793

def self.jsii_properties
  {
    :chunking_strategy => "chunkingStrategy",
    :fixed_size_chunking_configuration => "fixedSizeChunkingConfiguration",
    :hierarchical_chunking_configuration => "hierarchicalChunkingConfiguration",
    :semantic_chunking_configuration => "semanticChunkingConfiguration",
  }
end

Instance Method Details

#to_jsiiObject



802
803
804
805
806
807
808
809
810
811
# File 'wisdom/cfn_knowledge_base.rb', line 802

def to_jsii
  result = {}
  result.merge!({
    "chunkingStrategy" => @chunking_strategy,
    "fixedSizeChunkingConfiguration" => @fixed_size_chunking_configuration,
    "hierarchicalChunkingConfiguration" => @hierarchical_chunking_configuration,
    "semanticChunkingConfiguration" => @semantic_chunking_configuration,
  })
  result.compact
end