def create_sample_index()

in demo-python/code/community-integration/ragas/lib/utils.py [0:0]


def create_sample_index(
        index_client: SearchIndexClient,
        index_name: str,
        azure_openai_endpoint: str,
        azure_openai_ada002_embedding_deployment: str,
        azure_openai_3_large_embedding_deployment: str,
        azure_openai_key: Optional[str] = None
    ):
    # Create a search index  
    fields = [  
        SearchField(name="parent_id", type=SearchFieldDataType.String, sortable=True, filterable=True, facetable=True),  
        SearchField(name="title", type=SearchFieldDataType.String),  
        SearchField(name="chunk_id", type=SearchFieldDataType.String, key=True, sortable=True, filterable=True, facetable=True, analyzer_name="keyword"),  
        SearchField(name="chunk", type=SearchFieldDataType.String, sortable=False, filterable=False, facetable=False),  
        SearchField(name="vector_ada002", type=SearchFieldDataType.Collection(SearchFieldDataType.Single), vector_search_dimensions=1536, vector_search_profile_name="hnsw_ada002"),
        SearchField(name="vector_3_large", type=SearchFieldDataType.Collection(SearchFieldDataType.Single), vector_search_dimensions=3072, vector_search_profile_name="hnsw_3_large")
    ]  
  
    # Configure the vector search configuration  
    vector_search = VectorSearch(  
        algorithms=[  
            HnswAlgorithmConfiguration(  
                name="hnsw",  
                parameters=HnswParameters()
            )
        ],  
        profiles=[  
            VectorSearchProfile(  
                name="hnsw_ada002",  
                algorithm_configuration_name="hnsw",  
                vectorizer="ada002",  
            ),
            VectorSearchProfile(  
                name="hnsw_3_large",  
                algorithm_configuration_name="hnsw",  
                vectorizer="3_large",  
            ),
        ],  
        vectorizers=[  
            AzureOpenAIVectorizer(  
                name="ada002",  
                kind="azureOpenAI",  
                azure_open_ai_parameters=AzureOpenAIParameters(  
                    resource_uri=azure_openai_endpoint,  
                    deployment_id=azure_openai_ada002_embedding_deployment,  
                    api_key=azure_openai_key,
                    model_name="text-embedding-ada-002"
                )
            ),
            AzureOpenAIVectorizer(  
                name="3_large",  
                kind="azureOpenAI",  
                azure_open_ai_parameters=AzureOpenAIParameters(  
                    resource_uri=azure_openai_endpoint,  
                    deployment_id=azure_openai_3_large_embedding_deployment,  
                    api_key=azure_openai_key,
                    model_name="text-embedding-3-large"
                )
            )  
        ],  
    )

    semantic_config = SemanticConfiguration(  
        name="my-semantic-config",  
        prioritized_fields=SemanticPrioritizedFields(  
            content_fields=[SemanticField(field_name="chunk")]  
        ))

    # Create the semantic search with the configuration  
    semantic_search = SemanticSearch(configurations=[semantic_config])  

    # Create the search index
    index = SearchIndex(name=index_name, fields=fields, vector_search=vector_search, semantic_search=semantic_search)  
    return index_client.create_or_update_index(index)