[feat] add embedding dimensions parameters to openai models (#2146)
Add embedding dimensions parameters to openai models
This commit is contained in:
parent
5ce1192a1b
commit
061809a94e
2 changed files with 15 additions and 0 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
|
from typing import Optional
|
||||||
from langchain_core.embeddings import Embeddings
|
from langchain_core.embeddings import Embeddings
|
||||||
from langchain_openai import AzureOpenAIEmbeddings
|
from langchain_openai import AzureOpenAIEmbeddings
|
||||||
from pydantic.v1 import SecretStr
|
from pydantic.v1 import SecretStr
|
||||||
|
|
@ -44,6 +45,11 @@ class AzureOpenAIEmbeddingsComponent(CustomComponent):
|
||||||
"password": True,
|
"password": True,
|
||||||
},
|
},
|
||||||
"code": {"show": False},
|
"code": {"show": False},
|
||||||
|
"dimensions": {
|
||||||
|
"display_name": "Dimensions",
|
||||||
|
"info": "The number of dimensions the resulting output embeddings should have. Only supported by certain models.",
|
||||||
|
"advanced": True,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def build(
|
def build(
|
||||||
|
|
@ -52,6 +58,7 @@ class AzureOpenAIEmbeddingsComponent(CustomComponent):
|
||||||
azure_deployment: str,
|
azure_deployment: str,
|
||||||
api_version: str,
|
api_version: str,
|
||||||
api_key: str,
|
api_key: str,
|
||||||
|
dimensions: Optional[int] = None,
|
||||||
) -> Embeddings:
|
) -> Embeddings:
|
||||||
if api_key:
|
if api_key:
|
||||||
azure_api_key = SecretStr(api_key)
|
azure_api_key = SecretStr(api_key)
|
||||||
|
|
@ -63,6 +70,7 @@ class AzureOpenAIEmbeddingsComponent(CustomComponent):
|
||||||
azure_deployment=azure_deployment,
|
azure_deployment=azure_deployment,
|
||||||
api_version=api_version,
|
api_version=api_version,
|
||||||
api_key=azure_api_key,
|
api_key=azure_api_key,
|
||||||
|
dimensions=dimensions,
|
||||||
)
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,11 @@ class OpenAIEmbeddingsComponent(CustomComponent):
|
||||||
"advanced": True,
|
"advanced": True,
|
||||||
},
|
},
|
||||||
"tiktoken_enable": {"display_name": "TikToken Enable", "advanced": True},
|
"tiktoken_enable": {"display_name": "TikToken Enable", "advanced": True},
|
||||||
|
"dimensions": {
|
||||||
|
"display_name": "Dimensions",
|
||||||
|
"info": "The number of dimensions the resulting output embeddings should have. Only supported by certain models.",
|
||||||
|
"advanced": True,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def build(
|
def build(
|
||||||
|
|
@ -109,6 +114,7 @@ class OpenAIEmbeddingsComponent(CustomComponent):
|
||||||
skip_empty: bool = False,
|
skip_empty: bool = False,
|
||||||
tiktoken_enable: bool = True,
|
tiktoken_enable: bool = True,
|
||||||
tiktoken_model_name: Optional[str] = None,
|
tiktoken_model_name: Optional[str] = None,
|
||||||
|
dimensions: Optional[int] = None,
|
||||||
) -> Embeddings:
|
) -> Embeddings:
|
||||||
# This is to avoid errors with Vector Stores (e.g Chroma)
|
# This is to avoid errors with Vector Stores (e.g Chroma)
|
||||||
if disallowed_special == ["all"]:
|
if disallowed_special == ["all"]:
|
||||||
|
|
@ -140,4 +146,5 @@ class OpenAIEmbeddingsComponent(CustomComponent):
|
||||||
show_progress_bar=show_progress_bar,
|
show_progress_bar=show_progress_bar,
|
||||||
skip_empty=skip_empty,
|
skip_empty=skip_empty,
|
||||||
tiktoken_model_name=tiktoken_model_name,
|
tiktoken_model_name=tiktoken_model_name,
|
||||||
|
dimensions=dimensions,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue