Skip to content

Commit ffcf9c8

Browse files
committed
Merge remote-tracking branch 'origin/develop' into feature/error-analyzer-8
2 parents 07ad9a3 + ae36653 commit ffcf9c8

File tree

77 files changed

+2290
-10508
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2290
-10508
lines changed

.gitlab-ci.yml

Lines changed: 35 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
# Any publicly available image
55
image: public.ecr.aws/docker/library/python:3.13-bookworm
66

7+
# Global timeout for all jobs
8+
default:
9+
timeout: 2h
10+
711
# Change pip's cache directory to be inside the project directory since we can
812
# only cache local items.
913
# variables:
@@ -49,15 +53,34 @@ developer_tests:
4953
junit: lib/idp_common_pkg/test-reports/test-results.xml
5054
expire_in: 1 week
5155

56+
deployment_validation:
57+
stage: deployment_validation
58+
rules:
59+
- when: on_success
60+
61+
before_script:
62+
- apt-get update -y
63+
- apt-get install curl unzip python3-pip -y
64+
# Install AWS CLI
65+
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
66+
- unzip awscliv2.zip
67+
- ./aws/install
68+
# Install PyYAML for template analysis
69+
- pip install PyYAML
70+
71+
script:
72+
# Check if service role has sufficient permissions for main stack deployment
73+
- python3 scripts/validate_service_role_permissions.py
74+
5275
integration_tests:
5376
stage: integration_tests
77+
timeout: 2h
5478
# variables:
5579
# # In order to run tests in another account, add a AWS_CREDS_TARGET_ROLE variable to the Gitlab pipeline variables.
5680
# AWS_CREDS_TARGET_ROLE: ${AWS_CREDS_TARGET_ROLE}
5781
# AWS_DEFAULT_REGION: ${AWS_DEFAULT_REGION}
5882
# IDP_ACCOUNT_ID: ${IDP_ACCOUNT_ID}
5983

60-
# Add rules to only run on develop branch
6184
# Add rules to only run on develop branch
6285
rules:
6386
- if: $CI_COMMIT_BRANCH == "develop"
@@ -73,44 +96,23 @@ integration_tests:
7396
- when: manual
7497

7598
before_script:
76-
- python --version
7799
- apt-get update -y
78-
- apt-get install zip unzip curl make -y
79-
80-
# Install Poetry
81-
- curl -sSL https://install.python-poetry.org | python3 -
82-
- export PATH="/root/.local/bin:$PATH"
83-
- poetry --version
84-
100+
- apt-get install zip unzip curl python3-pip -y
85101
# Install AWS CLI
86102
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
87103
- unzip awscliv2.zip
88104
- ./aws/install
105+
# Install boto3 for Python script
106+
- pip install boto3
89107

90108
script:
91109
- aws --version
92110
- aws sts get-caller-identity --no-cli-pager
93-
- cd ./scripts/sdlc/idp-cli
94-
- poetry install
95-
- make put
96-
- make wait
97-
98-
deployment_validation:
99-
stage: deployment_validation
100-
rules:
101-
- when: on_success
102-
103-
before_script:
104-
- apt-get update -y
105-
- apt-get install curl unzip python3-pip -y
106-
# Install AWS CLI
107-
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
108-
- unzip awscliv2.zip
109-
- ./aws/install
110-
# Install PyYAML for template analysis
111-
- pip install PyYAML
112-
113-
script:
114-
# Check if service role has sufficient permissions for main stack deployment
115-
- python3 scripts/validate_service_role_permissions.py
116-
111+
112+
# Set environment variables for Python script
113+
- export IDP_ACCOUNT_ID=${IDP_ACCOUNT_ID:-020432867916}
114+
- export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-us-east-1}
115+
- export IDP_PIPELINE_NAME=idp-sdlc-deploy-pipeline
116+
117+
# Run integration test deployment
118+
- python3 scripts/integration_test_deployment.py

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ SPDX-License-Identifier: MIT-0
55

66
## [Unreleased]
77

8+
## [0.3.21]
9+
810
### Added
911

1012
- **Claude Sonnet 4.5 Haiku Model Support**
@@ -19,8 +21,26 @@ SPDX-License-Identifier: MIT-0
1921
- Simplified CloudWatch results structure for improved readability and analysis
2022
- Updated error analyzer recommendations to leverage X-Ray insights for more accurate root cause identification
2123

24+
- **EU Region Support with Automatic Model Mapping**
25+
- Added support for deploying the solution in EU regions (eu-central-1, eu-west-1, etc.)
26+
- Automatic model endpoint mapping between US and EU regions for seamless deployment
27+
- Comprehensive model mapping table covering Amazon Nova and Anthropic Claude models
28+
- Intelligent fallback mappings when direct EU equivalents are unavailable
29+
- Quick Launch button for eu-central-1 region in README and deployment documentation
30+
- IDP CLI now supports eu-central-1 deployment with automatic template URL selection
31+
- Complete technical documentation in `docs/eu-region-model-support.md` with best practices and troubleshooting
32+
2233
### Changed
2334

35+
- **Migrated Evaluation from EventBridge Trigger to Step Functions Workflow**
36+
- Moved evaluation processing from external EventBridge-triggered Lambda to integrated Step Functions workflow step
37+
- **Race Condition Eliminated**: Evaluation now runs inside state machine before WorkflowTracker marks documents COMPLETE, preventing premature completion status when evaluation is still running
38+
- **Config-Driven Control**: Evaluation now controlled by `evaluation.enabled` configuration setting instead of CloudFormation stack parameter, enabling runtime control without stack redeployment
39+
- **Enhanced Status Tracking**: Added EVALUATING status to document processing pipeline for better visibility of evaluation progress
40+
- **UI Improvements**: Added support for displaying EVALUATING status in processing flow viewer and "NOT ENABLED" badge when evaluation is disabled in configuration
41+
- **Consistent Pattern**: Aligns evaluation with summarization and assessment patterns for unified feature control approach
42+
43+
2444
- **Migrated UI Build System from Create React App to Vite**
2545
- Upgraded to Vite 7 for faster build times
2646
- Updated to React 18, AWS Amplify v6, react-router-dom v6, and Cloudscape Design System

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ To quickly deploy the GenAI-IDP solution in your AWS account:
7070
| --------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
7171
| US West (Oregon) | us-west-2 | [![Launch Stack](https://cdn.rawgit.com/buildkite/cloudformation-launch-stack-button-svg/master/launch-stack.svg)](https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/create/review?templateURL=https://s3.us-west-2.amazonaws.com/aws-ml-blog-us-west-2/artifacts/genai-idp/idp-main.yaml&stackName=IDP) |
7272
| US East (N.Virginia) | us-east-1 | [![Launch Stack](https://cdn.rawgit.com/buildkite/cloudformation-launch-stack-button-svg/master/launch-stack.svg)](https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?templateURL=https://s3.us-east-1.amazonaws.com/aws-ml-blog-us-east-1/artifacts/genai-idp/idp-main.yaml&stackName=IDP) |
73+
| EU Central (Frankfurt) | eu-central-1 | [![Launch Stack](https://cdn.rawgit.com/buildkite/cloudformation-launch-stack-button-svg/master/launch-stack.svg)](https://eu-central-1.console.aws.amazon.com/cloudformation/home?region=eu-central-1#/stacks/create/review?templateURL=https://s3.eu-central-1.amazonaws.com/aws-ml-blog-eu-central-1/artifacts/genai-idp/idp-main.yaml&stackName=IDP) |
7374

7475
3. When the stack deploys for the first time, you'll receive an email with a temporary password to access the web UI
7576
4. Use this temporary password for your first login to set up a permanent password
@@ -138,6 +139,7 @@ To update an existing GenAIIDP stack to a new version:
138139
5. Enter the template URL:
139140
- us-west-2: `https://s3.us-west-2.amazonaws.com/aws-ml-blog-us-west-2/artifacts/genai-idp/idp-main.yaml`
140141
- us-east-1: `https://s3.us-east-1.amazonaws.com/aws-ml-blog-us-east-1/artifacts/genai-idp/idp-main.yaml`
142+
- eu-central-1: `https://s3.eu-central-1.amazonaws.com/aws-ml-blog-eu-central-1/artifacts/genai-idp/idp-main.yaml`
141143
6. Follow the prompts to update your stack, reviewing any parameter changes
142144
7. For detailed instructions, see the [Deployment Guide](./docs/deployment.md#updating-an-existing-stack)
143145

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.3.21-wip1
1+
0.3.21

config_library/pattern-1/lending-package-sample/config.yaml

Lines changed: 98 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ summarization:
6767
system_prompt: >-
6868
You are a document summarization expert who can analyze and summarize documents from various domains including medical, financial, legal, and general business documents. Your task is to create a summary that captures the key information, main points, and important details from the document. Your output must be in valid JSON format. \nSummarization Style: Balanced\\nCreate a balanced summary that provides a moderate level of detail. Include the main points and key supporting information, while maintaining the document's overall structure. Aim for a comprehensive yet concise summary.\n Your output MUST be in valid JSON format with markdown content. You MUST strictly adhere to the output format specified in the instructions.
6969
evaluation:
70+
enabled: true
7071
llm_method:
7172
top_p: '0.1'
7273
max_tokens: '4096'
@@ -334,16 +335,6 @@ pricing:
334335
price: '8.0E-8'
335336
- name: cacheWriteInputTokens
336337
price: '1.0E-6'
337-
- name: bedrock/us.anthropic.claude-3-5-sonnet-20241022-v2:0
338-
units:
339-
- name: inputTokens
340-
price: '3.0E-6'
341-
- name: outputTokens
342-
price: '1.5E-5'
343-
- name: cacheReadInputTokens
344-
price: '3.0E-7'
345-
- name: cacheWriteInputTokens
346-
price: '3.75E-6'
347338
- name: bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0
348339
units:
349340
- name: inputTokens
@@ -354,6 +345,16 @@ pricing:
354345
price: '1.1E-07'
355346
- name: cacheWriteInputTokens
356347
price: '1.4E-06'
348+
- name: bedrock/us.anthropic.claude-3-5-sonnet-20241022-v2:0
349+
units:
350+
- name: inputTokens
351+
price: '3.0E-6'
352+
- name: outputTokens
353+
price: '1.5E-5'
354+
- name: cacheReadInputTokens
355+
price: '3.0E-7'
356+
- name: cacheWriteInputTokens
357+
price: '3.75E-6'
357358
- name: bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0
358359
units:
359360
- name: inputTokens
@@ -424,6 +425,93 @@ pricing:
424425
price: '1.5E-6'
425426
- name: cacheWriteInputTokens
426427
price: '1.875E-5'
428+
# EU model pricing
429+
- name: bedrock/eu.amazon.nova-lite-v1:0
430+
units:
431+
- name: inputTokens
432+
price: '7.8E-8'
433+
- name: outputTokens
434+
price: '3.1E-7'
435+
- name: cacheReadInputTokens
436+
price: '1.9E-8'
437+
- name: cacheWriteInputTokens
438+
price: '7.8E-8'
439+
- name: bedrock/eu.amazon.nova-pro-v1:0
440+
units:
441+
- name: inputTokens
442+
price: '1.0E-6'
443+
- name: outputTokens
444+
price: '4.2E-6'
445+
- name: cacheReadInputTokens
446+
price: '2.6E-7'
447+
- name: cacheWriteInputTokens
448+
price: '1.0E-6'
449+
- name: bedrock/eu.anthropic.claude-3-haiku-20240307-v1:0
450+
units:
451+
- name: inputTokens
452+
price: '2.5E-7'
453+
- name: outputTokens
454+
price: '1.25E-6'
455+
- name: bedrock/eu.anthropic.claude-haiku-4-5-20251001-v1:0
456+
units:
457+
- name: inputTokens
458+
price: '1.1E-6'
459+
- name: outputTokens
460+
price: '5.5E-6'
461+
- name: cacheReadInputTokens
462+
price: '1.1E-7'
463+
- name: cacheWriteInputTokens
464+
price: '1.4E-6'
465+
- name: bedrock/eu.anthropic.claude-3-5-sonnet-20241022-v2:0
466+
units:
467+
- name: inputTokens
468+
price: '3.0E-6'
469+
- name: outputTokens
470+
price: '1.5E-5'
471+
- name: cacheReadInputTokens
472+
price: '3.0E-7'
473+
- name: cacheWriteInputTokens
474+
price: '3.75E-6'
475+
- name: bedrock/eu.anthropic.claude-3-7-sonnet-20250219-v1:0
476+
units:
477+
- name: inputTokens
478+
price: '3.0E-6'
479+
- name: outputTokens
480+
price: '1.5E-5'
481+
- name: cacheReadInputTokens
482+
price: '3.0E-7'
483+
- name: cacheWriteInputTokens
484+
price: '3.75E-6'
485+
- name: bedrock/eu.anthropic.claude-sonnet-4-20250514-v1:0
486+
units:
487+
- name: inputTokens
488+
price: '3.0E-6'
489+
- name: outputTokens
490+
price: '1.5E-5'
491+
- name: cacheReadInputTokens
492+
price: '3.0E-7'
493+
- name: cacheWriteInputTokens
494+
price: '3.75E-6'
495+
- name: bedrock/eu.anthropic.claude-sonnet-4-5-20250929-v1:0
496+
units:
497+
- name: inputTokens
498+
price: '3.3E-6'
499+
- name: outputTokens
500+
price: '1.65E-5'
501+
- name: cacheReadInputTokens
502+
price: '3.3E-7'
503+
- name: cacheWriteInputTokens
504+
price: '4.125E-6'
505+
- name: bedrock/eu.anthropic.claude-sonnet-4-5-20250929-v1:0:1m
506+
units:
507+
- name: inputTokens
508+
price: '6.6E-6'
509+
- name: outputTokens
510+
price: '2.475E-5'
511+
- name: cacheReadInputTokens
512+
price: '6.6E-7'
513+
- name: cacheWriteInputTokens
514+
price: '8.25E-6'
427515
# AWS Lambda pricing (US East - N. Virginia)
428516
- name: lambda/requests
429517
units:
@@ -433,4 +521,3 @@ pricing:
433521
units:
434522
- name: gb_seconds
435523
price: '1.66667E-5' # $0.0000166667 per GB-second ($16.67 per 1M GB-seconds)
436-

0 commit comments

Comments
 (0)