66)
77from azure .search .documents .indexes .models import (
88 AzureOpenAIEmbeddingSkill ,
9- AzureOpenAIParameters ,
10- AzureOpenAIVectorizer ,
119 FieldMapping ,
1210 IndexProjectionMode ,
1311 InputFieldMappingEntry ,
1412 OutputFieldMappingEntry ,
1513 SearchIndexer ,
1614 SearchIndexerDataContainer ,
1715 SearchIndexerDataSourceConnection ,
18- SearchIndexerIndexProjections ,
16+ SearchIndexerDataSourceType ,
17+ SearchIndexerIndexProjection ,
1918 SearchIndexerIndexProjectionSelector ,
2019 SearchIndexerIndexProjectionsParameters ,
2120 SearchIndexerSkillset ,
@@ -67,6 +66,7 @@ async def create_embedding_skill(self, index_name: str):
6766 skillset_name = f"{ index_name } -skillset"
6867
6968 split_skill = SplitSkill (
69+ name = f"{ index_name } -split-skill" ,
7070 description = "Split skill to chunk documents" ,
7171 text_split_mode = "pages" ,
7272 context = "/document" ,
@@ -82,17 +82,20 @@ async def create_embedding_skill(self, index_name: str):
8282 raise ValueError ("Expecting Azure Open AI instance" )
8383
8484 embedding_skill = AzureOpenAIEmbeddingSkill (
85+ name = f"{ index_name } -embedding-skill" ,
8586 description = "Skill to generate embeddings via Azure OpenAI" ,
8687 context = "/document/pages/*" ,
87- resource_uri = f"https://{ self .embeddings .open_ai_service } .openai.azure.com" ,
88- deployment_id = self .embeddings .open_ai_deployment ,
88+ resource_url = f"https://{ self .embeddings .open_ai_service } .openai.azure.com" ,
89+ deployment_name = self .embeddings .open_ai_deployment ,
90+ model_name = self .embeddings .open_ai_model_name ,
91+ dimensions = self .embeddings .open_ai_dimensions ,
8992 inputs = [
9093 InputFieldMappingEntry (name = "text" , source = "/document/pages/*" ),
9194 ],
9295 outputs = [OutputFieldMappingEntry (name = "embedding" , target_name = "vector" )],
9396 )
9497
95- index_projections = SearchIndexerIndexProjections (
98+ index_projection = SearchIndexerIndexProjection (
9699 selectors = [
97100 SearchIndexerIndexProjectionSelector (
98101 target_index_name = index_name ,
@@ -114,7 +117,7 @@ async def create_embedding_skill(self, index_name: str):
114117 name = skillset_name ,
115118 description = "Skillset to chunk documents and generate embeddings" ,
116119 skills = [split_skill , embedding_skill ],
117- index_projections = index_projections ,
120+ index_projection = index_projection ,
118121 )
119122
120123 return skillset
@@ -132,25 +135,14 @@ async def setup(self):
132135 if self .embeddings is None :
133136 raise ValueError ("Expecting Azure Open AI instance" )
134137
135- await search_manager .create_index (
136- vectorizers = [
137- AzureOpenAIVectorizer (
138- name = f"{ self .search_info .index_name } -vectorizer" ,
139- kind = "azureOpenAI" ,
140- azure_open_ai_parameters = AzureOpenAIParameters (
141- resource_uri = f"https://{ self .embeddings .open_ai_service } .openai.azure.com" ,
142- deployment_id = self .embeddings .open_ai_deployment ,
143- ),
144- ),
145- ]
146- )
138+ await search_manager .create_index ()
147139
148140 # create indexer client
149141 ds_client = self .search_info .create_search_indexer_client ()
150142 ds_container = SearchIndexerDataContainer (name = self .blob_manager .container )
151143 data_source_connection = SearchIndexerDataSourceConnection (
152144 name = f"{ self .search_info .index_name } -blob" ,
153- type = "azureblob" ,
145+ type = SearchIndexerDataSourceType . AZURE_BLOB ,
154146 connection_string = self .blob_manager .get_managedidentity_connectionstring (),
155147 container = ds_container ,
156148 data_deletion_detection_policy = NativeBlobSoftDeleteDeletionDetectionPolicy (),
0 commit comments