Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions 03-Azure/01-04-AI/05_Claims_Processing/challenges/challenge-01.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,46 @@ Mistral Document AI key and endpoint, Azure AI Search key and endpoint, and Stor
connection string required by Challenges 2 through 6. The file is excluded from Git,
written with permissions `600`, and its secret values are not displayed.

### 4. Verify the Blob Storage assets

Before continuing, confirm that the lab deployment uploaded the claim and policy files.
Find the Storage account name in the output from `get-keys.sh`, then run these commands
from the repository root:

```bash
STORAGE_ACCOUNT="<storage-account-name>"
STORAGE_CONNECTION_STRING="$(sed -n 's/^AZURE_STORAGE_CONNECTION_STRING=//p' .env)"

az storage blob list \
--connection-string "$STORAGE_CONNECTION_STRING" \
--container-name claims-data \
--query "length(@)" \
--output tsv

az storage blob list \
--connection-string "$STORAGE_CONNECTION_STRING" \
--container-name policies \
--query "length(@)" \
--output tsv
```

The expected results are `17` claim files and `5` policy documents. You can also open
the Storage account in the Azure portal, select **Data storage > Containers**, and
inspect the `claims-data` and `policies` containers directly.

If either count is lower than expected, upload and verify only the missing lab assets
without redeploying the infrastructure:

```bash
bash labautomation/upload-assets.sh \
--subscription "<your-subscription-id>" \
--resource-group "<your-resource-group-name>" \
--storage-account "$STORAGE_ACCOUNT"
```

The command finishes with `Asset upload complete and verified: 17 claims, 5 policies.`
It does not deploy or modify the lab infrastructure.

Confirm that the participant CLI is available:

```bash
Expand All @@ -111,6 +151,8 @@ Review the [solution architecture](../README.md#architecture) and identify where

- **The Azure resource group is missing:** Confirm that you signed in with the assigned lab account and selected the assigned subscription in the Azure portal.
- **The setup script reports an authorization error:** Confirm that the Codespace is signed in with the assigned lab account. That account must be able to read deployment outputs and list keys for the Foundry, Azure AI Search, and Storage resources.
- **The Blob Storage verification reports an authorization error:** Run `get-keys.sh` again and confirm that `.env` contains a non-empty `AZURE_STORAGE_CONNECTION_STRING` value. Do not print or share the value.
- **A Blob Storage container is empty or incomplete:** Run `labautomation/upload-assets.sh` with your subscription, resource group, and Storage account values, then repeat the verification commands.
- **The GitHub organization or repository is missing:** Sign out of GitHub, then sign in again through **Sign in with your identity provider** using the Hackbox credentials.
- **The dev container configuration is unavailable:** Confirm that you opened the assigned `microhack` repository before creating the Codespace.
- **The Codespace does not finish starting:** Review the creation log for the failing step, then rebuild the container or recreate the Codespace.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
"cognitiveServicesUserRoleId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'a97b65f3-24c7-4388-baec-2e87135dc908')]",
"searchServiceContributorRoleId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '7ca78c08-252a-4471-8644-bb5ff32d4ba0')]",
"searchIndexDataReaderRoleId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '1407120a-92aa-4202-b7e9-c0e197c71c8f')]",
"foundryUserRoleId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '53ca6127-db72-4b80-b1b0-d745d6d5456d')]",
"tags": {
"SecurityControl": "Ignore",
"CostControl": "Ignore"
Expand Down Expand Up @@ -154,6 +155,24 @@
"publicNetworkAccess": "Enabled"
}
},
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"name": "[guid(resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName')), parameters('allowedEntraUserIds')[copyIndex()], variables('foundryUserRoleId'))]",
"scope": "[format('Microsoft.CognitiveServices/accounts/{0}', variables('aiFoundryName'))]",
"copy": {
"name": "foundryUserAssignments",
"count": "[length(parameters('allowedEntraUserIds'))]"
},
"properties": {
"roleDefinitionId": "[variables('foundryUserRoleId')]",
"principalId": "[parameters('allowedEntraUserIds')[copyIndex()]]",
"principalType": "User"
},
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName'))]"
]
},
{
"type": "Microsoft.CognitiveServices/accounts/projects",
"apiVersion": "2025-04-01-preview",
Expand All @@ -165,7 +184,8 @@
},
"properties": {},
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName'))]"
"[resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName'))]",
"[resourceId('Microsoft.CognitiveServices/accounts/deployments', variables('aiFoundryName'), 'mistral-document-ai-2512')]"
]
},
{
Expand Down Expand Up @@ -253,7 +273,8 @@
},
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName'))]",
"[resourceId('Microsoft.Search/searchServices', variables('searchServiceName'))]"
"[resourceId('Microsoft.Search/searchServices', variables('searchServiceName'))]",
"[resourceId('Microsoft.CognitiveServices/accounts/projects', variables('aiFoundryName'), variables('aiProjectName'))]"
]
},
{
Expand Down Expand Up @@ -311,7 +332,8 @@
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName'))]",
"[resourceId('Microsoft.CognitiveServices/accounts/projects', variables('aiFoundryName'), variables('aiProjectName'))]",
"[resourceId('Microsoft.Search/searchServices', variables('searchServiceName'))]"
"[resourceId('Microsoft.Search/searchServices', variables('searchServiceName'))]",
"[resourceId('Microsoft.CognitiveServices/accounts/connections', variables('aiFoundryName'), format('{0}-aisearch', variables('aiFoundryName')))]"
]
},
{
Expand All @@ -331,7 +353,8 @@
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', variables('aiFoundryName'))]",
"[resourceId('Microsoft.CognitiveServices/accounts/projects', variables('aiFoundryName'), variables('aiProjectName'))]",
"[resourceId('Microsoft.Search/searchServices', variables('searchServiceName'))]"
"[resourceId('Microsoft.Search/searchServices', variables('searchServiceName'))]",
"[resourceId('Microsoft.CognitiveServices/accounts/projects/connections', variables('aiFoundryName'), variables('aiProjectName'), format('{0}-policies-kb', variables('aiFoundryName')))]"
]
}
],
Expand Down Expand Up @@ -362,7 +385,7 @@
},
"aiFoundryProjectName": {
"type": "string",
"value": "[variables('aiProjectName')]"
"value": "[variables('aiProjectName')]"
},
"searchServiceEndpoint": {
"type": "string",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"status": "success",
"image_path": "C:\\Users\\martasantos\\OneDrive - Microsoft\\FY27\\claims-microhack\\data\\claims\\crash1\\raw\\statements\\crash1_front.jpeg",
"processed_at_utc": "2026-07-26T17:26:48.642677+00:00",
"ocr": {
"model": "mistral-document-ai-2512",
"text": "# ACCIDENT STATEMENT FORM\n\n## Policyholder Information\n\nName: John Peterson\nAddress: 1142 Pinecrest Avenue, Springfield, OH 45503\nPhone: (937) 555-2319\nEmail: john.peterson@email.com\nPolicy Number: LIAB-AUTO-001\nClaimant ID:\n\n## Vehicle Information\n\nYear/Make/Model: 2004 Honda Accord\nColor: Silver\nVIN: 1HGCH56404A123456\nLicense Plate: OH-GHR1984\n\n## Accident Information\n\nDate of Incident: July 17, 2025\nTime: 8:30 AM\nLocation: Parking Lot, 2325 Main Street, Springfield, OH 45503\n\n## Description of Incident\n\nOn the morning of July 17, 2025, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a gray pickup truck attempting to park beside my car, struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.",
"character_count": 1032,
"pages_processed": 1,
"document_annotation": {
"claimant_name": "John Peterson",
"claim_date": "07/17/2023",
"policy_number": "LIAB-AUTO-001",
"incident_description": "On the morning of July 17, 2023, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a grey pickup truck attempting to park beside my car struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.",
"vehicle_info": {
"make": "Honda",
"model": "Accord",
"year": "2004",
"license_plate": "OH-GHR1984",
"vin": "1HGCM56404A123456"
},
"damage_description": "Significant damage to the front end and driver's side of the vehicle.",
"estimated_damage_amount": null,
"witnesses": [],
"signature_present": null,
"date_signed": null
}
},
"extracted_data": {
"claimant_name": "John Peterson",
"claim_date": "07/17/2023",
"policy_number": "LIAB-AUTO-001",
"incident_description": "On the morning of July 17, 2023, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a grey pickup truck attempting to park beside my car struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.",
"vehicle_info": {
"make": "Honda",
"model": "Accord",
"year": "2004",
"license_plate": "OH-GHR1984",
"vin": "1HGCM56404A123456"
},
"damage_description": "Significant damage to the front end and driver's side of the vehicle.",
"estimated_damage_amount": null,
"witnesses": [],
"signature_present": null,
"date_signed": null
},
"foundry_iq": {
"index_name": "crash-statements",
"match_count": 1,
"matches": [
{
"id": "crash1_front",
"content": "Claimant: John Peterson. Policy: C1A8-AU1D-001. Claim date: July 17, 2025. Vehicle: 2004 Honda Accord, VIN 1HGCM56404A123456, plate OH-GHR1984. Incident: On the morning of July 17, 2025, my vehicle was legally parked in a market parking space at 2325 Rain Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a gray pickup truck attempting to park beside my car, struck the front end and drive/side of my vehicle. The other car's driver failed to properly judge the distance and colluded with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.\nJohn Peterson\n",
"score": 3.2812333
}
]
},
"foundry_agent": {
"name": "claims-intake-agent"
},
"agent_summary": "The new OCR statement identifies claimant John Peterson and describes a silver 2004 Honda Accord that was parked at 2325 Main Street in Springfield, Ohio when a gray pickup truck struck its front end and driver\u2019s side around 8:30 AM on July 17, 2025. The retrieved crash statement is largely consistent with this OCR text, matching the claimant, date, vehicle, plate, and incident narrative, though it shows minor discrepancies such as \u201c2325 Rain Street\u201d instead of Main Street and a slightly different VIN/policy formatting\u30104:0\u2020source\u3011."
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"status": "success",
"image_path": "/workspaces/microhack/03-Azure/01-04-AI/05_Claims_Processing/data/claims/crash1/raw/statements/crash1_front.jpeg",
"processed_at_utc": "2026-09-03T09:08:22.998005+00:00",
"ocr": {
"model": "mistral-document-ai-2512",
"text": "# ACCIDENT STATEMENT FORM\n\n## Policyholder Information\n\nName: John Peterson\nAddress: 1142 Pinecrest Avenue, Springfield, OH 45503\nPhone: (937) 555-2319\nEmail: john.peterson@email.com\nPolicy Number: LIAB-AUTO-001\nClaimant ID:\n\n## Vehicle Information\n\nYear/Make/Model: 2004 Honda Accord\nColor: Silver\nVIN: 1HGCH56404A123456\nLicense Plate: OH-GHR1984\n\n## Accident Information\n\nDate of Incident: July 17, 2025\nTime: 8:30 AM\nLocation: Parking Lot, 2325 Main Street, Springfield, OH 45503\n\n## Description of Incident\n\nOn the morning of July 17, 2025, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a gray pickup truck attempting to park beside my car, struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.",
"character_count": 1032,
"pages_processed": 1,
"document_annotation": {
"claimant_name": "John Peterson",
"claim_date": "07/17/2025",
"policy_number": "LIAB-AUTO-001",
"incident_description": "On the morning of July 17, 2025, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a gray pickup truck attempting to park beside my car, struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.",
"vehicle_info": {
"make": "Honda",
"model": "Accord",
"year": "2004",
"license_plate": "OH-GHR1984",
"vin": "1HGCH56404A123456"
},
"witnesses": [],
"signature_present": null,
"date_signed": null
}
},
"extracted_data": {
"claimant_name": "John Peterson",
"claim_date": "07/17/2025",
"policy_number": "LIAB-AUTO-001",
"incident_description": "On the morning of July 17, 2025, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a gray pickup truck attempting to park beside my car, struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.",
"vehicle_info": {
"make": "Honda",
"model": "Accord",
"year": "2004",
"license_plate": "OH-GHR1984",
"vin": "1HGCH56404A123456"
},
"witnesses": [],
"signature_present": null,
"date_signed": null
},
"foundry_iq": {
"index_name": "crash-statements",
"match_count": 3,
"matches": [
{
"id": "crash1_front",
"content": "# ACCIDENT STATEMENT FORM\n\n## Policyholder Information\n\nName: John Peterson\nAddress: 1142 Pinecrest Avenue, Springfield, OH 45503\nPhone: (937) 555-2319\nEmail: john.peterson@email.com\nPolicy Number: LIAB-AUTO-001\nClaimant ID:\n\n## Vehicle Information\n\nYear/Make/Model: 2004 Honda Accord\nColor: Silver\nVIN: 1HGCH56404A123456\nLicense Plate: OH-GHR1984\n\n## Accident Information\n\nDate of Incident: July 17, 2025\nTime: 8:30 AM\nLocation: Parking Lot, 2325 Main Street, Springfield, OH 45503\n\n## Description of Incident\n\nOn the morning of July 17, 2025, my vehicle was legally parked in a market parking space at 2325 Main Street, Springfield. At approximately 8:30 AM, while I was inside a nearby store, I was notified by a witness that a gray pickup truck attempting to park beside my car, struck the front end and driver's side of my vehicle. The other car's driver failed to properly judge the distance and collided with my vehicle, causing significant damage. The other driver left their information and waited for the police to arrive.\ncrash1_front.jpeg\nJohn Peterson\nLIAB-AUTO-001\n",
"score": 11.60972
},
{
"id": "crash4_front",
"content": "# ACCIDENT STATEMENT FORM\n\n## Policyholder Information\n\nName: John Peterson\nAddress: 1142 Pinecrest Ave, Springfield, OH 45503\nPhone: (937) 555 2319\nEmail: andreatennett@email.com\nPolicy Number: COMM-AUTO-001\nClaimant ID:\n\n## Vehicle Information\n\nYear/Make/Model: 2011 Show Outback\nColor: Red\nVIN: 4S4BRBCC2B3378210\nLicense Plate: OH-CRV4413\n\n## Accident Information\n\nDate of Incident: July 19, 2025\nTime: 11:15 AM\nLocation: 6400 Westbrook Road, Dayton, OH 45415\nWeather Conditions: Clear, dry roads\n\n## Description of Incident\n\nOn July 19, 2025, at approximately 11:15 AM, I was driving my 2011 Show Outback westbound on Westbrook Road in Dayton, Ohio. While waiting in line with traffic for a stop sign, my vehicle was rear-ended by a blue sedan at moderate speed. The impact pushed my vehicle into the adjacent lane and forced my front end into the left lane's shoulder. The other driver remained at the scene and promptly called local authorities. A police report was filed.\ncrash4_front.jpeg\nJohn Peterson\nCOMM-AUTO-001\n",
"score": 5.774044
},
{
"id": "crash1_back",
"content": "Description of Damages\nFront bumper dislodged and partially detached; severe denting and scraping on the driver's side front quarter panel; wheel and tire on driver's side front damaged; paint tensifer and deformity on the driver's door; head lamp assembly and grille potentially damaged; possible niden damage to mechanical components behind the bumper\n\nWitness Information\nName: Melissa Grant\nPhone: (937) 555-8741\n\nPolice Report\nReport Number: 25-52814\nPolice Department: Springfield Police Department\n\nSignature\nSignature: John Peterson\nPrinted Name: John Peterson\nDate: July 20, 2025\ncrash1_back.jpeg\nJohn Peterson\n\n",
"score": 2.8624763
}
]
},
"foundry_agent": {
"name": "claims-intake-agent"
},
"agent_summary": "The OCR describes claimant John Peterson, policy LIAB-AUTO-001, with a silver 2004 Honda Accord that was legally parked at 2325 Main Street in Springfield, Ohio, when it was struck around 8:30 AM on July 17, 2025 by a gray pickup truck attempting to park beside it. The retrieved record is consistent with this statement and matches the claimant, vehicle, date, location, and collision description exactly\u30104:0\u2020source\u3011."
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading