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)