infrastructure/terraform/modules/aoai/aoai.tf (39 lines of code) (raw):
resource "azurerm_cognitive_account" "cognitive_service" {
name = var.cognitive_service_name
location = var.location
resource_group_name = var.resource_group_name
tags = var.tags
identity {
type = "SystemAssigned"
}
custom_subdomain_name = var.cognitive_service_name
# customer_managed_key {
# key_vault_key_id = var.customer_managed_key.key_vault_key_versionless_id
# identity_client_id = var.customer_managed_key.user_assigned_identity_client_id
# }
dynamic_throttling_enabled = false
fqdns = [
# "${reverse(split(var.customer_managed_key.key_vault_id, "/"))[0]}.vault.azure.net",
]
kind = var.cognitive_service_kind
local_auth_enabled = false
network_acls {
default_action = "Allow"
ip_rules = []
}
outbound_network_access_restricted = false
public_network_access_enabled = true
sku_name = var.cognitive_service_sku
}
# # Requires subscription to be onboarded
# resource "azapi_resource" "no_moderation_policy" {
# type = "Microsoft.CognitiveServices/accounts/raiPolicies@2023-06-01-preview"
# name = "NoModerationPolicy"
# parent_id = azurerm_cognitive_account.cognitive_service.id
# schema_validation_enabled = false
# body = jsonencode({
# displayName = ""
# properties = {
# basePolicyName = "Microsoft.Default"
# type = "UserManaged"
# contentFilters = [
# { name = "hate", blocking = false, enabled = true, allowedContentLevel = "High", source = "Prompt" },
# { name = "sexual", blocking = false, enabled = true, allowedContentLevel = "High", source = "Prompt" },
# { name = "selfharm", blocking = false, enabled = true, allowedContentLevel = "High", source = "Prompt" },
# { name = "violence", blocking = false, enabled = true, allowedContentLevel = "High", source = "Prompt" },
# { name = "hate", blocking = false, enabled = true, allowedContentLevel = "High", source = "Completion" },
# { name = "sexual", blocking = false, enabled = true, allowedContentLevel = "High", source = "Completion" },
# { name = "selfharm", blocking = false, enabled = true, allowedContentLevel = "High", source = "Completion" },
# { name = "violence", blocking = false, enabled = true, allowedContentLevel = "High", source = "Completion" },
# ]
# }
# })
# }
resource "azurerm_cognitive_deployment" "cognitive_deployments" {
for_each = var.cognitive_service_deployments
name = each.value.model_name
cognitive_account_id = azurerm_cognitive_account.cognitive_service.id
version_upgrade_option = each.value.version_upgrade_option
model {
format = "OpenAI"
name = each.value.model_name
version = each.value.model_version
}
scale {
type = each.value.scale_type
size = each.value.scale_size
family = each.value.scale_family
capacity = each.value.scale_capacity
}
}