@@ -7,12 +7,22 @@ A multimodal content generation solution for retail marketing campaigns using Mi
77This 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
1828The 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