From 0d942b264ebc1ee76fec2ec52cb09cbff91b1308 Mon Sep 17 00:00:00 2001 From: Edwin Jose Date: Thu, 10 Apr 2025 16:22:32 -0400 Subject: [PATCH] feat: create Amazon bundle (#7255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * create Amazon bundle * Update s3_bucket_uploader.py * update FE tests * [autofix.ci] apply automated fixes * ✅ (dropdownComponent.spec.ts): update test selectors to match the updated component names for better test accuracy ✅ (keyPairListComponent.spec.ts): update test selectors to match the updated component names for better test accuracy * Update filterEdge-shard-1.spec.ts --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: cristhianzl --- .../base/langflow/base/models/model_input_constants.py | 4 ++-- src/backend/base/langflow/components/amazon/__init__.py | 5 +++++ .../amazon_bedrock.py => amazon/amazon_bedrock_embedding.py} | 0 .../amazon_bedrock.py => amazon/amazon_bedrock_model.py} | 0 .../components/{data => amazon}/s3_bucket_uploader.py | 2 +- src/backend/base/langflow/components/data/__init__.py | 2 -- src/backend/base/langflow/components/embeddings/__init__.py | 2 -- src/backend/base/langflow/components/models/__init__.py | 2 -- .../tests/unit/components/data/test_s3_uploader_component.py | 2 +- src/frontend/src/utils/styleUtils.ts | 1 + src/frontend/tests/core/unit/dropdownComponent.spec.ts | 4 ++-- src/frontend/tests/core/unit/keyPairListComponent.spec.ts | 4 ++-- .../tests/extended/features/filterEdge-shard-1.spec.ts | 1 - 13 files changed, 14 insertions(+), 15 deletions(-) create mode 100644 src/backend/base/langflow/components/amazon/__init__.py rename src/backend/base/langflow/components/{embeddings/amazon_bedrock.py => amazon/amazon_bedrock_embedding.py} (100%) rename src/backend/base/langflow/components/{models/amazon_bedrock.py => amazon/amazon_bedrock_model.py} (100%) rename src/backend/base/langflow/components/{data => amazon}/s3_bucket_uploader.py (99%) diff --git a/src/backend/base/langflow/base/models/model_input_constants.py b/src/backend/base/langflow/base/models/model_input_constants.py index 45fe3b0be..7a1dc07f3 100644 --- a/src/backend/base/langflow/base/models/model_input_constants.py +++ b/src/backend/base/langflow/base/models/model_input_constants.py @@ -1,7 +1,7 @@ from typing_extensions import TypedDict from langflow.base.models.model import LCModelComponent -from langflow.components.models.amazon_bedrock import AmazonBedrockComponent +from langflow.components.amazon.amazon_bedrock_model import AmazonBedrockComponent from langflow.components.models.anthropic import AnthropicModelComponent from langflow.components.models.azure_openai import AzureChatOpenAIComponent from langflow.components.models.google_generative_ai import GoogleGenerativeAIComponent @@ -140,7 +140,7 @@ def _get_nvidia_inputs_and_fields(): def _get_amazon_bedrock_inputs_and_fields(): try: - from langflow.components.models.amazon_bedrock import AmazonBedrockComponent + from langflow.components.amazon.amazon_bedrock_model import AmazonBedrockComponent amazon_bedrock_inputs = get_filtered_inputs(AmazonBedrockComponent) except ImportError as e: diff --git a/src/backend/base/langflow/components/amazon/__init__.py b/src/backend/base/langflow/components/amazon/__init__.py new file mode 100644 index 000000000..f9bed4614 --- /dev/null +++ b/src/backend/base/langflow/components/amazon/__init__.py @@ -0,0 +1,5 @@ +from .amazon_bedrock_embedding import AmazonBedrockEmbeddingsComponent +from .amazon_bedrock_model import AmazonBedrockComponent +from .s3_bucket_uploader import S3BucketUploaderComponent + +__all__ = ["AmazonBedrockComponent", "AmazonBedrockEmbeddingsComponent", "S3BucketUploaderComponent"] diff --git a/src/backend/base/langflow/components/embeddings/amazon_bedrock.py b/src/backend/base/langflow/components/amazon/amazon_bedrock_embedding.py similarity index 100% rename from src/backend/base/langflow/components/embeddings/amazon_bedrock.py rename to src/backend/base/langflow/components/amazon/amazon_bedrock_embedding.py diff --git a/src/backend/base/langflow/components/models/amazon_bedrock.py b/src/backend/base/langflow/components/amazon/amazon_bedrock_model.py similarity index 100% rename from src/backend/base/langflow/components/models/amazon_bedrock.py rename to src/backend/base/langflow/components/amazon/amazon_bedrock_model.py diff --git a/src/backend/base/langflow/components/data/s3_bucket_uploader.py b/src/backend/base/langflow/components/amazon/s3_bucket_uploader.py similarity index 99% rename from src/backend/base/langflow/components/data/s3_bucket_uploader.py rename to src/backend/base/langflow/components/amazon/s3_bucket_uploader.py index c5299f7a9..7931d4512 100644 --- a/src/backend/base/langflow/components/data/s3_bucket_uploader.py +++ b/src/backend/base/langflow/components/amazon/s3_bucket_uploader.py @@ -51,7 +51,7 @@ class S3BucketUploaderComponent(Component): display_name = "S3 Bucket Uploader" description = "Uploads files to S3 bucket." - icon = "Globe" + icon = "Amazon" name = "s3bucketuploader" inputs = [ diff --git a/src/backend/base/langflow/components/data/__init__.py b/src/backend/base/langflow/components/data/__init__.py index 6db67934f..770713cca 100644 --- a/src/backend/base/langflow/components/data/__init__.py +++ b/src/backend/base/langflow/components/data/__init__.py @@ -3,7 +3,6 @@ from .csv_to_data import CSVToDataComponent from .directory import DirectoryComponent from .file import FileComponent from .json_to_data import JSONToDataComponent -from .s3_bucket_uploader import S3BucketUploaderComponent from .sql_executor import SQLExecutorComponent from .url import URLComponent from .webhook import WebhookComponent @@ -14,7 +13,6 @@ __all__ = [ "DirectoryComponent", "FileComponent", "JSONToDataComponent", - "S3BucketUploaderComponent", "SQLExecutorComponent", "URLComponent", "WebhookComponent", diff --git a/src/backend/base/langflow/components/embeddings/__init__.py b/src/backend/base/langflow/components/embeddings/__init__.py index fd8213e2d..f2cb48295 100644 --- a/src/backend/base/langflow/components/embeddings/__init__.py +++ b/src/backend/base/langflow/components/embeddings/__init__.py @@ -1,5 +1,4 @@ from .aiml import AIMLEmbeddingsComponent -from .amazon_bedrock import AmazonBedrockEmbeddingsComponent from .astra_vectorize import AstraVectorizeComponent from .azure_openai import AzureOpenAIEmbeddingsComponent from .cloudflare import CloudflareWorkersAIEmbeddingsComponent @@ -18,7 +17,6 @@ from .watsonx import WatsonxEmbeddingsComponent __all__ = [ "AIMLEmbeddingsComponent", - "AmazonBedrockEmbeddingsComponent", "AstraVectorizeComponent", "AzureOpenAIEmbeddingsComponent", "CloudflareWorkersAIEmbeddingsComponent", diff --git a/src/backend/base/langflow/components/models/__init__.py b/src/backend/base/langflow/components/models/__init__.py index 415c868c8..f71836d51 100644 --- a/src/backend/base/langflow/components/models/__init__.py +++ b/src/backend/base/langflow/components/models/__init__.py @@ -1,5 +1,4 @@ from .aiml import AIMLModelComponent -from .amazon_bedrock import AmazonBedrockComponent from .anthropic import AnthropicModelComponent from .azure_openai import AzureChatOpenAIComponent from .baidu_qianfan_chat import QianfanChatEndpointComponent @@ -25,7 +24,6 @@ from .xai import XAIModelComponent __all__ = [ "AIMLModelComponent", - "AmazonBedrockComponent", "AnthropicModelComponent", "AzureChatOpenAIComponent", "ChatOllamaComponent", diff --git a/src/backend/tests/unit/components/data/test_s3_uploader_component.py b/src/backend/tests/unit/components/data/test_s3_uploader_component.py index a690615fe..718830556 100644 --- a/src/backend/tests/unit/components/data/test_s3_uploader_component.py +++ b/src/backend/tests/unit/components/data/test_s3_uploader_component.py @@ -5,7 +5,7 @@ from pathlib import Path import boto3 import pytest -from langflow.components.data.s3_bucket_uploader import S3BucketUploaderComponent +from langflow.components.amazon.s3_bucket_uploader import S3BucketUploaderComponent from langflow.schema.data import Data from tests.base import ComponentTestBaseWithoutClient diff --git a/src/frontend/src/utils/styleUtils.ts b/src/frontend/src/utils/styleUtils.ts index eccf6758f..18ac9ccfc 100644 --- a/src/frontend/src/utils/styleUtils.ts +++ b/src/frontend/src/utils/styleUtils.ts @@ -567,6 +567,7 @@ export const SIDEBAR_CATEGORIES = [ ]; export const SIDEBAR_BUNDLES = [ + { display_name: "Amazon", name: "amazon", icon: "Amazon" }, { display_name: "Gmail", name: "gmail", icon: "Gmail" }, // Add apify { display_name: "Apify", name: "apify", icon: "Apify" }, diff --git a/src/frontend/tests/core/unit/dropdownComponent.spec.ts b/src/frontend/tests/core/unit/dropdownComponent.spec.ts index 3494461bb..b911287f9 100644 --- a/src/frontend/tests/core/unit/dropdownComponent.spec.ts +++ b/src/frontend/tests/core/unit/dropdownComponent.spec.ts @@ -17,12 +17,12 @@ test( await page.getByTestId("sidebar-search-input").click(); await page.getByTestId("sidebar-search-input").fill("amazon"); - await page.waitForSelector('[data-testid="modelsAmazon Bedrock"]', { + await page.waitForSelector('[data-testid="amazonAmazon Bedrock"]', { timeout: 3000, }); await page - .getByTestId("modelsAmazon Bedrock") + .getByTestId("amazonAmazon Bedrock") .first() .dragTo(page.locator('//*[@id="react-flow-id"]')); await page.mouse.up(); diff --git a/src/frontend/tests/core/unit/keyPairListComponent.spec.ts b/src/frontend/tests/core/unit/keyPairListComponent.spec.ts index 9e858a7f1..f835ef50d 100644 --- a/src/frontend/tests/core/unit/keyPairListComponent.spec.ts +++ b/src/frontend/tests/core/unit/keyPairListComponent.spec.ts @@ -15,12 +15,12 @@ test( await page.getByTestId("sidebar-search-input").click(); await page.getByTestId("sidebar-search-input").fill("amazon bedrock"); - await page.waitForSelector('[data-testid="modelsAmazon Bedrock"]', { + await page.waitForSelector('[data-testid="amazonAmazon Bedrock"]', { timeout: 3000, }); await page - .getByTestId("modelsAmazon Bedrock") + .getByTestId("amazonAmazon Bedrock") .dragTo(page.locator('//*[@id="react-flow-id"]')); await adjustScreenView(page); diff --git a/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts b/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts index 0301a9efb..925fda5c9 100644 --- a/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts +++ b/src/frontend/tests/extended/features/filterEdge-shard-1.spec.ts @@ -71,7 +71,6 @@ test( "outputsChat Output", "dataAPI Request", "vectorstoresAstra DB", - "embeddingsAmazon Bedrock Embeddings", "langchain_utilitiesTool Calling Agent", "langchain_utilitiesConversationChain", "memoriesAstra DB Chat Memory",