Add HF endpoint in embedder (#1436)

This commit is contained in:
Dev Khant
2024-06-21 21:27:21 +05:30
committed by GitHub
parent b43a116b3c
commit f6ddd5ffc5
4 changed files with 28 additions and 2 deletions

View File

@@ -1,6 +1,8 @@
import os
from typing import Optional
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.embeddings.huggingface import HuggingFaceInferenceAPIEmbeddings
from embedchain.config import BaseEmbedderConfig
from embedchain.embedder.base import BaseEmbedder
@@ -11,7 +13,19 @@ class HuggingFaceEmbedder(BaseEmbedder):
def __init__(self, config: Optional[BaseEmbedderConfig] = None):
super().__init__(config=config)
embeddings = HuggingFaceEmbeddings(model_name=self.config.model)
if self.config.endpoint:
if not self.config.api_key and "HUGGINGFACE_ACCESS_TOKEN" not in os.environ:
raise ValueError(
"Please set the HUGGINGFACE_ACCESS_TOKEN environment variable or pass API Key in the config."
)
embeddings = HuggingFaceInferenceAPIEmbeddings(
model_name=self.config.model,
api_url=self.config.endpoint,
api_key=self.config.api_key or os.getenv("HUGGINGFACE_ACCESS_TOKEN"),
)
else:
embeddings = HuggingFaceEmbeddings(model_name=self.config.model)
embedding_fn = BaseEmbedder._langchain_default_concept(embeddings)
self.set_embedding_fn(embedding_fn=embedding_fn)