diff --git a/.github/workflows/deploy-orchestrator.yml b/.github/workflows/deploy-orchestrator.yml index 4148def1a..5d0949711 100644 --- a/.github/workflows/deploy-orchestrator.yml +++ b/.github/workflows/deploy-orchestrator.yml @@ -72,10 +72,8 @@ env: jobs: docker-build: + if: inputs.trigger_type == 'workflow_dispatch' && inputs.build_docker_image == true uses: ./.github/workflows/job-docker-build.yml - with: - trigger_type: ${{ inputs.trigger_type }} - build_docker_image: ${{ inputs.build_docker_image }} secrets: inherit deploy: diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 1e0bd7a2a..94d4f55aa 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -17,7 +17,7 @@ on: - cron: "0 11,23 * * *" # Runs at 11:00 AM and 11:00 PM GMT workflow_dispatch: #Allow manual triggering env: - GPT_MIN_CAPACITY: 150 + GPT_MIN_CAPACITY: 50 O4_MINI_MIN_CAPACITY: 50 GPT41_MINI_MIN_CAPACITY: 50 BRANCH_NAME: ${{ github.head_ref || github.ref_name }} diff --git a/.github/workflows/job-deploy-linux.yml b/.github/workflows/job-deploy-linux.yml index ad5cfb678..d111d969c 100644 --- a/.github/workflows/job-deploy-linux.yml +++ b/.github/workflows/job-deploy-linux.yml @@ -269,7 +269,7 @@ jobs: azd env set AZURE_ENV_IMAGE_TAG="$INPUT_IMAGE_TAG" if [[ "$INPUT_BUILD_DOCKER_IMAGE" == "true" ]]; then - ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}") + ACR_NAME=$(echo "${{ vars.ACR_TEST_LOGIN_SERVER }}") azd env set AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT="$ACR_NAME" echo "Set ACR name to: $ACR_NAME" else diff --git a/.github/workflows/job-deploy-windows.yml b/.github/workflows/job-deploy-windows.yml index a6e9665c1..1666f92b0 100644 --- a/.github/workflows/job-deploy-windows.yml +++ b/.github/workflows/job-deploy-windows.yml @@ -271,7 +271,7 @@ jobs: # Set ACR name only when building Docker image if ($env:INPUT_BUILD_DOCKER_IMAGE -eq "true") { - $ACR_NAME = "${{ secrets.ACR_TEST_LOGIN_SERVER }}" + $ACR_NAME = "${{ vars.ACR_TEST_LOGIN_SERVER }}" azd env set AZURE_ENV_CONTAINER_REGISTRY_ENDPOINT="$ACR_NAME" Write-Host "Set ACR name to: $ACR_NAME" } else { diff --git a/.github/workflows/job-deploy.yml b/.github/workflows/job-deploy.yml index a5af4831a..420193e42 100644 --- a/.github/workflows/job-deploy.yml +++ b/.github/workflows/job-deploy.yml @@ -98,7 +98,7 @@ on: value: ${{ jobs.azure-setup.outputs.QUOTA_FAILED }} env: - GPT_MIN_CAPACITY: 150 + GPT_MIN_CAPACITY: 50 O4_MINI_MIN_CAPACITY: 50 GPT41_MINI_MIN_CAPACITY: 50 BRANCH_NAME: ${{ github.event.workflow_run.head_branch || github.head_ref || github.ref_name }} diff --git a/.github/workflows/job-docker-build.yml b/.github/workflows/job-docker-build.yml index ff7bbe351..a39de966d 100644 --- a/.github/workflows/job-docker-build.yml +++ b/.github/workflows/job-docker-build.yml @@ -1,27 +1,21 @@ -name: Docker Build Job +name: Build & Push Test Images (Feature Branch) on: workflow_call: - inputs: - trigger_type: - description: 'Trigger type (workflow_dispatch, pull_request, schedule)' - required: true - type: string - build_docker_image: - description: 'Build And Push Docker Image (Optional)' - required: false - default: false - type: boolean outputs: IMAGE_TAG: description: "Generated Docker Image Tag" value: ${{ jobs.docker-build.outputs.IMAGE_TAG }} + workflow_dispatch: + +permissions: + contents: read + id-token: write env: BRANCH_NAME: ${{ github.event.workflow_run.head_branch || github.head_ref || github.ref_name }} jobs: docker-build: - if: inputs.trigger_type == 'workflow_dispatch' && inputs.build_docker_image == true runs-on: ubuntu-latest environment: production outputs: @@ -55,7 +49,11 @@ jobs: subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - name: Log in to Azure Container Registry - run: az acr login --name ${{ secrets.ACR_TEST_LOGIN_SERVER }} + shell: bash + run: | + # Extract registry name from login server (e.g., myacr.azurecr.io -> myacr) + ACR_NAME=$(echo "${{ vars.ACR_TEST_LOGIN_SERVER }}" | cut -d'.' -f1) + az acr login --name "$ACR_NAME" - name: Build and optionally push Backend Docker image uses: docker/build-push-action@v7 @@ -66,8 +64,8 @@ jobs: file: ./src/backend/Dockerfile push: true tags: | - ${{ secrets.ACR_TEST_LOGIN_SERVER }}/macaebackend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }} - ${{ secrets.ACR_TEST_LOGIN_SERVER }}/macaebackend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }} + ${{ vars.ACR_TEST_LOGIN_SERVER }}/macaebackend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }} + ${{ vars.ACR_TEST_LOGIN_SERVER }}/macaebackend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }} - name: Build and optionally push Frontend Docker image uses: docker/build-push-action@v7 @@ -78,8 +76,8 @@ jobs: file: ./src/App/Dockerfile push: true tags: | - ${{ secrets.ACR_TEST_LOGIN_SERVER }}/macaefrontend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }} - ${{ secrets.ACR_TEST_LOGIN_SERVER }}/macaefrontend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }} + ${{ vars.ACR_TEST_LOGIN_SERVER }}/macaefrontend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }} + ${{ vars.ACR_TEST_LOGIN_SERVER }}/macaefrontend:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }} - name: Build and optionally push MCP Docker image uses: docker/build-push-action@v7 env: @@ -89,8 +87,8 @@ jobs: file: ./src/mcp_server/Dockerfile push: true tags: | - ${{ secrets.ACR_TEST_LOGIN_SERVER }}/macaemcp:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }} - ${{ secrets.ACR_TEST_LOGIN_SERVER }}/macaemcp:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }} + ${{ vars.ACR_TEST_LOGIN_SERVER }}/macaemcp:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }} + ${{ vars.ACR_TEST_LOGIN_SERVER }}/macaemcp:${{ steps.generate_docker_tag.outputs.IMAGE_TAG }}_${{ github.run_number }} - name: Verify Docker Image Build shell: bash run: | @@ -101,7 +99,7 @@ jobs: if: always() shell: bash run: | - ACR_NAME=$(echo "${{ secrets.ACR_TEST_LOGIN_SERVER }}") + ACR_NAME=$(echo "${{ vars.ACR_TEST_LOGIN_SERVER }}") echo "## 🐳 Docker Build Job Summary" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| Field | Value |" >> $GITHUB_STEP_SUMMARY diff --git a/docs/CustomizingAzdParameters.md b/docs/CustomizingAzdParameters.md index 71ce95f29..a9d95ef95 100644 --- a/docs/CustomizingAzdParameters.md +++ b/docs/CustomizingAzdParameters.md @@ -18,7 +18,7 @@ By default this template will use the environment name as the prefix to prevent | `AZURE_ENV_MODEL_4_1_DEPLOYMENT_TYPE` | string | `GlobalStandard` | Defines the deployment type for the AI model (e.g., Standard, GlobalStandard). | | `AZURE_ENV_MODEL_4_1_NAME` | string | `gpt-4.1` | Specifies the name of the GPT model to be deployed. | | `AZURE_ENV_MODEL_4_1_VERSION` | string | `2025-04-14` | Version of the GPT model to be used for deployment. | -| `AZURE_ENV_MODEL_4_1_CAPACITY` | int | `150` | Sets the GPT model capacity. | +| `AZURE_ENV_MODEL_4_1_CAPACITY` | int | `50` | Sets the GPT model capacity. | | `AZURE_ENV_REASONING_MODEL_DEPLOYMENT_TYPE` | string | `GlobalStandard` | Defines the deployment type for the AI model (e.g., Standard, GlobalStandard). | | `AZURE_ENV_REASONING_MODEL_NAME` | string | `o4-mini` | Specifies the name of the reasoning GPT model to be deployed. | | `AZURE_ENV_REASONING_MODEL_VERSION` | string | `2025-04-16` | Version of the reasoning GPT model to be used for deployment. | diff --git a/docs/DeploymentGuide.md b/docs/DeploymentGuide.md index 04e914a7e..b8c6064d8 100644 --- a/docs/DeploymentGuide.md +++ b/docs/DeploymentGuide.md @@ -68,7 +68,7 @@ Ensure you have access to an [Azure subscription](https://azure.microsoft.com/fr 📖 **Follow:** [Quota Check Instructions](./quota_check.md) to ensure sufficient capacity. **Default Quota Configuration:** -- **GPT-4.1:** 150k tokens +- **GPT-4.1:** 50k tokens - **o4-mini:** 50k tokens - **GPT-4.1-mini:** 50k tokens @@ -246,7 +246,7 @@ You can customize various deployment settings before running `azd up`, including
[Optional] Quota Recommendations -By default, the **GPT model capacity** in deployment is set to **150k tokens**. +By default, the **GPT model capacity** in deployment is set to **50k tokens**. To adjust quota settings, follow these [steps](./AzureGPTQuotaSettings.md). diff --git a/docs/quota_check.md b/docs/quota_check.md index 6222d6c47..d2be62806 100644 --- a/docs/quota_check.md +++ b/docs/quota_check.md @@ -1,7 +1,7 @@ ## Check Quota Availability Before Deployment Before deploying the accelerator, **ensure sufficient quota availability** for the required model. -> **For Global Standard | GPT-4o - the capacity to at least 150k tokens for optimal performance.** +> **For Global Standard | GPT-4.1 - the capacity to at least 50k tokens for optimal performance.** ### Login if you have not done so already ``` @@ -16,7 +16,7 @@ az login --use-device-code ### 📌 Default Models & Capacities: ``` -gpt4.1:150,o4-mini:50,gpt4.1-mini:50 +gpt4.1:50,o4-mini:50,gpt4.1-mini:50 ``` ### 📌 Default Regions: ``` @@ -42,7 +42,7 @@ australiaeast, eastus2, francecentral, japaneast, norwayeast, swedencentral, uks ``` ✔️ Check specific model(s) in default regions: ``` - ./quota_check_params.sh --models gpt4.1:150 + ./quota_check_params.sh --models gpt4.1:50 ``` ✔️ Check default models in specific region(s): ``` @@ -50,15 +50,15 @@ australiaeast, eastus2, francecentral, japaneast, norwayeast, swedencentral, uks ``` ✔️ Passing Both models and regions: ``` - ./quota_check_params.sh --models gpt4.1:150 --regions eastus2,westus + ./quota_check_params.sh --models gpt4.1:50 --regions eastus2,westus ``` ✔️ All parameters combined: ``` - ./quota_check_params.sh --models gpt4.1:150 --regions eastus2,westus --verbose + ./quota_check_params.sh --models gpt4.1:50 --regions eastus2,westus --verbose ``` ✔️ Multiple models with single region: ``` - ./quota_check_params.sh --models gpt4.1:150,gpt4.1-mini:50 --regions eastus2 --verbose + ./quota_check_params.sh --models gpt4.1:50,gpt4.1-mini:50 --regions eastus2 --verbose ``` ### **Sample Output** diff --git a/infra/main.bicep b/infra/main.bicep index 54e23853e..11dd7c345 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -37,7 +37,7 @@ var deployingUserPrincipalId = deployerInfo.objectId azd: { type: 'location' usageName: [ - 'OpenAI.GlobalStandard.gpt4.1, 150' + 'OpenAI.GlobalStandard.gpt4.1, 50' 'OpenAI.GlobalStandard.o4-mini, 50' 'OpenAI.GlobalStandard.gpt4.1-mini, 50' ] @@ -100,8 +100,8 @@ param gptReasoningModelDeploymentType string = 'GlobalStandard' @description('Optional. AI model deployment token capacity. Defaults to 50 for optimal performance.') param gptDeploymentCapacity int = 50 -@description('Optional. AI model deployment token capacity. Defaults to 150 for optimal performance.') -param gpt4_1ModelCapacity int = 150 +@description('Optional. AI model deployment token capacity. Defaults to 50 for optimal performance.') +param gpt4_1ModelCapacity int = 50 @description('Optional. AI model deployment token capacity. Defaults to 50 for optimal performance.') param gptReasoningModelCapacity int = 50 @@ -1604,12 +1604,12 @@ module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.32.0' = { roleAssignments: [ { principalId: userAssignedIdentity.outputs.principalId - roleDefinitionIdOrName: 'Storage Blob Data Contributor' + roleDefinitionIdOrName: 'ba92f5b4-2d11-453d-a403-e96b0029c9fe' // Storage Blob Data Contributor principalType: 'ServicePrincipal' } { principalId: deployingUserPrincipalId - roleDefinitionIdOrName: 'Storage Blob Data Contributor' + roleDefinitionIdOrName: 'ba92f5b4-2d11-453d-a403-e96b0029c9fe' // Storage Blob Data Contributor principalType: deployerPrincipalType } ] @@ -1732,22 +1732,22 @@ module searchServiceUpdate 'br/public:avm/res/search/search-service:0.12.0' = { roleAssignments: [ { principalId: userAssignedIdentity.outputs.principalId - roleDefinitionIdOrName: 'Search Index Data Contributor' + roleDefinitionIdOrName: '8ebe5a00-799e-43f5-93ac-243d3dce84a7' // Search Index Data Contributor principalType: 'ServicePrincipal' } { principalId: deployingUserPrincipalId - roleDefinitionIdOrName: 'Search Index Data Contributor' + roleDefinitionIdOrName: '8ebe5a00-799e-43f5-93ac-243d3dce84a7' // Search Index Data Contributor principalType: deployerPrincipalType } { principalId: aiFoundryAiProjectPrincipalId - roleDefinitionIdOrName: 'Search Index Data Reader' + roleDefinitionIdOrName: '1407120a-92aa-4202-b7e9-c0e197c71c8f' // Search Index Data Reader principalType: 'ServicePrincipal' } { principalId: aiFoundryAiProjectPrincipalId - roleDefinitionIdOrName: 'Search Service Contributor' + roleDefinitionIdOrName: '7ca78c08-252a-4471-8644-bb5ff32d4ba0' // Search Service Contributor principalType: 'ServicePrincipal' } ] diff --git a/infra/main.json b/infra/main.json index b65ae11b3..96fd338cb 100644 --- a/infra/main.json +++ b/infra/main.json @@ -5,8 +5,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "6587818059632090787" + "version": "0.44.1.10279", + "templateHash": "9418658342402137838" }, "name": "Multi-Agent Custom Automation Engine", "description": "This module contains the resources required to deploy the [Multi-Agent Custom Automation Engine solution accelerator](https://github.com/microsoft/Multi-Agent-Custom-Automation-Engine-Solution-Accelerator) for both Sandbox environments and WAF aligned environments.\n\n> **Note:** This module is not intended for broad, generic use, as it was designed by the Commercial Solution Areas CTO team, as a Microsoft Solution Accelerator. Feature requests and bug fix requests are welcome if they support the needs of this organization but may not be incorporated if they aim to make this module more generic than what it needs to be for its primary use case. This module will likely be updated to leverage AVM resource modules in the future. This may result in breaking changes in upcoming versions when these features are implemented.\n" @@ -64,7 +64,7 @@ "azd": { "type": "location", "usageName": [ - "OpenAI.GlobalStandard.gpt4.1, 150", + "OpenAI.GlobalStandard.gpt4.1, 50", "OpenAI.GlobalStandard.o4-mini, 50", "OpenAI.GlobalStandard.gpt4.1-mini, 50" ] @@ -176,9 +176,9 @@ }, "gpt4_1ModelCapacity": { "type": "int", - "defaultValue": 150, + "defaultValue": 50, "metadata": { - "description": "Optional. AI model deployment token capacity. Defaults to 150 for optimal performance." + "description": "Optional. AI model deployment token capacity. Defaults to 50 for optimal performance." } }, "gptReasoningModelCapacity": { @@ -4992,8 +4992,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "9540091515555271756" + "version": "0.44.1.10279", + "templateHash": "16578961703143216826" } }, "definitions": { @@ -24310,8 +24310,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "7866379492866507946" + "version": "0.44.1.10279", + "templateHash": "9937220877261080488" } }, "definitions": { @@ -27975,9 +27975,9 @@ }, "dependsOn": [ "aiFoundryAiServices", - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]", + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", "virtualNetwork" ] }, @@ -28014,8 +28014,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "2868048678223903575" + "version": "0.44.1.10279", + "templateHash": "8001462637037527844" } }, "parameters": { @@ -42569,8 +42569,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "18345308984648474640" + "version": "0.44.1.10279", + "templateHash": "7693002176758630395" } }, "definitions": { @@ -43601,8 +43601,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "1009721598684973971" + "version": "0.44.1.10279", + "templateHash": "16045336481224683590" }, "name": "Site App Settings", "description": "This module deploys a Site App Setting." @@ -44525,12 +44525,12 @@ "value": [ { "principalId": "[reference('userAssignedIdentity').outputs.principalId.value]", - "roleDefinitionIdOrName": "Storage Blob Data Contributor", + "roleDefinitionIdOrName": "ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalType": "ServicePrincipal" }, { "principalId": "[variables('deployingUserPrincipalId')]", - "roleDefinitionIdOrName": "Storage Blob Data Contributor", + "roleDefinitionIdOrName": "ba92f5b4-2d11-453d-a403-e96b0029c9fe", "principalType": "[variables('deployerPrincipalType')]" } ] @@ -52753,22 +52753,22 @@ "value": [ { "principalId": "[reference('userAssignedIdentity').outputs.principalId.value]", - "roleDefinitionIdOrName": "Search Index Data Contributor", + "roleDefinitionIdOrName": "8ebe5a00-799e-43f5-93ac-243d3dce84a7", "principalType": "ServicePrincipal" }, { "principalId": "[variables('deployingUserPrincipalId')]", - "roleDefinitionIdOrName": "Search Index Data Contributor", + "roleDefinitionIdOrName": "8ebe5a00-799e-43f5-93ac-243d3dce84a7", "principalType": "[variables('deployerPrincipalType')]" }, { "principalId": "[if(variables('useExistingAiFoundryAiProject'), reference('existingAiFoundryAiServicesProject', '2025-12-01', 'full').identity.principalId, reference('aiFoundryAiServicesProject').outputs.principalId.value)]", - "roleDefinitionIdOrName": "Search Index Data Reader", + "roleDefinitionIdOrName": "1407120a-92aa-4202-b7e9-c0e197c71c8f", "principalType": "ServicePrincipal" }, { "principalId": "[if(variables('useExistingAiFoundryAiProject'), reference('existingAiFoundryAiServicesProject', '2025-12-01', 'full').identity.principalId, reference('aiFoundryAiServicesProject').outputs.principalId.value)]", - "roleDefinitionIdOrName": "Search Service Contributor", + "roleDefinitionIdOrName": "7ca78c08-252a-4471-8644-bb5ff32d4ba0", "principalType": "ServicePrincipal" } ] @@ -54851,8 +54851,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.43.8.12551", - "templateHash": "9739523049889844356" + "version": "0.44.1.10279", + "templateHash": "1221855634359106261" } }, "parameters": { diff --git a/infra/main_custom.bicep b/infra/main_custom.bicep index f48b78ad4..211b8cd6a 100644 --- a/infra/main_custom.bicep +++ b/infra/main_custom.bicep @@ -37,7 +37,7 @@ var deployingUserPrincipalId = deployerInfo.objectId azd: { type: 'location' usageName: [ - 'OpenAI.GlobalStandard.gpt4.1, 150' + 'OpenAI.GlobalStandard.gpt4.1, 50' 'OpenAI.GlobalStandard.o4-mini, 50' 'OpenAI.GlobalStandard.gpt4.1-mini, 50' ] @@ -100,8 +100,8 @@ param gptReasoningModelDeploymentType string = 'GlobalStandard' @description('Optional. AI model deployment token capacity. Defaults to 50 for optimal performance.') param gptDeploymentCapacity int = 50 -@description('Optional. AI model deployment token capacity. Defaults to 150 for optimal performance.') -param gpt4_1ModelCapacity int = 150 +@description('Optional. AI model deployment token capacity. Defaults to 50 for optimal performance.') +param gpt4_1ModelCapacity int = 50 @description('Optional. AI model deployment token capacity. Defaults to 50 for optimal performance.') param gptReasoningModelCapacity int = 50 @@ -1656,12 +1656,12 @@ module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.32.0' = { roleAssignments: [ { principalId: userAssignedIdentity.outputs.principalId - roleDefinitionIdOrName: 'Storage Blob Data Contributor' + roleDefinitionIdOrName: 'ba92f5b4-2d11-453d-a403-e96b0029c9fe' // Storage Blob Data Contributor principalType: 'ServicePrincipal' } { principalId: deployingUserPrincipalId - roleDefinitionIdOrName: 'Storage Blob Data Contributor' + roleDefinitionIdOrName: 'ba92f5b4-2d11-453d-a403-e96b0029c9fe' // Storage Blob Data Contributor principalType: deployerPrincipalType } ] @@ -1785,22 +1785,22 @@ module searchServiceUpdate 'br/public:avm/res/search/search-service:0.12.0' = { roleAssignments: [ { principalId: userAssignedIdentity.outputs.principalId - roleDefinitionIdOrName: 'Search Index Data Contributor' + roleDefinitionIdOrName: '8ebe5a00-799e-43f5-93ac-243d3dce84a7' // Search Index Data Contributor principalType: 'ServicePrincipal' } { principalId: deployingUserPrincipalId - roleDefinitionIdOrName: 'Search Index Data Contributor' + roleDefinitionIdOrName: '8ebe5a00-799e-43f5-93ac-243d3dce84a7' // Search Index Data Contributor principalType: deployerPrincipalType } { principalId: aiFoundryAiProjectPrincipalId - roleDefinitionIdOrName: 'Search Index Data Reader' + roleDefinitionIdOrName: '1407120a-92aa-4202-b7e9-c0e197c71c8f' // Search Index Data Reader principalType: 'ServicePrincipal' } { principalId: aiFoundryAiProjectPrincipalId - roleDefinitionIdOrName: 'Search Service Contributor' + roleDefinitionIdOrName: '7ca78c08-252a-4471-8644-bb5ff32d4ba0' // Search Service Contributor principalType: 'ServicePrincipal' } ] diff --git a/infra/scripts/quota_check_params.sh b/infra/scripts/quota_check_params.sh index e46f88011..21b58fe42 100644 --- a/infra/scripts/quota_check_params.sh +++ b/infra/scripts/quota_check_params.sh @@ -47,7 +47,7 @@ log_verbose() { } # Default Models and Capacities (Comma-separated in "model:capacity" format) -DEFAULT_MODEL_CAPACITY="gpt4.1:150,o4-mini:50,gpt4.1-mini:50" +DEFAULT_MODEL_CAPACITY="gpt4.1:50,o4-mini:50,gpt4.1-mini:50" # Convert the comma-separated string into an array IFS=',' read -r -a MODEL_CAPACITY_PAIRS <<< "$DEFAULT_MODEL_CAPACITY" diff --git a/src/tests/backend/common/database/test_database_base.py b/src/tests/backend/common/database/test_database_base.py index 128d26cf7..ebf92f492 100644 --- a/src/tests/backend/common/database/test_database_base.py +++ b/src/tests/backend/common/database/test_database_base.py @@ -493,13 +493,16 @@ async def delete_team_agent(self, team_id, agent_name): pass async def get_team_agent(self, team_id, agent_name): return None database = MockDatabase() - - with pytest.raises(ValueError, match="Test exception"): + + async def run_database_context(): async with database: assert database.initialized is True # Raise an exception to test cleanup raise ValueError("Test exception") + with pytest.raises(ValueError, match="Test exception"): + await run_database_context() + # Even with exception, close should have been called assert database.closed is True diff --git a/src/tests/backend/v4/config/test_settings.py b/src/tests/backend/v4/config/test_settings.py index 1c055fe33..3e35ec150 100644 --- a/src/tests/backend/v4/config/test_settings.py +++ b/src/tests/backend/v4/config/test_settings.py @@ -344,7 +344,7 @@ async def cancel_task(): cancel_task_handle = asyncio.create_task(cancel_task()) with self.assertRaises(asyncio.CancelledError): - await task + _ = await task _ = await cancel_task_handle self.assertTrue(task.cancelled()) @@ -365,7 +365,7 @@ async def cancel_task(): cancel_task_handle = asyncio.create_task(cancel_task()) with self.assertRaises(asyncio.CancelledError): - await task + _ = await task _ = await cancel_task_handle self.assertTrue(task.cancelled())