@@ -91,11 +91,13 @@ def get_streaming_llm(self):
9191 )
9292
9393 def get_embedding_model (self ):
94- dimensions = (
95- int (self .env_helper .AZURE_SEARCH_DIMENSIONS )
96- if self .env_helper .AZURE_SEARCH_DIMENSIONS
97- else None
98- )
94+ # Only pass dimensions for models that support it (text-embedding-3-*)
95+ # text-embedding-ada-002 does NOT support the dimensions parameter
96+ supports_dimensions = "text-embedding-3" in self .embedding_model .lower ()
97+ dimensions = None
98+ if supports_dimensions and self .env_helper .AZURE_SEARCH_DIMENSIONS :
99+ dimensions = int (self .env_helper .AZURE_SEARCH_DIMENSIONS )
100+
99101 if self .auth_type_keys :
100102 return AzureOpenAIEmbeddings (
101103 azure_endpoint = self .env_helper .AZURE_OPENAI_ENDPOINT ,
@@ -114,15 +116,19 @@ def get_embedding_model(self):
114116 )
115117
116118 def generate_embeddings (self , input : Union [str , list [int ]]) -> List [float ]:
117- dimensions = (
118- int (self .env_helper .AZURE_SEARCH_DIMENSIONS )
119- if self .env_helper .AZURE_SEARCH_DIMENSIONS
120- else None
121- )
119+ # Only pass dimensions for models that support it (text-embedding-3-*)
120+ # text-embedding-ada-002 does NOT support the dimensions parameter
121+ supports_dimensions = "text-embedding-3" in self .embedding_model .lower ()
122+ dimensions = None
123+ if supports_dimensions and self .env_helper .AZURE_SEARCH_DIMENSIONS :
124+ dimensions = int (self .env_helper .AZURE_SEARCH_DIMENSIONS )
125+
126+ kwargs = {"input" : [input ], "model" : self .embedding_model }
127+ if dimensions is not None :
128+ kwargs ["dimensions" ] = dimensions
129+
122130 return (
123- self .openai_client .embeddings .create (
124- input = [input ], model = self .embedding_model , dimensions = dimensions
125- )
131+ self .openai_client .embeddings .create (** kwargs )
126132 .data [0 ]
127133 .embedding
128134 )
0 commit comments