Adding model_kwargs for huggingface embedders. (#1450)

This commit is contained in:
Pranav Puranik
2024-06-29 14:37:31 -05:00
committed by GitHub
parent 50c0285cb2
commit 7c24601d0f
6 changed files with 29 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
from typing import Optional
from typing import Any, Dict, Optional
from embedchain.helpers.json_serializable import register_deserializable
@@ -13,6 +13,7 @@ class BaseEmbedderConfig:
endpoint: Optional[str] = None,
api_key: Optional[str] = None,
api_base: Optional[str] = None,
model_kwargs: Optional[Dict[str, Any]] = None,
):
"""
Initialize a new instance of an embedder config class.
@@ -29,6 +30,8 @@ class BaseEmbedderConfig:
:type api_key: Optional[str], optional
:param api_base: huggingface api base, defaults to None
:type api_base: Optional[str], optional
:param model_kwargs: key-value arguments for the embedding model, defaults a dict inside init.
:type model_kwargs: Optional[Dict[str, Any]], defaults a dict inside init.
"""
self.model = model
self.deployment_name = deployment_name
@@ -36,3 +39,4 @@ class BaseEmbedderConfig:
self.endpoint = endpoint
self.api_key = api_key
self.api_base = api_base
self.model_kwargs = model_kwargs or {}

View File

@@ -31,7 +31,8 @@ class HuggingFaceEmbedder(BaseEmbedder):
huggingfacehub_api_token=self.config.api_key or os.getenv("HUGGINGFACE_ACCESS_TOKEN"),
)
else:
embeddings = HuggingFaceEmbeddings(model_name=self.config.model)
embeddings = HuggingFaceEmbeddings(model_name=self.config.model, model_kwargs=self.config.model_kwargs)
embedding_fn = BaseEmbedder._langchain_default_concept(embeddings)
self.set_embedding_fn(embedding_fn=embedding_fn)

View File

@@ -474,6 +474,7 @@ def validate_config(config_data):
Optional("vector_dimension"): int,
Optional("base_url"): str,
Optional("endpoint"): str,
Optional("model_kwargs"): dict,
},
},
Optional("embedding_model"): {