From 553e3a0b122a37c0ac4beb9f08427442a3f808a5 Mon Sep 17 00:00:00 2001 From: Edwin Jose Date: Wed, 12 Feb 2025 11:14:42 -0500 Subject: [PATCH] fix: improved the huggingface emdeddings component, to handle local inference and serverless inference (#6292) Update huggingface_inference_api.py --- .../embeddings/huggingface_inference_api.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/backend/base/langflow/components/embeddings/huggingface_inference_api.py b/src/backend/base/langflow/components/embeddings/huggingface_inference_api.py index 4ee80b081..762b92765 100644 --- a/src/backend/base/langflow/components/embeddings/huggingface_inference_api.py +++ b/src/backend/base/langflow/components/embeddings/huggingface_inference_api.py @@ -2,6 +2,8 @@ from urllib.parse import urlparse import requests from langchain_community.embeddings.huggingface import HuggingFaceInferenceAPIEmbeddings + +# Next update: use langchain_huggingface from pydantic import SecretStr from tenacity import retry, stop_after_attempt, wait_fixed @@ -21,7 +23,7 @@ class HuggingFaceInferenceAPIEmbeddingsComponent(LCEmbeddingsModel): SecretStrInput( name="api_key", display_name="API Key", - advanced=True, + advanced=False, info="Required for non-local inference endpoints. Local inference does not require an API Key.", ), MessageTextInput( @@ -83,11 +85,14 @@ class HuggingFaceInferenceAPIEmbeddingsComponent(LCEmbeddingsModel): def build_embeddings(self) -> Embeddings: api_url = self.get_api_url() - is_local_url = api_url.startswith(("http://localhost", "http://127.0.0.1")) + is_local_url = ( + api_url.startswith(("http://localhost", "http://127.0.0.1", "http://0.0.0.0", "http://docker")) + or "huggingface.co" not in api_url.lower() + ) if not self.api_key and is_local_url: self.validate_inference_endpoint(api_url) - api_key = SecretStr("DummyAPIKeyForLocalDeployment") + api_key = SecretStr("APIKeyForLocalDeployment") elif not self.api_key: msg = "API Key is required for non-local inference endpoints" raise ValueError(msg)