feat: add cloudflare workers ai embeddings (#3697)
This commit is contained in:
parent
e38af369e5
commit
5307f0683f
6 changed files with 108 additions and 0 deletions
|
|
@ -2,6 +2,7 @@ from .aiml import AIMLEmbeddingsComponent
|
|||
from .amazon_bedrock import AmazonBedrockEmbeddingsComponent
|
||||
from .astra_vectorize import AstraVectorizeComponent
|
||||
from .azure_openai import AzureOpenAIEmbeddingsComponent
|
||||
from .cloudflare import CloudflareWorkersAIEmbeddingsComponent
|
||||
from .cohere import CohereEmbeddingsComponent
|
||||
from .google_generative_ai import GoogleGenerativeAIEmbeddingsComponent
|
||||
from .huggingface_inference_api import HuggingFaceInferenceAPIEmbeddingsComponent
|
||||
|
|
@ -19,6 +20,7 @@ __all__ = [
|
|||
"AmazonBedrockEmbeddingsComponent",
|
||||
"AstraVectorizeComponent",
|
||||
"AzureOpenAIEmbeddingsComponent",
|
||||
"CloudflareWorkersAIEmbeddingsComponent",
|
||||
"CohereEmbeddingsComponent",
|
||||
"EmbeddingSimilarityComponent",
|
||||
"GoogleGenerativeAIEmbeddingsComponent",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,80 @@
|
|||
from langchain_community.embeddings.cloudflare_workersai import CloudflareWorkersAIEmbeddings
|
||||
|
||||
from langflow.base.models.model import LCModelComponent
|
||||
from langflow.field_typing import Embeddings
|
||||
from langflow.io import BoolInput, DictInput, IntInput, MessageTextInput, Output, SecretStrInput
|
||||
|
||||
|
||||
class CloudflareWorkersAIEmbeddingsComponent(LCModelComponent):
|
||||
display_name: str = "Cloudflare Workers AI Embeddings"
|
||||
description: str = "Generate embeddings using Cloudflare Workers AI models."
|
||||
documentation: str = "https://python.langchain.com/docs/integrations/text_embedding/cloudflare_workersai/"
|
||||
icon = "Cloudflare"
|
||||
name = "CloudflareWorkersAIEmbeddings"
|
||||
|
||||
inputs = [
|
||||
MessageTextInput(
|
||||
name="account_id",
|
||||
display_name="Cloudflare account ID",
|
||||
info="Find your account ID https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/#find-account-id-workers-and-pages",
|
||||
required=True,
|
||||
),
|
||||
SecretStrInput(
|
||||
name="api_token",
|
||||
display_name="Cloudflare API token",
|
||||
info="Create an API token https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",
|
||||
required=True,
|
||||
),
|
||||
MessageTextInput(
|
||||
name="model_name",
|
||||
display_name="Model Name",
|
||||
info="List of supported models https://developers.cloudflare.com/workers-ai/models/#text-embeddings",
|
||||
required=True,
|
||||
value="@cf/baai/bge-base-en-v1.5"
|
||||
),
|
||||
BoolInput(
|
||||
name="strip_new_lines",
|
||||
display_name="Strip New Lines",
|
||||
advanced=True,
|
||||
value=True,
|
||||
),
|
||||
IntInput(
|
||||
name="batch_size",
|
||||
display_name="Batch Size",
|
||||
advanced=True,
|
||||
value=50,
|
||||
),
|
||||
MessageTextInput(
|
||||
name="api_base_url",
|
||||
display_name="Cloudflare API base URL",
|
||||
advanced=True,
|
||||
value="https://api.cloudflare.com/client/v4/accounts",
|
||||
),
|
||||
DictInput(
|
||||
name="headers",
|
||||
display_name="Headers",
|
||||
info="Additional request headers",
|
||||
is_list=True,
|
||||
advanced=True,
|
||||
),
|
||||
]
|
||||
|
||||
outputs = [
|
||||
Output(display_name="Embeddings", name="embeddings", method="build_embeddings"),
|
||||
]
|
||||
|
||||
def build_embeddings(self) -> Embeddings:
|
||||
try:
|
||||
embeddings = CloudflareWorkersAIEmbeddings(
|
||||
account_id=self.account_id,
|
||||
api_base_url=self.api_base_url,
|
||||
api_token=self.api_token,
|
||||
batch_size=self.batch_size,
|
||||
headers=self.headers,
|
||||
model_name=self.model_name,
|
||||
strip_new_lines=self.strip_new_lines,
|
||||
)
|
||||
except Exception as e:
|
||||
raise ValueError(f"Could not connect to CloudflareWorkersAIEmbeddings API: {str(e)}") from e
|
||||
|
||||
return embeddings
|
||||
Loading…
Add table
Add a link
Reference in a new issue