Skip to content

Commit 6a2eca4

Browse files
Merge branch 'main' into dev
2 parents a7d6a2e + 583871e commit 6a2eca4

File tree

6 files changed

+99
-1
lines changed

6 files changed

+99
-1
lines changed

.github/workflows/deploy-orchestrator.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ on:
6161
required: false
6262
default: 'false'
6363
type: string
64+
USE_ADVANCED_IMAGE_PROCESSING:
65+
description: 'Use Advanced Image Processing'
66+
required: false
67+
default: 'false'
68+
type: string
6469
DATABASE_TYPE:
6570
description: 'Type of database to use'
6671
required: false
@@ -86,11 +91,12 @@ jobs:
8691
cleanup_resources: ${{ inputs.cleanup_resources }}
8792
AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
8893
AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
94+
USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
8995
DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
9096
secrets: inherit
9197

9298

93-
99+
94100
e2e-test:
95101
if: "!cancelled() && ((needs.deploy.result == 'success' && needs.deploy.outputs.WEB_APPURL != '' && needs.deploy.outputs.ADMIN_APPURL != '') || (inputs.existing_webapp_url != '' && inputs.existing_webapp_url != null && inputs.existing_admin_app_url != '' && inputs.existing_admin_app_url != null)) && (inputs.trigger_type != 'workflow_dispatch' || (inputs.run_e2e_tests != 'None' && inputs.run_e2e_tests != '' && inputs.run_e2e_tests != null))"
96102
needs: [deploy]

.github/workflows/deploy-v2.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ on:
8484
- 'false'
8585
- 'true'
8686
default: 'false'
87+
USE_ADVANCED_IMAGE_PROCESSING:
88+
description: 'Use Advanced Image Processing'
89+
required: false
90+
type: choice
91+
options:
92+
- 'false'
93+
- 'true'
94+
default: 'false'
8795

8896
existing_webapp_url:
8997
description: 'Existing Front-End Web URL (Skips Deployment)'
@@ -120,6 +128,7 @@ jobs:
120128
azure_env_log_analytics_workspace_id: ${{ steps.validate.outputs.azure_env_log_analytics_workspace_id }}
121129
azure_search_use_integrated_vectorization: ${{ steps.validate.outputs.azure_search_use_integrated_vectorization }}
122130
azure_search_use_semantic_search: ${{ steps.validate.outputs.azure_search_use_semantic_search }}
131+
use_advanced_image_processing: ${{ steps.validate.outputs.use_advanced_image_processing }}
123132
existing_webapp_url: ${{ steps.validate.outputs.existing_webapp_url }}
124133
existing_admin_app_url: ${{ steps.validate.outputs.existing_admin_app_url }}
125134
steps:
@@ -137,6 +146,7 @@ jobs:
137146
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
138147
INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ github.event.inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
139148
INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ github.event.inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
149+
INPUT_USE_ADVANCED_IMAGE_PROCESSING: ${{ github.event.inputs.USE_ADVANCED_IMAGE_PROCESSING }}
140150
INPUT_EXISTING_WEBAPP_URL: ${{ github.event.inputs.existing_webapp_url }}
141151
INPUT_EXISTING_ADMIN_APP_URL: ${{ github.event.inputs.existing_admin_app_url }}
142152
EVENT_NAME: ${{ github.event_name }}
@@ -266,6 +276,16 @@ jobs:
266276
echo "✅ AZURE_SEARCH_USE_SEMANTIC_SEARCH: '$SEMANTIC_SEARCH' is valid"
267277
fi
268278
279+
# Validate USE_ADVANCED_IMAGE_PROCESSING (boolean string)
280+
ADVANCED_IMAGE_PROCESSING="${INPUT_USE_ADVANCED_IMAGE_PROCESSING:-false}"
281+
if [[ "$ADVANCED_IMAGE_PROCESSING" != "true" && "$ADVANCED_IMAGE_PROCESSING" != "false" ]]; then
282+
echo "❌ ERROR: USE_ADVANCED_IMAGE_PROCESSING must be 'true' or 'false', got: '$ADVANCED_IMAGE_PROCESSING'"
283+
VALIDATION_ERRORS="${VALIDATION_ERRORS}| USE_ADVANCED_IMAGE_PROCESSING | \`$ADVANCED_IMAGE_PROCESSING\` | Must be 'true' or 'false' |\n"
284+
VALIDATION_FAILED=true
285+
else
286+
echo "✅ USE_ADVANCED_IMAGE_PROCESSING: '$ADVANCED_IMAGE_PROCESSING' is valid"
287+
fi
288+
269289
# Validate existing_webapp_url (optional, must start with https)
270290
if [[ -n "$INPUT_EXISTING_WEBAPP_URL" ]]; then
271291
if [[ ! "$INPUT_EXISTING_WEBAPP_URL" =~ ^https:// ]]; then
@@ -342,6 +362,7 @@ jobs:
342362
echo "azure_env_log_analytics_workspace_id=$INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID" >> $GITHUB_OUTPUT
343363
echo "azure_search_use_integrated_vectorization=$INTEGRATED_VECTORIZATION" >> $GITHUB_OUTPUT
344364
echo "azure_search_use_semantic_search=$SEMANTIC_SEARCH" >> $GITHUB_OUTPUT
365+
echo "use_advanced_image_processing=$ADVANCED_IMAGE_PROCESSING" >> $GITHUB_OUTPUT
345366
echo "existing_webapp_url=$INPUT_EXISTING_WEBAPP_URL" >> $GITHUB_OUTPUT
346367
echo "existing_admin_app_url=$INPUT_EXISTING_ADMIN_APP_URL" >> $GITHUB_OUTPUT
347368
@@ -361,5 +382,6 @@ jobs:
361382
trigger_type: ${{ github.event_name }}
362383
AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ needs.validate-inputs.outputs.azure_search_use_integrated_vectorization || 'false' }}
363384
AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ needs.validate-inputs.outputs.azure_search_use_semantic_search || 'false' }}
385+
USE_ADVANCED_IMAGE_PROCESSING: ${{ needs.validate-inputs.outputs.use_advanced_image_processing || 'false' }}
364386
DATABASE_TYPE: ${{ needs.validate-inputs.outputs.database_type || 'PostgreSQL' }}
365387
secrets: inherit

.github/workflows/job-deploy-linux.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ on:
3636
required: false
3737
type: string
3838
default: 'false'
39+
USE_ADVANCED_IMAGE_PROCESSING:
40+
required: false
41+
type: string
42+
default: 'false'
3943
DATABASE_TYPE:
4044
required: false
4145
type: string
@@ -93,6 +97,7 @@ jobs:
9397
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
9498
INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
9599
INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
100+
INPUT_USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
96101
INPUT_DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
97102
run: |
98103
echo "🔍 Validating workflow input parameters..."
@@ -202,6 +207,14 @@ jobs:
202207
echo "✅ AZURE_SEARCH_USE_SEMANTIC_SEARCH: '$INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH' is valid"
203208
fi
204209
210+
# Validate USE_ADVANCED_IMAGE_PROCESSING (boolean string)
211+
if [[ "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" != "true" && "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" != "false" ]]; then
212+
echo "❌ ERROR: USE_ADVANCED_IMAGE_PROCESSING must be 'true' or 'false', got: '$INPUT_USE_ADVANCED_IMAGE_PROCESSING'"
213+
VALIDATION_FAILED=true
214+
else
215+
echo "✅ USE_ADVANCED_IMAGE_PROCESSING: '$INPUT_USE_ADVANCED_IMAGE_PROCESSING' is valid"
216+
fi
217+
205218
# Validate DATABASE_TYPE (specific allowed values)
206219
if [[ "$INPUT_DATABASE_TYPE" != "PostgreSQL" && "$INPUT_DATABASE_TYPE" != "CosmosDB" ]]; then
207220
echo "❌ ERROR: DATABASE_TYPE must be one of: PostgreSQL, CosmosDB, got: '$INPUT_DATABASE_TYPE'"
@@ -268,6 +281,7 @@ jobs:
268281
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
269282
INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
270283
INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
284+
INPUT_USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
271285
INPUT_DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
272286
EVENT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
273287
SECRET_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
@@ -309,6 +323,7 @@ jobs:
309323
echo "Setting Azure Search and Database configuration..."
310324
azd env set AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION="$INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION"
311325
azd env set AZURE_SEARCH_USE_SEMANTIC_SEARCH="$INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH"
326+
azd env set USE_ADVANCED_IMAGE_PROCESSING="$INPUT_USE_ADVANCED_IMAGE_PROCESSING"
312327
azd env set DATABASE_TYPE="$INPUT_DATABASE_TYPE"
313328
314329
# Deploy using azd up

.github/workflows/job-deploy-windows.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ on:
3636
required: false
3737
type: string
3838
default: 'false'
39+
USE_ADVANCED_IMAGE_PROCESSING:
40+
required: false
41+
type: string
42+
default: 'false'
3943
DATABASE_TYPE:
4044
required: false
4145
type: string
@@ -93,6 +97,7 @@ jobs:
9397
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
9498
INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
9599
INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
100+
INPUT_USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
96101
INPUT_DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
97102
run: |
98103
echo "🔍 Validating workflow input parameters..."
@@ -202,6 +207,14 @@ jobs:
202207
echo "✅ AZURE_SEARCH_USE_SEMANTIC_SEARCH: '$INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH' is valid"
203208
fi
204209
210+
# Validate USE_ADVANCED_IMAGE_PROCESSING (boolean string)
211+
if [[ "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" != "true" && "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" != "false" ]]; then
212+
echo "❌ ERROR: USE_ADVANCED_IMAGE_PROCESSING must be 'true' or 'false', got: '$INPUT_USE_ADVANCED_IMAGE_PROCESSING'"
213+
VALIDATION_FAILED=true
214+
else
215+
echo "✅ USE_ADVANCED_IMAGE_PROCESSING: '$INPUT_USE_ADVANCED_IMAGE_PROCESSING' is valid"
216+
fi
217+
205218
# Validate DATABASE_TYPE (specific allowed values)
206219
if [[ "$INPUT_DATABASE_TYPE" != "PostgreSQL" && "$INPUT_DATABASE_TYPE" != "CosmosDB" ]]; then
207220
echo "❌ ERROR: DATABASE_TYPE must be one of: PostgreSQL, CosmosDB, got: '$INPUT_DATABASE_TYPE'"
@@ -269,6 +282,7 @@ jobs:
269282
INPUT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
270283
INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
271284
INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
285+
INPUT_USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
272286
INPUT_DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
273287
EVENT_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ github.event.inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
274288
SECRET_AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ secrets.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
@@ -310,6 +324,7 @@ jobs:
310324
Write-Host "Setting Azure Search and Database configuration..."
311325
azd env set AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION="$env:INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION"
312326
azd env set AZURE_SEARCH_USE_SEMANTIC_SEARCH="$env:INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH"
327+
azd env set USE_ADVANCED_IMAGE_PROCESSING="$env:INPUT_USE_ADVANCED_IMAGE_PROCESSING"
313328
azd env set DATABASE_TYPE="$env:INPUT_DATABASE_TYPE"
314329
315330
# Deploy using azd up

.github/workflows/job-deploy.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ on:
5656
required: false
5757
default: 'false'
5858
type: string
59+
USE_ADVANCED_IMAGE_PROCESSING:
60+
description: 'Use Advanced Image Processing'
61+
required: false
62+
default: 'false'
63+
type: string
5964
DATABASE_TYPE:
6065
description: 'Type of database to use'
6166
required: false
@@ -139,6 +144,7 @@ jobs:
139144
INPUT_EXISTING_WEBAPP_URL: ${{ inputs.existing_webapp_url }}
140145
INPUT_AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
141146
INPUT_AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
147+
INPUT_USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
142148
INPUT_DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
143149
run: |
144150
echo "🔍 Validating workflow input parameters..."
@@ -245,6 +251,18 @@ jobs:
245251
echo "✅ AZURE_SEARCH_USE_SEMANTIC_SEARCH: Not provided (will use default 'false')"
246252
fi
247253
254+
# Validate USE_ADVANCED_IMAGE_PROCESSING (boolean string)
255+
if [[ -n "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" ]]; then
256+
if [[ "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" != "true" && "$INPUT_USE_ADVANCED_IMAGE_PROCESSING" != "false" ]]; then
257+
echo "❌ ERROR: USE_ADVANCED_IMAGE_PROCESSING must be 'true' or 'false', got: '$INPUT_USE_ADVANCED_IMAGE_PROCESSING'"
258+
VALIDATION_FAILED=true
259+
else
260+
echo "✅ USE_ADVANCED_IMAGE_PROCESSING: '$INPUT_USE_ADVANCED_IMAGE_PROCESSING' is valid"
261+
fi
262+
else
263+
echo "✅ USE_ADVANCED_IMAGE_PROCESSING: Not provided (will use default 'false')"
264+
fi
265+
248266
# Validate existing_webapp_url (optional, must start with https)
249267
if [[ -n "$INPUT_EXISTING_WEBAPP_URL" ]]; then
250268
if [[ ! "$INPUT_EXISTING_WEBAPP_URL" =~ ^https:// ]]; then
@@ -464,6 +482,7 @@ jobs:
464482
echo "| **Database Type** | \`${{ inputs.DATABASE_TYPE }}\` |" >> $GITHUB_STEP_SUMMARY
465483
echo "| **Integrated Vectorization** | \`${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}\` |" >> $GITHUB_STEP_SUMMARY
466484
echo "| **Semantic Search** | \`${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}\` |" >> $GITHUB_STEP_SUMMARY
485+
echo "| **Advanced Image Processing** | \`${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}\` |" >> $GITHUB_STEP_SUMMARY
467486
echo "| **Run E2E Tests** | \`${{ env.RUN_E2E_TESTS }}\` |" >> $GITHUB_STEP_SUMMARY
468487
echo "| **Cleanup Resources** | ${{ env.CLEANUP_RESOURCES == 'true' && '✅ Yes' || '❌ No' }} |" >> $GITHUB_STEP_SUMMARY
469488
@@ -497,6 +516,7 @@ jobs:
497516
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
498517
AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
499518
AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
519+
USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
500520
DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
501521
secrets: inherit
502522

@@ -516,6 +536,7 @@ jobs:
516536
AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID: ${{ inputs.AZURE_ENV_LOG_ANALYTICS_WORKSPACE_ID }}
517537
AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION: ${{ inputs.AZURE_SEARCH_USE_INTEGRATED_VECTORIZATION }}
518538
AZURE_SEARCH_USE_SEMANTIC_SEARCH: ${{ inputs.AZURE_SEARCH_USE_SEMANTIC_SEARCH }}
539+
USE_ADVANCED_IMAGE_PROCESSING: ${{ inputs.USE_ADVANCED_IMAGE_PROCESSING }}
519540
DATABASE_TYPE: ${{ inputs.DATABASE_TYPE }}
520541
secrets: inherit
521542

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,25 @@ When deploying the solution using the "Deploy to Azure" button, you'll see two f
247247

248248
## Supporting documentation
249249

250+
### Cross references
251+
Check out similar solution accelerators
252+
253+
| Solution Accelerator | Description |
254+
|---|---|
255+
|[GPT-RAG Accelerator](https://github.com/Azure/gpt-rag)| Secure enterprise GPT assistant framework that uses Retrieval-Augmented Generation to ground answers on your data. It provides a ready architecture (Azure OpenAI + knowledge search) for building AI chatbots that “know” your enterprise content, with built-in security and scalability.|
256+
|[Document Processing Accelerator](https://github.com/Azure/doc-proc-solution-accelerator/) | Modular document AI pipeline that automatically extracts, analyzes, and indexes information from unstructured documents (PDFs, images, etc.) at scale. It offers plug-and-play components for OCR, classification, summarization, and integration to search or chatbots – speeding up data ingestion with enterprise security.|
257+
258+
<br/>
259+
260+
💡 Want to get familiar with Microsoft's AI and Data Engineering best practices? Check out our playbooks to learn more
261+
262+
| Playbook | Description |
263+
|:---|:---|
264+
| [AI&nbsp;playbook](https://learn.microsoft.com/en-us/ai/playbook/) | The Artificial Intelligence (AI) Playbook provides enterprise software engineers with solutions, capabilities, and code developed to solve real-world AI problems. |
265+
| [Data&nbsp;playbook](https://learn.microsoft.com/en-us/data-engineering/playbook/understanding-data-playbook) | The data playbook provides enterprise software engineers with solutions which contain code developed to solve real-world problems. Everything in the playbook is developed with, and validated by, some of Microsoft's largest and most influential customers and partners. |
266+
267+
<br/>
268+
250269
### Resource links
251270

252271
This solution accelerator deploys the following resources. It's critical to comprehend the functionality of each. Below are the links to their respective documentation:

0 commit comments

Comments
 (0)