Skip to content

Commit 604ff86

Browse files
commit of description
1 parent b1a1f37 commit 604ff86

5 files changed

Lines changed: 435 additions & 1 deletion

File tree

infra/avm/main.bicep

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1406,52 +1406,145 @@ output resourceGroupName string = resourceGroup().name
14061406
@description('The default url of the website to connect to the Multi-Agent Custom Automation Engine solution.')
14071407
output webSiteDefaultHostname string = webSite.outputs.defaultHostname
14081408

1409+
// Storage
1410+
@description('The blob service endpoint of the deployed storage account.')
14091411
output AZURE_STORAGE_BLOB_URL string = storage_account.outputs.serviceEndpoints.blob
1412+
1413+
@description('The name of the deployed storage account used for content pack datasets and runtime artifacts.')
14101414
output AZURE_STORAGE_ACCOUNT_NAME string = storageAccountName
1415+
1416+
// Azure AI Search
1417+
@description('The endpoint URL of the deployed Azure AI Search service.')
14111418
output AZURE_AI_SEARCH_ENDPOINT string = ai_search.outputs.endpoint
1419+
1420+
@description('The name of the deployed Azure AI Search service.')
14121421
output AZURE_AI_SEARCH_NAME string = ai_search.outputs.name
14131422

1423+
// Cosmos DB
1424+
@description('The document endpoint of the deployed Cosmos DB account used for agent memory and session state.')
14141425
output COSMOSDB_ENDPOINT string = cosmosDBModule.outputs.endpoint
1426+
1427+
@description('The name of the Cosmos DB SQL database used by the backend.')
14151428
output COSMOSDB_DATABASE string = cosmosDbDatabaseName
1429+
1430+
@description('The name of the Cosmos DB container used to persist agent memory.')
14161431
output COSMOSDB_CONTAINER string = cosmosDbDatabaseMemoryContainerName
1432+
1433+
// Azure OpenAI
1434+
@description('The Azure OpenAI endpoint exposed by the AI Foundry account.')
14171435
output AZURE_OPENAI_ENDPOINT string = aiFoundryOpenAIEndpoint
1436+
1437+
@description('The default GPT chat-completion deployment name used by the backend.')
14181438
output AZURE_OPENAI_DEPLOYMENT_NAME string = gptModelName
1439+
1440+
@description('The deployment name of the GPT-4.1 model used for Responsible AI / higher-quality completions.')
14191441
output AZURE_OPENAI_RAI_DEPLOYMENT_NAME string = gpt4_1ModelName
1442+
1443+
@description('The Azure OpenAI REST API version used by the backend SDK clients.')
14201444
output AZURE_OPENAI_API_VERSION string = azureOpenaiAPIVersion
1445+
// AI / Foundry context
1446+
@description('The subscription ID hosting the AI Foundry / AI Services resource.')
14211447
output AZURE_AI_SUBSCRIPTION_ID string = subscription().subscriptionId
1448+
1449+
@description('The resource group hosting the AI Foundry / AI Services resource.')
14221450
output AZURE_AI_RESOURCE_GROUP string = resourceGroup().name
1451+
1452+
@description('The name of the Azure AI Foundry project used by the backend.')
14231453
output AZURE_AI_PROJECT_NAME string = aiFoundryAiProjectName
1454+
1455+
@description('The model deployment name used by the AI Foundry agent runtime.')
14241456
output AZURE_AI_AGENT_MODEL_DEPLOYMENT_NAME string = gptModelName
1457+
1458+
@description('The application environment label propagated to runtime container settings.')
14251459
output APP_ENV string = 'Prod'
1460+
1461+
@description('The resource ID of the AI Foundry (AI Services) account backing this deployment.')
14261462
output AI_FOUNDRY_RESOURCE_ID string = aiFoundryResourceId
1463+
1464+
@description('The name of the deployed Cosmos DB account.')
14271465
output COSMOSDB_ACCOUNT_NAME string = cosmosDbResourceName
1466+
1467+
@description('Alias for AZURE_AI_SEARCH_ENDPOINT — kept for backward compatibility with seed scripts and the backend.')
14281468
output AZURE_SEARCH_ENDPOINT string = ai_search.outputs.endpoint
1469+
@description('The client ID of the user-assigned managed identity used by backend, MCP, and frontend workloads.')
14291470
output AZURE_CLIENT_ID string = managed_identity.outputs.clientId
1471+
1472+
@description('The Microsoft Entra ID tenant ID used for token acquisition by all workloads.')
14301473
output AZURE_TENANT_ID string = tenant().tenantId
1474+
1475+
@description('The default scope used when requesting tokens for Azure Cognitive Services / AI Services.')
14311476
output AZURE_COGNITIVE_SERVICES string = 'https://cognitiveservices.azure.com/.default'
1477+
1478+
@description('The deployment name of the reasoning model used by the orchestrator/manager agent.')
14321479
output ORCHESTRATOR_MODEL_NAME string = gptReasoningModelName
1480+
1481+
// MCP server
1482+
@description('The configured name of the MCP server exposed by the deployment.')
14331483
output MCP_SERVER_NAME string = 'MacaeMcpServer'
1484+
1485+
@description('The human-readable description of the MCP server exposed by the deployment.')
14341486
output MCP_SERVER_DESCRIPTION string = 'MCP server with greeting, HR, and planning tools'
1487+
1488+
@description('JSON-serialized list of model deployment names supported by this deployment.')
14351489
output SUPPORTED_MODELS string = string(supportedModels)
1490+
1491+
@description('The base URL of the backend Container App (used by the frontend reverse proxy).')
14361492
output BACKEND_URL string = 'https://${containerApp.outputs.fqdn}'
1493+
1494+
@description('The endpoint of the AI Foundry project used by backend SDK clients.')
14371495
output AZURE_AI_PROJECT_ENDPOINT string = aiFoundryAiProjectEndpoint
1496+
1497+
@description('The endpoint used by the AI Foundry agent runtime — same value as the project endpoint.')
14381498
output AZURE_AI_AGENT_ENDPOINT string = aiFoundryAiProjectEndpoint
14391499

1500+
@description('The name of the AI Foundry / AI Services account resource.')
14401501
output AI_SERVICE_NAME string = aiFoundryAiServicesResourceName
14411502

1503+
// Storage container names (per content pack dataset)
1504+
@description('Blob container name used to upload the retail customer dataset.')
14421505
output AZURE_STORAGE_CONTAINER_NAME_RETAIL_CUSTOMER string = storageContainerNameRetailCustomer
1506+
1507+
@description('Blob container name used to upload the retail order dataset.')
14431508
output AZURE_STORAGE_CONTAINER_NAME_RETAIL_ORDER string = storageContainerNameRetailOrder
1509+
1510+
@description('Blob container name used to upload the RFP summary dataset.')
14441511
output AZURE_STORAGE_CONTAINER_NAME_RFP_SUMMARY string = storageContainerNameRFPSummary
1512+
1513+
@description('Blob container name used to upload the RFP risk dataset.')
14451514
output AZURE_STORAGE_CONTAINER_NAME_RFP_RISK string = storageContainerNameRFPRisk
1515+
1516+
@description('Blob container name used to upload the RFP compliance dataset.')
14461517
output AZURE_STORAGE_CONTAINER_NAME_RFP_COMPLIANCE string = storageContainerNameRFPCompliance
1518+
1519+
@description('Blob container name used to upload the contract summary dataset.')
14471520
output AZURE_STORAGE_CONTAINER_NAME_CONTRACT_SUMMARY string = storageContainerNameContractSummary
1521+
1522+
@description('Blob container name used to upload the contract risk dataset.')
14481523
output AZURE_STORAGE_CONTAINER_NAME_CONTRACT_RISK string = storageContainerNameContractRisk
1524+
1525+
@description('Blob container name used to upload the contract compliance dataset.')
14491526
output AZURE_STORAGE_CONTAINER_NAME_CONTRACT_COMPLIANCE string = storageContainerNameContractCompliance
1527+
// AI Search index names (per content pack dataset)
1528+
@description('AI Search index name used by the retail customer knowledge base.')
14501529
output AZURE_AI_SEARCH_INDEX_NAME_RETAIL_CUSTOMER string = aiSearchIndexNameForRetailCustomer
1530+
1531+
@description('AI Search index name used by the retail order knowledge base.')
14511532
output AZURE_AI_SEARCH_INDEX_NAME_RETAIL_ORDER string = aiSearchIndexNameForRetailOrder
1533+
1534+
@description('AI Search index name used by the RFP summary knowledge base.')
14521535
output AZURE_AI_SEARCH_INDEX_NAME_RFP_SUMMARY string = aiSearchIndexNameForRFPSummary
1536+
1537+
@description('AI Search index name used by the RFP risk knowledge base.')
14531538
output AZURE_AI_SEARCH_INDEX_NAME_RFP_RISK string = aiSearchIndexNameForRFPRisk
1539+
1540+
@description('AI Search index name used by the RFP compliance knowledge base.')
14541541
output AZURE_AI_SEARCH_INDEX_NAME_RFP_COMPLIANCE string = aiSearchIndexNameForRFPCompliance
1542+
1543+
@description('AI Search index name used by the contract summary knowledge base.')
14551544
output AZURE_AI_SEARCH_INDEX_NAME_CONTRACT_SUMMARY string = aiSearchIndexNameForContractSummary
1545+
1546+
@description('AI Search index name used by the contract risk knowledge base.')
14561547
output AZURE_AI_SEARCH_INDEX_NAME_CONTRACT_RISK string = aiSearchIndexNameForContractRisk
1548+
1549+
@description('AI Search index name used by the contract compliance knowledge base.')
14571550
output AZURE_AI_SEARCH_INDEX_NAME_CONTRACT_COMPLIANCE string = aiSearchIndexNameForContractCompliance

infra/bicep/main.bicep

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -854,55 +854,144 @@ output resourceGroupName string = resourceGroup().name
854854
@description('The default hostname of the frontend web app.')
855855
output webSiteDefaultHostname string = replace(frontend_app.outputs.appUrl, 'https://', '')
856856

857+
@description('The blob service endpoint of the deployed storage account.')
857858
output AZURE_STORAGE_BLOB_URL string = storage_account.outputs.blobEndpoint
859+
860+
@description('The name of the deployed storage account.')
858861
output AZURE_STORAGE_ACCOUNT_NAME string = storageAccountName
862+
863+
@description('The endpoint URL of the deployed Azure AI Search service.')
859864
output AZURE_AI_SEARCH_ENDPOINT string = ai_search.outputs.endpoint
865+
866+
@description('The name of the deployed Azure AI Search service.')
860867
output AZURE_AI_SEARCH_NAME string = aiSearchServiceName
861868

869+
@description('The endpoint URL of the deployed Cosmos DB account.')
862870
output COSMOSDB_ENDPOINT string = 'https://${cosmosDbResourceName}.documents.azure.com:443/'
871+
872+
@description('The Cosmos DB database name used by the application.')
863873
output COSMOSDB_DATABASE string = cosmosDbDatabaseName
874+
875+
@description('The Cosmos DB container name used to persist agent memory.')
864876
output COSMOSDB_CONTAINER string = cosmosDbDatabaseMemoryContainerName
877+
878+
@description('The Azure OpenAI endpoint URL for the AI Foundry / AI Services account.')
865879
output AZURE_OPENAI_ENDPOINT string = aiFoundryOpenAIEndpoint
880+
881+
@description('The default GPT model deployment name.')
866882
output AZURE_OPENAI_DEPLOYMENT_NAME string = gptModelName
883+
884+
@description('The RAI (Responsible AI) GPT model deployment name.')
867885
output AZURE_OPENAI_RAI_DEPLOYMENT_NAME string = gpt4_1ModelName
886+
887+
@description('The Azure OpenAI API version used by the application.')
868888
output AZURE_OPENAI_API_VERSION string = azureOpenaiAPIVersion
889+
890+
@description('The subscription id that hosts the AI Foundry / AI Services resources.')
869891
output AZURE_AI_SUBSCRIPTION_ID string = subscription().subscriptionId
892+
893+
@description('The resource group that hosts the AI Foundry / AI Services resources.')
870894
output AZURE_AI_RESOURCE_GROUP string = resourceGroup().name
895+
896+
@description('The name of the AI Foundry project resource.')
871897
output AZURE_AI_PROJECT_NAME string = aiFoundryAiProjectResourceName
898+
899+
@description('The application environment label (e.g. Dev, Prod).')
872900
output APP_ENV string = 'Prod'
901+
902+
@description('The AI Foundry resource id (existing project resource id when reusing, otherwise the newly created project).')
873903
output AI_FOUNDRY_RESOURCE_ID string = useExistingAiFoundryAiProject ? existing_project_setup!.outputs.resourceId : ai_foundry_project!.outputs.resourceId
904+
905+
@description('The name of the deployed Cosmos DB account.')
874906
output COSMOSDB_ACCOUNT_NAME string = cosmosDbResourceName
907+
908+
@description('Alias for AZURE_AI_SEARCH_ENDPOINT — kept for backward compatibility with seed scripts and the backend.')
875909
output AZURE_SEARCH_ENDPOINT string = ai_search.outputs.endpoint
910+
911+
@description('The client id of the user-assigned managed identity used by backend and MCP container apps.')
876912
output AZURE_CLIENT_ID string = userAssignedIdentity.outputs.clientId
913+
914+
@description('The Azure AD tenant id of the deployment.')
877915
output AZURE_TENANT_ID string = tenant().tenantId
916+
917+
@description('The default Cognitive Services resource scope used to acquire AAD tokens.')
878918
output AZURE_COGNITIVE_SERVICES string = 'https://cognitiveservices.azure.com/.default'
919+
920+
@description('The model deployment name used by the orchestrator/manager (reasoning model).')
879921
output ORCHESTRATOR_MODEL_NAME string = gptReasoningModelName
922+
923+
@description('The display name of the MCP server.')
880924
output MCP_SERVER_NAME string = mcpServerName
925+
926+
@description('Human-readable description of the MCP server.')
881927
output MCP_SERVER_DESCRIPTION string = mcpServerDescription
928+
929+
@description('JSON-serialized list of model deployment names supported by this deployment.')
882930
output SUPPORTED_MODELS string = string(supportedModels)
931+
932+
@description('Public HTTPS URL of the backend Container App.')
883933
output BACKEND_URL string = 'https://${backend_container_app.outputs.fqdn}'
934+
935+
@description('AI Foundry project endpoint URL used by the agents.')
884936
output AZURE_AI_PROJECT_ENDPOINT string = aiFoundryAiProjectEndpoint
937+
938+
@description('Alias for AZURE_AI_PROJECT_ENDPOINT — kept for backward compatibility with the agent SDK.')
885939
output AZURE_AI_AGENT_ENDPOINT string = aiFoundryAiProjectEndpoint
886940

941+
@description('The name of the AI Foundry / AI Services account hosting the project.')
887942
output AI_SERVICE_NAME string = aiFoundryAiServicesResourceName
888943

944+
@description('Storage container name for retail customer data.')
889945
output AZURE_STORAGE_CONTAINER_NAME_RETAIL_CUSTOMER string = storageContainerNameRetailCustomer
946+
947+
@description('Storage container name for retail order data.')
890948
output AZURE_STORAGE_CONTAINER_NAME_RETAIL_ORDER string = storageContainerNameRetailOrder
949+
950+
@description('Storage container name for RFP summary documents.')
891951
output AZURE_STORAGE_CONTAINER_NAME_RFP_SUMMARY string = storageContainerNameRFPSummary
952+
953+
@description('Storage container name for RFP risk documents.')
892954
output AZURE_STORAGE_CONTAINER_NAME_RFP_RISK string = storageContainerNameRFPRisk
955+
956+
@description('Storage container name for RFP compliance documents.')
893957
output AZURE_STORAGE_CONTAINER_NAME_RFP_COMPLIANCE string = storageContainerNameRFPCompliance
958+
959+
@description('Storage container name for contract summary documents.')
894960
output AZURE_STORAGE_CONTAINER_NAME_CONTRACT_SUMMARY string = storageContainerNameContractSummary
961+
962+
@description('Storage container name for contract risk documents.')
895963
output AZURE_STORAGE_CONTAINER_NAME_CONTRACT_RISK string = storageContainerNameContractRisk
964+
965+
@description('Storage container name for contract compliance documents.')
896966
output AZURE_STORAGE_CONTAINER_NAME_CONTRACT_COMPLIANCE string = storageContainerNameContractCompliance
967+
968+
@description('AI Search index name for retail customer data.')
897969
output AZURE_AI_SEARCH_INDEX_NAME_RETAIL_CUSTOMER string = aiSearchIndexNameForRetailCustomer
970+
971+
@description('AI Search index name for retail order data.')
898972
output AZURE_AI_SEARCH_INDEX_NAME_RETAIL_ORDER string = aiSearchIndexNameForRetailOrder
973+
974+
@description('AI Search index name for RFP summary documents.')
899975
output AZURE_AI_SEARCH_INDEX_NAME_RFP_SUMMARY string = aiSearchIndexNameForRFPSummary
976+
977+
@description('AI Search index name for RFP risk documents.')
900978
output AZURE_AI_SEARCH_INDEX_NAME_RFP_RISK string = aiSearchIndexNameForRFPRisk
979+
980+
@description('AI Search index name for RFP compliance documents.')
901981
output AZURE_AI_SEARCH_INDEX_NAME_RFP_COMPLIANCE string = aiSearchIndexNameForRFPCompliance
982+
983+
@description('AI Search index name for contract summary documents.')
902984
output AZURE_AI_SEARCH_INDEX_NAME_CONTRACT_SUMMARY string = aiSearchIndexNameForContractSummary
985+
986+
@description('AI Search index name for contract risk documents.')
903987
output AZURE_AI_SEARCH_INDEX_NAME_CONTRACT_RISK string = aiSearchIndexNameForContractRisk
988+
989+
@description('AI Search index name for contract compliance documents.')
904990
output AZURE_AI_SEARCH_INDEX_NAME_CONTRACT_COMPLIANCE string = aiSearchIndexNameForContractCompliance
905991

906992
// Container Registry Outputs
993+
@description('Login server (endpoint) of the Azure Container Registry. Only populated when isCustom is true.')
907994
output AZURE_CONTAINER_REGISTRY_ENDPOINT string? = isCustom ? container_registry!.outputs.loginServer : null
995+
996+
@description('Name of the Azure Container Registry. Only populated when isCustom is true.')
908997
output AZURE_CONTAINER_REGISTRY_NAME string? = isCustom ? container_registry!.outputs.name : null

0 commit comments

Comments
 (0)