|
| 1 | +# Demo: Zava AI Shopping Assistant <br/> Multi-Agent Architecture - Overview |
| 2 | + |
| 3 | +Costa Rica |
| 4 | + |
| 5 | +[](https://github.com/) |
| 6 | +[brown9804](https://github.com/brown9804) |
| 7 | + |
| 8 | +Last updated: 2025-11-12 |
| 9 | + |
| 10 | +---------- |
| 11 | + |
| 12 | +> This is demo of `Zava AI Shopping Assistant`, a multi-agent system designed for e-commerce. It features a fully automated `"Zero-Touch" deployment` pipeline orchestrated by Terraform, which `provisions infrastructure, ingests data, creates real AI agents in Azure AI Foundry, and deploys the application container.` |
| 13 | +
|
| 14 | +<img width="1905" height="1086" alt="image" src="https://github.com/user-attachments/assets/5cd2776f-4606-45c2-9482-53ff2d4df74e" /> |
| 15 | + |
| 16 | +## Key Features |
| 17 | + |
| 18 | +- **Multi-Agent Architecture**: Few specialized AI agents working in concert: |
| 19 | + - **Cora (Shopper)**: Front-facing assistant for general queries. |
| 20 | + - **Interior Designer**: Provides style advice and generates images (DALL-E 3). |
| 21 | + - **Inventory Manager**: Checks stock availability. |
| 22 | + - **Customer Loyalty**: Manages rewards and discounts. |
| 23 | + - **Cart Manager**: Handles shopping cart operations. |
| 24 | +- **Real Azure AI Agents**: Integrates with **Azure AI Foundry** to create and host persistent agents (not just local simulations). |
| 25 | +- **Zero-Touch Deployment**: A single [terraform apply](./terraform-infrastructure/README.md) command handles the entire lifecycle from infrastructure to application code. |
| 26 | +- **Intelligent Routing**: A dedicated Handoff Service classifies user intent and routes messages to the appropriate specialist agent. |
| 27 | +- **Data Pipeline Automation**: Automatically ingests product catalogs into Cosmos DB and builds Vector Search indexes. |
| 28 | + |
| 29 | +## Architecture |
| 30 | + |
| 31 | +```mermaid |
| 32 | +graph TD |
| 33 | + User[User] <--> UI[Chat Interface] |
| 34 | + UI <--> App[FastAPI Application] |
| 35 | + App <--> Handoff[Handoff Service] |
| 36 | + Handoff -->|Classifies Intent| Router{Router} |
| 37 | + |
| 38 | + Router -->|General| Cora[Cora Agent] |
| 39 | + Router -->|Design| Design[Interior Design Agent] |
| 40 | + Router -->|Stock| Inventory[Inventory Agent] |
| 41 | + Router -->|Rewards| Loyalty[Loyalty Agent] |
| 42 | + Router -->|Checkout| Cart[Cart Agent] |
| 43 | + |
| 44 | + Inventory -->|Query| Search[Azure AI Search] |
| 45 | + Inventory -->|Lookup| Cosmos[Cosmos DB] |
| 46 | +``` |
| 47 | + |
| 48 | +> [!IMPORTANT] |
| 49 | +> The deployment process typically takes 15-20 minutes |
| 50 | +
|
| 51 | +## What Happens Under the Hood? |
| 52 | + |
| 53 | +> When you run `terraform apply`, the following automated sequence occurs: |
| 54 | +
|
| 55 | +1. **Infrastructure Provisioning**: |
| 56 | + - Creates Resource Group, Cosmos DB, Azure AI Foundry, AI Search, Storage Account, Key Vault, and Container Registry (ACR). |
| 57 | + - Deploys AI Models (`gpt-4o-mini`, `text-embedding-3-small`). |
| 58 | + |
| 59 | + <img width="1859" height="900" alt="image" src="https://github.com/user-attachments/assets/cd24ab7f-5ddd-46de-b266-0d0a24c45803" /> |
| 60 | + |
| 61 | +2. **Data Pipeline Execution**: |
| 62 | + - Sets up a Python virtual environment. |
| 63 | + - Ingests `product_catalog.csv` into Cosmos DB. |
| 64 | + |
| 65 | + https://github.com/user-attachments/assets/41bf0976-0ca8-47fe-a2fa-8750bcc6f848 |
| 66 | + |
| 67 | + - Creates and populates an Azure AI Search index with vector embeddings. |
| 68 | + |
| 69 | + https://github.com/user-attachments/assets/37c4a8cd-73e1-4392-8755-fb018481d8cb |
| 70 | + |
| 71 | +3. **Agent Creation**: |
| 72 | + - Installs the `azure-ai-projects` SDK. |
| 73 | + - Connects to Azure AI Foundry. |
| 74 | + - Provisions 5 real agents with specific instructions and tool definitions |
| 75 | + - Saves the unique Agent IDs to the `.env` file. |
| 76 | + |
| 77 | + <img width="1907" height="990" alt="image" src="https://github.com/user-attachments/assets/4234ead4-16e0-4bec-bbfd-3b8891d113b0" /> |
| 78 | + |
| 79 | +4. **Application Deployment**: |
| 80 | + - Builds the Docker container in the cloud (ACR Build). |
| 81 | + - Configures the Azure Web App with the generated Agent IDs and credentials. |
| 82 | + - Deploys the container and restarts the app. |
| 83 | + |
| 84 | +## Verification |
| 85 | + |
| 86 | +> After deployment completes, verify the system: |
| 87 | +
|
| 88 | +1. **Check the Web App**: |
| 89 | + - The Terraform output will provide the `application_url`. |
| 90 | + - Visit `https://<your-app-name>.azurewebsites.net`. |
| 91 | + - You should see the Zava chat interface. |
| 92 | + |
| 93 | + https://github.com/user-attachments/assets/a1139528-6b37-4ac2-a1cb-771788ff45a4 |
| 94 | + |
| 95 | +2. **Verify Agents**: |
| 96 | + - Go to the [Azure AI Foundry Portal](https://ai.azure.com). |
| 97 | + - Navigate to your project -> **Build** -> **Agents**. |
| 98 | + - You should see all 5 agents listed. |
| 99 | + |
| 100 | + https://github.com/user-attachments/assets/3c562ccd-cff3-4a30-b9f8-44111fb71113 |
| 101 | + |
| 102 | +3. **Test Interactions**: For example: |
| 103 | + - **General**: "Hi, who are you?" (Handled by Cora) |
| 104 | + - **Inventory**: "Do you have the classic leather sofa in stock?" (Handled by Inventory Agent) |
| 105 | + - **Design**: "What colors of green paint do you have?" |
0 commit comments