Skip to content

Commit f73a77a

Browse files
authored
Merge pull request #1 from kandakji/bedrock-embedding-custom-component
Bedrock Embeddings custom component
2 parents 06dedcc + 31245c2 commit f73a77a

File tree

4 files changed

+48
-2
lines changed

4 files changed

+48
-2
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from typing import Optional
2+
from langflow import CustomComponent
3+
4+
from langchain.embeddings import BedrockEmbeddings
5+
from langchain.embeddings.base import Embeddings
6+
7+
8+
class AmazonBedrockEmeddingsComponent(CustomComponent):
9+
"""
10+
A custom component for implementing an Embeddings Model using Amazon Bedrock.
11+
"""
12+
13+
display_name: str = "Amazon Bedrock Embeddings"
14+
description: str = "Embeddings model from Amazon Bedrock."
15+
documentation = "https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/bedrock"
16+
beta = True
17+
18+
def build_config(self):
19+
return {
20+
"model_id": {
21+
"display_name": "Model Id",
22+
"options": ["amazon.titan-embed-text-v1"],
23+
},
24+
"credentials_profile_name": {"display_name": "Credentials Profile Name"},
25+
"endpoint_url": {"display_name": "Bedrock Endpoint URL"},
26+
"region_name": {"display_name": "AWS Region"},
27+
"code": {"show": False},
28+
}
29+
30+
def build(
31+
self,
32+
model_id: str = "amazon.titan-embed-text-v1",
33+
credentials_profile_name: Optional[str] = None,
34+
endpoint_url: Optional[str] = None,
35+
region_name: Optional[str] = None,
36+
) -> Embeddings:
37+
try:
38+
output = BedrockEmbeddings(
39+
credentials_profile_name=credentials_profile_name,
40+
model_id=model_id,
41+
endpoint_url=endpoint_url,
42+
region_name=region_name,
43+
) # type: ignore
44+
except Exception as e:
45+
raise ValueError("Could not connect to AmazonBedrock API.") from e
46+
return output

src/backend/langflow/components/embeddings/__init__.py

Whitespace-only changes.

src/backend/langflow/config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ embeddings:
106106
documentation: "https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/cohere"
107107
VertexAIEmbeddings:
108108
documentation: "https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/google_vertex_ai_palm"
109-
BedrockEmbeddings:
109+
AmazonBedrockEmbeddings:
110110
documentation: "https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/bedrock"
111111

112112
llms:

src/frontend/src/utils/styleUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ export const nodeIconsLucide: iconsType = {
200200
ArrowUpToLine: ArrowUpToLine,
201201
Chroma: ChromaIcon,
202202
AirbyteJSONLoader: AirbyteIcon,
203-
BedrockEmbeddings: AWSIcon,
203+
AmazonBedrockEmbeddings: AWSIcon,
204204
Anthropic: AnthropicIcon,
205205
ChatAnthropic: AnthropicIcon,
206206
BingSearchAPIWrapper: BingIcon,

0 commit comments

Comments
 (0)