Skip to content

Commit b11eb41

Browse files
committed
Update deployment scripts for Agent Framework architecture
- Updated deploy.sh to use ACR/ACI deployment workflow - Updated deploy.ps1 with same changes - Added assign_rbac_roles.sh for managed identity RBAC setup - Created comprehensive DEPLOYMENT.md guide - Updated README.md with current architecture details - Removed azd dependency from main deployment scripts - Added detailed RBAC instructions for GPT, DALL-E, Cosmos DB, Storage
1 parent 0cbbacd commit b11eb41

5 files changed

Lines changed: 981 additions & 125 deletions

File tree

content-gen/README.md

Lines changed: 44 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,22 @@ A multimodal content generation solution for retail marketing campaigns using Mi
77
This accelerator provides an internal chatbot that can:
88

99
- **Interpret Creative Briefs**: Parse free-text creative briefs into structured fields (overview, objectives, target audience, key message, tone/style, deliverable, timelines, visual guidelines, CTA)
10-
- **Generate Multimodal Content**: Create marketing copy and images using GPT-5 and DALL-E 3
10+
- **Generate Multimodal Content**: Create marketing copy and images using GPT models and DALL-E 3
1111
- **Ensure Brand Compliance**: Validate all content against brand guidelines with severity-categorized warnings
1212
- **Ground in Enterprise Data**: Leverage product information, product images, and brand guidelines stored in Azure services
1313

1414
## Architecture
1515

16+
### Backend
17+
- **Runtime**: Python 3.11 + Quart + Hypercorn
18+
- **Deployment**: Azure Container Instance (ACI) in private VNet
19+
- **Authentication**: System-assigned Managed Identity
20+
21+
### Frontend
22+
- **Framework**: React + Vite + TypeScript + Fluent UI
23+
- **Deployment**: Azure App Service with Node.js proxy
24+
- **Features**: Server-Sent Events (SSE) for streaming responses
25+
1626
### Specialized Agents (Microsoft Agent Framework)
1727

1828
The solution uses **HandoffBuilder** orchestration with 6 specialized agents:
@@ -22,7 +32,7 @@ The solution uses **HandoffBuilder** orchestration with 6 specialized agents:
2232
| **TriageAgent** | Coordinator that routes user requests to appropriate specialists |
2333
| **PlanningAgent** | Parses creative briefs, develops content strategy, returns for user confirmation |
2434
| **ResearchAgent** | Retrieves products from CosmosDB, fetches brand guidelines, assembles grounding data |
25-
| **TextContentAgent** | Generates marketing copy (headlines, body, CTAs) using GPT-5 |
35+
| **TextContentAgent** | Generates marketing copy (headlines, body, CTAs) using GPT |
2636
| **ImageContentAgent** | Creates marketing images via DALL-E 3 with product context |
2737
| **ComplianceAgent** | Validates content against brand guidelines, categorizes violations |
2838

@@ -34,14 +44,17 @@ The solution uses **HandoffBuilder** orchestration with 6 specialized agents:
3444
| **Warning** | Brand guideline deviations | Review recommended |
3545
| **Info** | Style suggestions | Optional improvements |
3646

37-
### Data Storage
47+
### Azure Services
3848

39-
| Data | Storage | Purpose |
40-
|------|---------|---------|
41-
| Products | CosmosDB | Product catalog with auto-generated image descriptions |
42-
| Chat History | CosmosDB | Conversation persistence |
43-
| Product Images | Blob Storage | Seed images for DALL-E generation |
44-
| Brand Guidelines | Solution Parameters | Injected into all agent instructions |
49+
| Service | Purpose |
50+
|---------|---------|
51+
| Azure OpenAI (GPT) | Text generation and content creation |
52+
| Azure OpenAI (DALL-E 3) | Image generation (can be separate resource) |
53+
| Azure Cosmos DB | Products catalog, chat conversations |
54+
| Azure Blob Storage | Product images, generated images |
55+
| Azure Container Instance | Backend API hosting |
56+
| Azure App Service | Frontend hosting |
57+
| Azure Container Registry | Container image storage |
4558

4659
## Creative Brief Fields
4760

@@ -78,27 +91,31 @@ The system extracts the following fields from free-text creative briefs:
7891
### Prerequisites
7992

8093
- Azure subscription with access to:
81-
- Azure AI Foundry (GPT-5 + DALL-E 3)
82-
- Azure CosmosDB
94+
- Azure OpenAI (GPT model - GPT-4 or higher recommended)
95+
- Azure OpenAI (DALL-E 3 - can be same or different resource)
96+
- Azure Cosmos DB
8397
- Azure Blob Storage
98+
- Azure Container Instance
8499
- Azure App Service
85-
- Azure Developer CLI (azd) >= 1.18.0
100+
- Azure Container Registry
101+
- Azure CLI >= 2.50.0
102+
- Docker (optional - ACR can build containers)
86103
- Python 3.11+
87104
- Node.js 18+
88105

89-
### Deployment
106+
### Quick Deployment
90107

91108
```bash
92-
# Login to Azure
93-
azd auth login
109+
# Clone the repository
110+
git clone <repository-url>
111+
cd content-gen
94112

95-
# Deploy infrastructure and application
96-
azd up
97-
98-
# Upload product data (optional)
99-
python ./scripts/product_ingestion.py
113+
# Run deployment script
114+
./scripts/deploy.sh
100115
```
101116

117+
See [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) for detailed deployment instructions.
118+
102119
### Local Development
103120

104121
```bash
@@ -121,10 +138,13 @@ See `src/backend/settings.py` for all configuration options. Key settings:
121138

122139
| Variable | Description |
123140
|----------|-------------|
124-
| `AZURE_AI_AGENT_ENDPOINT` | Azure AI Foundry project endpoint |
125-
| `AZURE_OPENAI_MODEL` | GPT model deployment name (gpt-5) |
126-
| `AZURE_DALLE_MODEL` | DALL-E model deployment name (dall-e-3) |
127-
| `AZURE_COSMOSDB_ACCOUNT` | CosmosDB account name |
141+
| `AZURE_OPENAI_ENDPOINT` | Azure OpenAI endpoint for GPT model |
142+
| `AZURE_OPENAI_DEPLOYMENT_NAME` | GPT model deployment name |
143+
| `AZURE_OPENAI_DALLE_ENDPOINT` | Azure OpenAI endpoint for DALL-E (if separate) |
144+
| `AZURE_OPENAI_DALLE_DEPLOYMENT` | DALL-E deployment name (dall-e-3) |
145+
| `COSMOS_ENDPOINT` | Azure Cosmos DB endpoint |
146+
| `COSMOS_DATABASE` | Cosmos DB database name |
147+
| `AZURE_STORAGE_ACCOUNT_NAME` | Storage account name |
128148
| `BRAND_*` | Brand guideline parameters |
129149

130150
### Brand Guidelines

0 commit comments

Comments
 (0)