From 5070a1d83e564f0211f41bbce8cd2f2c30dfb23b Mon Sep 17 00:00:00 2001 From: Dev Khant Date: Sat, 22 Jun 2024 14:08:29 +0530 Subject: [PATCH] Change HF embedding library (#1440) --- Makefile | 2 +- embedchain/embedder/huggingface.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index ad2ddd5f..5f10b5f7 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ install: install_all: poetry install --all-extras - poetry run pip install pinecone-text pinecone-client langchain-anthropic "unstructured[local-inference, all-docs]" ollama deepgram-sdk==3.2.7 + poetry run pip install pinecone-text pinecone-client langchain-anthropic "unstructured[local-inference, all-docs]" ollama deepgram-sdk==3.2.7 langchain-huggingface install_es: poetry install --extras elasticsearch diff --git a/embedchain/embedder/huggingface.py b/embedchain/embedder/huggingface.py index 51c3322b..cd11e5dd 100644 --- a/embedchain/embedder/huggingface.py +++ b/embedchain/embedder/huggingface.py @@ -2,7 +2,14 @@ import os from typing import Optional from langchain_community.embeddings import HuggingFaceEmbeddings -from langchain_community.embeddings.huggingface import HuggingFaceInferenceAPIEmbeddings + +try: + from langchain_huggingface import HuggingFaceEndpointEmbeddings +except ModuleNotFoundError: + raise ModuleNotFoundError( + "The required dependencies for HuggingFaceHub are not installed." + "Please install with `pip install langchain_huggingface`" + ) from None from embedchain.config import BaseEmbedderConfig from embedchain.embedder.base import BaseEmbedder @@ -19,10 +26,9 @@ class HuggingFaceEmbedder(BaseEmbedder): "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"), + embeddings = HuggingFaceEndpointEmbeddings( + model=self.config.endpoint, + huggingfacehub_api_token=self.config.api_key or os.getenv("HUGGINGFACE_ACCESS_TOKEN"), ) else: embeddings = HuggingFaceEmbeddings(model_name=self.config.model)