Skip to main content

@cdklabs/genai-idp-bda-processor

Project description

GenAI IDP BdaProcessor

⚠️ DEPRECATION NOTICE: Starting with v0.5.0 of the GenAI IDP Core accelerator, a unified processing architecture with a single configurable Step Functions workflow will be introduced. While BDA-based document processing capabilities will continue to be supported, the current standalone processor package structure will be replaced with an integrated configuration-driven approach. We recommend monitoring the core accelerator's v0.5.0 release notes for migration guidance.

Compatible with GenAI IDP version: 0.4.16 Stability: Experimental License

This package is provided on an "as-is" basis, and may include bugs, errors, or other issues. All classes are under active development and subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


Overview

The GenAI IDP BdaProcessor implements intelligent document processing using Amazon Bedrock Data Automation. This package provides a complete AWS CDK implementation for extracting structured data from standard documents with well-defined formats using Amazon's managed document processing capabilities.

The BdaProcessor is ideal for processing common document types such as invoices, receipts, financial statements, and other standardized forms where the structure is consistent and well-understood.

For a detailed exploration of all constructs and their configuration options, we invite you to check out our API documentation. This comprehensive reference will help you make the most of Pattern 1's capabilities in your document processing workflows.

Features

  • Amazon Bedrock Data Automation Integration: Leverages Amazon's managed document processing capabilities
  • Serverless Architecture: Built on AWS Lambda, Step Functions, and other serverless technologies
  • Automatic Document Classification: Identifies document types and applies appropriate extraction schemas
  • Configurable Processing Rules: Customize extraction behavior through configuration
  • Document Summarization: Optional AI-powered document summarization capabilities
  • Evaluation Framework: Built-in mechanisms for evaluating extraction quality
  • Comprehensive Metrics: Detailed CloudWatch metrics for monitoring processing performance
  • Cost Optimization: Efficient resource utilization to minimize processing costs

Getting Started

Installation

The package is available through npm for JavaScript/TypeScript projects and PyPI for Python projects.

JavaScript/TypeScript (npm)

# Using npm
npm install @cdklabs/genai-idp-bda-processor @cdklabs/genai-idp

# Using yarn
yarn add @cdklabs/genai-idp-bda-processor @cdklabs/genai-idp

Python (PyPI)

# Using pip
pip install cdklabs.genai-idp-bda-processor cdklabs.genai-idp

# Using poetry
poetry add cdklabs.genai-idp-bda-processor cdklabs.genai-idp

Basic Usage

Here's how to integrate BdaProcessor into your IDP solution:

import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as kms from 'aws-cdk-lib/aws-kms';
import { ProcessingEnvironment } from '@cdklabs/genai-idp';
import { BdaProcessor, BdaProcessorConfiguration, IDataAutomationProject } from '@cdklabs/genai-idp-bda-processor';

export class MyIdpStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // Create encryption key
    const key = new kms.Key(this, 'IdpKey', {
      enableKeyRotation: true,
    });

    // Create S3 buckets for input, output, and working data
    const inputBucket = new s3.Bucket(this, 'InputBucket', {
      encryption: s3.BucketEncryption.KMS,
      encryptionKey: key,
      eventBridgeEnabled: true,
    });

    const outputBucket = new s3.Bucket(this, 'OutputBucket', {
      encryption: s3.BucketEncryption.KMS,
      encryptionKey: key,
    });

    const workingBucket = new s3.Bucket(this, 'WorkingBucket', {
      encryption: s3.BucketEncryption.KMS,
      encryptionKey: key,
    });

    // Create processing environment
    const environment = new ProcessingEnvironment(this, 'Environment', {
      key,
      inputBucket,
      outputBucket,
      workingBucket,
      metricNamespace: 'MyIdpSolution',
    });

    // Replace with your own configuration - this is just a sample
    const configuration = BdaProcessorConfiguration.lendingPackageSample();

    // Reference your Bedrock Data Automation project
    const dataAutomationProject: IDataAutomationProject = /* Your data automation project */;

    // Create the processor
    const processor = new BdaProcessor(this, 'Processor', {
      environment,
      configuration,
      dataAutomationProject,
    });
  }
}

Configuration

BdaProcessor supports extensive configuration options:

  • Data Automation Project: Connect to your Amazon Bedrock Data Automation project
  • Invokable Models: Specify which models to use for evaluation and summarization
  • Guardrails: Apply content guardrails to model interactions
  • Concurrency: Control processing throughput and resource utilization
  • VPC Configuration: Deploy in a VPC for enhanced security and connectivity

For detailed configuration options, refer to the TypeScript type definitions and JSDoc comments in the source code.

Contributing

We welcome contributions to the GenAI IDP BdaProcessor! Please follow these steps to contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please ensure your code adheres to our coding standards and includes appropriate tests.

Related Projects

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdklabs_genai_idp_bda_processor-0.2.0.tar.gz (188.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdklabs_genai_idp_bda_processor-0.2.0-py3-none-any.whl (187.5 kB view details)

Uploaded Python 3

File details

Details for the file cdklabs_genai_idp_bda_processor-0.2.0.tar.gz.

File metadata

File hashes

Hashes for cdklabs_genai_idp_bda_processor-0.2.0.tar.gz
Algorithm Hash digest
SHA256 04f3716a42cc08ddf2116e8adb100de14bf748aa1d8696b53293e22ce916d2ea
MD5 2e6cd829200fef9a43a955102acb1bb7
BLAKE2b-256 0def595ecfef024ddee80905ec0d0e0aa2030d1075e068245bcb72a4673a2629

See more details on using hashes here.

Provenance

The following attestation bundles were made for cdklabs_genai_idp_bda_processor-0.2.0.tar.gz:

Publisher: release.yml on cdklabs/genai-idp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cdklabs_genai_idp_bda_processor-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cdklabs_genai_idp_bda_processor-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efdbad3430240284e06ac57ba2bddf789f83d6eb1418d08eeba4fd80f61e661c
MD5 ab3b16b4b49a1683ddbe994b04500017
BLAKE2b-256 1e58077d2407043f15db158b2ddb9cb7cdd18b6f1ccb62d0fbea8b8442701123

See more details on using hashes here.

Provenance

The following attestation bundles were made for cdklabs_genai_idp_bda_processor-0.2.0-py3-none-any.whl:

Publisher: release.yml on cdklabs/genai-idp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page