diff --git a/README.md b/README.md index 84a58ad48..21e54cc4e 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,6 @@ The solution leverages Azure OpenAI Service, Azure Container Apps, Azure Cosmos |![image](./docs/images/readme/agent_flow.png)| |---| -### How to customize -If you'd like to customize the solution accelerator, here are some common areas to start: - -[Custom scenario](./docs/CustomizeSolution.md) -
### Additional resources diff --git a/docs/SampleQuestions.md b/docs/SampleQuestions.md deleted file mode 100644 index 770a994b7..000000000 --- a/docs/SampleQuestions.md +++ /dev/null @@ -1,25 +0,0 @@ -# Sample Questions - -To help you get started, here are some **Sample Prompts** you can ask in the app: - -1. Run each of the following sample prompts and verify that a plan is generated: - - Launch a new marketing campaign - - Procure new office equipment - - Initiate a new product launch - -2. Run the **Onboard employee** prompt: - - Remove the employee name from the prompt to test how the solution handles missing information. - - The solution should ask for the missing detail before proceeding. - -3. Try running known **RAI test prompts** to confirm safeguard behavior: - - You should see a toast message indicating that a plan could not be generated due to policy restrictions. - - -**Home Page** -![HomePage](images/MACAE-GP1.png) - -**Task Page** -![GeneratedPlan](images/MACAE-GP2.png) - - -_This structured approach helps ensure the system handles prompts gracefully, verifies plan generation flows, and confirms RAI protections are working as intended._ diff --git a/docs/images/readme/application.png b/docs/images/readme/application.png index ba6a90c1e..d7e464386 100644 Binary files a/docs/images/readme/application.png and b/docs/images/readme/application.png differ diff --git a/infra/main.bicep b/infra/main.bicep index 035077f80..09c544a62 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -674,14 +674,12 @@ module virtualNetwork 'br/public:avm/res/network/virtual-network:0.7.0' = if (en { name: 'backend' addressPrefix: '10.0.0.0/27' - //defaultOutboundAccess: false TODO: check this configuration for a more restricted outbound access networkSecurityGroupResourceId: networkSecurityGroupBackend!.outputs.resourceId } { name: 'administration' addressPrefix: '10.0.0.32/27' networkSecurityGroupResourceId: networkSecurityGroupAdministration!.outputs.resourceId - //defaultOutboundAccess: false TODO: check this configuration for a more restricted outbound access //natGatewayResourceId: natGateway.outputs.resourceId } { @@ -1315,7 +1313,6 @@ var cosmosDbResourceName = 'cosmos-${solutionSuffix}' var cosmosDbDatabaseName = 'macae' var cosmosDbDatabaseMemoryContainerName = 'memory' -//TODO: update to latest version of AVM module module cosmosDb 'br/public:avm/res/document-db/database-account:0.15.0' = { name: take('avm.res.document-db.database-account.${cosmosDbResourceName}', 64) params: { @@ -1498,24 +1495,6 @@ module containerApp 'br/public:avm/res/app/container-app:0.18.1' = { { name: 'backend' image: '${backendContainerRegistryHostname}/${backendContainerImageName}:${backendContainerImageTag}' - //TODO: configure probes for container app - // probes: [ - // { - // httpGet: { - // httpHeaders: [ - // { - // name: 'Custom-Header' - // value: 'Awesome' - // } - // ] - // path: '/health' - // port: 8080 - // } - // initialDelaySeconds: 3 - // periodSeconds: 3 - // type: 'Liveness' - // } - // ] resources: { cpu: '2.0' memory: '4.0Gi' @@ -1708,25 +1687,6 @@ module containerAppMcp 'br/public:avm/res/app/container-app:0.18.1' = { { name: 'mcp' image: '${MCPContainerRegistryHostname}/${MCPContainerImageName}:${MCPContainerImageTag}' - //image: 'macaemcpacrdk.azurecr.io/macae-mac-app:t9' - //TODO: configure probes for container app - // probes: [ - // { - // httpGet: { - // httpHeaders: [ - // { - // name: 'Custom-Header' - // value: 'Awesome' - // } - // ] - // path: '/health' - // port: 8080 - // } - // initialDelaySeconds: 3 - // periodSeconds: 3 - // type: 'Liveness' - // } - // ] resources: { cpu: '2.0' memory: '4.0Gi' diff --git a/infra/main_custom.bicep b/infra/main_custom.bicep index 14346ae20..6c4bf0329 100644 --- a/infra/main_custom.bicep +++ b/infra/main_custom.bicep @@ -673,14 +673,12 @@ module virtualNetwork 'br/public:avm/res/network/virtual-network:0.7.0' = if (en { name: 'backend' addressPrefix: '10.0.0.0/27' - //defaultOutboundAccess: false TODO: check this configuration for a more restricted outbound access networkSecurityGroupResourceId: networkSecurityGroupBackend!.outputs.resourceId } { name: 'administration' addressPrefix: '10.0.0.32/27' networkSecurityGroupResourceId: networkSecurityGroupAdministration!.outputs.resourceId - //defaultOutboundAccess: false TODO: check this configuration for a more restricted outbound access //natGatewayResourceId: natGateway.outputs.resourceId } { @@ -1314,7 +1312,6 @@ var cosmosDbResourceName = 'cosmos-${solutionSuffix}' var cosmosDbDatabaseName = 'macae' var cosmosDbDatabaseMemoryContainerName = 'memory' -//TODO: update to latest version of AVM module module cosmosDb 'br/public:avm/res/document-db/database-account:0.15.0' = { name: take('avm.res.document-db.database-account.${cosmosDbResourceName}', 64) params: { @@ -1530,24 +1527,6 @@ module containerApp 'br/public:avm/res/app/container-app:0.18.1' = { name: 'backend' //image: '${backendContainerRegistryHostname}/${backendContainerImageName}:${backendContainerImageTag}' image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' - //TODO: configure probes for container app - // probes: [ - // { - // httpGet: { - // httpHeaders: [ - // { - // name: 'Custom-Header' - // value: 'Awesome' - // } - // ] - // path: '/health' - // port: 8080 - // } - // initialDelaySeconds: 3 - // periodSeconds: 3 - // type: 'Liveness' - // } - // ] resources: { cpu: '2.0' memory: '4.0Gi' @@ -1746,24 +1725,6 @@ module containerAppMcp 'br/public:avm/res/app/container-app:0.18.1' = { name: 'mcp' //image: '${backendContainerRegistryHostname}/${backendContainerImageName}:${backendContainerImageTag}' image: 'mcr.microsoft.com/azuredocs/containerapps-helloworld:latest' - //TODO: configure probes for container app - // probes: [ - // { - // httpGet: { - // httpHeaders: [ - // { - // name: 'Custom-Header' - // value: 'Awesome' - // } - // ] - // path: '/health' - // port: 8080 - // } - // initialDelaySeconds: 3 - // periodSeconds: 3 - // type: 'Liveness' - // } - // ] resources: { cpu: '2.0' memory: '4.0Gi' diff --git a/src/backend/v3/api/router.py b/src/backend/v3/api/router.py index ba57bd9f7..cb65f85d4 100644 --- a/src/backend/v3/api/router.py +++ b/src/backend/v3/api/router.py @@ -9,36 +9,18 @@ from auth.auth_utils import get_authenticated_user_details from common.config.app_config import config from common.database.database_factory import DatabaseFactory -from common.models.messages_kernel import ( - InputTask, - Plan, - PlanStatus, - PlanWithSteps, - TeamSelectionRequest, -) +from common.models.messages_kernel import (InputTask, Plan, PlanStatus, + PlanWithSteps, TeamSelectionRequest) from common.utils.event_utils import track_event_if_configured from common.utils.utils_date import format_dates_in_messages from common.utils.utils_kernel import rai_success, rai_validate_team_config -from fastapi import ( - APIRouter, - BackgroundTasks, - File, - HTTPException, - Query, - Request, - UploadFile, - WebSocket, - WebSocketDisconnect, -) +from fastapi import (APIRouter, BackgroundTasks, File, HTTPException, Query, + Request, UploadFile, WebSocket, WebSocketDisconnect) from semantic_kernel.agents.runtime import InProcessRuntime from v3.common.services.plan_service import PlanService from v3.common.services.team_service import TeamService -from v3.config.settings import ( - connection_config, - current_user_id, - orchestration_config, - team_config, -) +from v3.config.settings import (connection_config, current_user_id, + orchestration_config, team_config) from v3.orchestration.orchestration_manager import OrchestrationManager router = APIRouter() @@ -287,7 +269,7 @@ async def process_request( "plan_id": plan.plan_id, "session_id": input_task.session_id, "user_id": user_id, - "team_id": team_id, # TODO add current_team_id + "team_id": team_id, "description": input_task.description, }, ) diff --git a/src/frontend/src/api/apiService.tsx b/src/frontend/src/api/apiService.tsx index 59280054d..8be89ec9f 100644 --- a/src/frontend/src/api/apiService.tsx +++ b/src/frontend/src/api/apiService.tsx @@ -128,7 +128,6 @@ export class APIService { async getPlans(sessionId?: string, useCache = true): Promise { const cacheKey = `plans_${sessionId || 'all'}`; const params = sessionId ? { session_id: sessionId } : {}; - // TODO replace session for team_id const fetcher = async () => { const data = await apiClient.get(API_ENDPOINTS.PLANS, { params }); if (useCache) { diff --git a/src/frontend/src/pages/HomePage.tsx b/src/frontend/src/pages/HomePage.tsx index 3484c3d78..b18655c7b 100644 --- a/src/frontend/src/pages/HomePage.tsx +++ b/src/frontend/src/pages/HomePage.tsx @@ -103,7 +103,6 @@ const HomePage: React.FC = () => { if (team) { try { - // TODO REFRACTOR THIS CODE setIsLoadingTeam(true); const initResponse = await TeamService.initializeTeam(true); @@ -198,7 +197,6 @@ const HomePage: React.FC = () => { selectedTeam={selectedTeam} /> ) : ( - // TODO MOVE THIS STYLE TO CSS