diff --git a/solutions/m365LLM/ARMTemplate/azuredeploy.json b/solutions/m365LLM/ARMTemplate/azuredeploy.json
new file mode 100644
index 00000000..26d4d836
--- /dev/null
+++ b/solutions/m365LLM/ARMTemplate/azuredeploy.json
@@ -0,0 +1,344 @@
+{
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "AppId": {
+ "type": "string",
+ "metadata": {
+ "description": "The id of the Azure AD Application that has access to the destination Azure Storage Account."
+ }
+ },
+ "AppSecret": {
+ "type": "securestring",
+ "metadata": {
+ "description": "The secret for the Azure AD Application that has access to the destination Azure Storage Account."
+ }
+ }
+ },
+ "variables": {
+ "destinationAdlsAccountName": "[concat('store', uniqueString(resourceGroup().id))]",
+ "synapseStorageExternalId": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/',resourceGroup().name,'/providers/Microsoft.Storage/storageAccounts/')]",
+ "WorkspaceName": "[concat('synapse', uniqueString(resourceGroup().id))]"
+ },
+ "resources": [
+ {
+ "type": "Microsoft.Resources/deploymentScripts",
+ "apiVersion": "2020-10-01",
+ "name": "ApplicationScript",
+ "location": "[resourceGroup().location]",
+ "kind": "AzurePowerShell",
+ "properties": {
+ "forceUpdateTag": "1",
+ "azPowerShellVersion": "3.0",
+ "environmentVariables": [
+ {
+ "name":"AppSecret",
+ "secureValue": "[parameters('AppSecret')]"
+ }
+ ],
+ "arguments": "[format(' -AppID {0} -TenantId {1} -AppToGet {2}', parameters('AppId'), subscription().tenantId, parameters('AppId'))]",
+ "primaryScriptUri": "https://raw.githubusercontent.com/microsoftgraph/dataconnect-solutions/main/ARMTemplates/SupportScripts/GetServicePricipalId.ps1",
+ "timeout": "PT30M",
+ "cleanupPreference": "OnSuccess",
+ "retentionInterval": "P1D",
+ "dependsOn": []
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts",
+ "apiVersion": "2022-09-01",
+ "name": "[variables('destinationAdlsAccountName')]",
+ "location": "[resourceGroup().location]",
+ "sku": {
+ "name": "Standard_RAGRS",
+ "tier": "Standard"
+ },
+ "kind": "StorageV2",
+ "properties": {
+ "minimumTlsVersion": "TLS1_2",
+ "allowBlobPublicAccess": true,
+ "allowSharedKeyAccess": true,
+ "isHnsEnabled": true,
+ "networkAcls": {
+ "bypass": "AzureServices",
+ "virtualNetworkRules": [],
+ "ipRules": [],
+ "defaultAction": "Allow"
+ },
+ "supportsHttpsTrafficOnly": true,
+ "encryption": {
+ "services": {
+ "file": {
+ "keyType": "Account",
+ "enabled": true
+ },
+ "blob": {
+ "keyType": "Account",
+ "enabled": true
+ }
+ },
+ "keySource": "Microsoft.Storage"
+ },
+ "accessTier": "Hot"
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts/blobServices",
+ "apiVersion": "2021-01-01",
+ "name": "[concat(variables('destinationAdlsAccountName'), '/default')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts', variables('destinationAdlsAccountName'))]"
+ ],
+ "sku": {
+ "name": "Standard_RAGRS",
+ "tier": "Standard"
+ },
+ "properties": {
+ "cors": {
+ "corsRules": []
+ },
+ "deleteRetentionPolicy": {
+ "enabled": false
+ }
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
+ "apiVersion": "2021-01-01",
+ "name": "[concat(variables('destinationAdlsAccountName'), '/default/mgdc')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('destinationAdlsAccountName'), 'default')]",
+ "[resourceId('Microsoft.Storage/storageAccounts', variables('destinationAdlsAccountName'))]"
+ ],
+ "properties": {
+ "defaultEncryptionScope": "$account-encryption-key",
+ "denyEncryptionScopeOverride": false,
+ "publicAccess": "Container"
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
+ "apiVersion": "2021-01-01",
+ "name": "[concat(variables('destinationAdlsAccountName'), '/default/output')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('destinationAdlsAccountName'), 'default')]",
+ "[resourceId('Microsoft.Storage/storageAccounts', variables('destinationAdlsAccountName'))]"
+ ],
+ "properties": {
+ "defaultEncryptionScope": "$account-encryption-key",
+ "denyEncryptionScopeOverride": false,
+ "publicAccess": "Container"
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts/providers/roleAssignments",
+ "apiVersion": "2018-07-01",
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('destinationAdlsAccountName'), 'default', 'mgdc')]",
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('destinationAdlsAccountName'), 'default', 'output')]",
+ "[resourceId('Microsoft.Resources/deploymentScripts','ApplicationScript')]"
+ ],
+ "name": "[concat(variables('destinationAdlsAccountName'),'/Microsoft.Authorization/',guid(subscription().id, deployment().name))]",
+ "properties": {
+ "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
+ "principalId": "[reference('ApplicationScript').outputs.PrincipalId]"
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts/blobServices/containers/providers/roleAssignments",
+ "apiVersion": "2018-07-01",
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('destinationAdlsAccountName'), 'default', 'mgdc')]",
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('destinationAdlsAccountName'), 'default', 'output')]"
+ ],
+ "name": "[concat(variables('destinationAdlsAccountName'), '/default/mgdc/Microsoft.Authorization/', guid(subscription().id, resourceGroup().id))]",
+ "properties": {
+ "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'ba92f5b4-2d11-453d-a403-e96b0029c9fe')]",
+ "principalId": "[reference('ApplicationScript').outputs.PrincipalId]"
+ }
+ },
+ {
+ "type": "Microsoft.Synapse/workspaces",
+ "apiVersion": "2021-06-01",
+ "name": "[variables('WorkspaceName')]",
+ "location": "[resourceGroup().location]",
+ "identity": {
+ "type": "SystemAssigned"
+ },
+ "properties": {
+ "defaultDataLakeStorage": {
+ "resourceId": "[concat(variables('synapseStorageExternalId'), variables('destinationAdlsAccountName'))]",
+ "accountUrl": "[concat('https://', variables('destinationAdlsAccountName'), '.dfs.core.windows.net')]",
+ "filesystem": "[concat(variables('WorkspaceName'), 'fs')]"
+ },
+ "encryption": {},
+ "connectivityEndpoints": {
+ "web": "[concat('https://web.azuresynapse.net?workspace=%2fsubscriptions%2f', subscription().subscriptionId,'%2fresourceGroups%2f',resourceGroup().id,'%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2f', variables('WorkspaceName'))]",
+ "dev": "[concat('https://', variables('WorkspaceName'), '.dev.azuresynapse.net')]"
+ },
+ "managedResourceGroupName": "[concat('synapseworkspace-managedrg-', uniqueString(resourceGroup().id))]",
+ "privateEndpointConnections": []
+ },
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('destinationAdlsAccountName'), 'default')]"
+ ]
+ },
+ {
+ "type": "Microsoft.Resources/deploymentScripts",
+ "apiVersion": "2020-10-01",
+ "name": "GrantSynapseAccessToStorage",
+ "location": "[resourceGroup().location]",
+ "kind": "AzurePowerShell",
+ "properties": {
+ "forceUpdateTag": "1",
+ "azPowerShellVersion": "3.0",
+ "environmentVariables": [
+ {
+ "name":"AppSecret",
+ "secureValue": "[parameters('AppSecret')]"
+ }
+ ],
+ "arguments": "[format(' -AppID {0} -TenantId {1} -ServicePrincipalName {2}', parameters('AppId'), subscription().tenantId, variables('WorkspaceName'))]",
+ "primaryScriptUri": "https://raw.githubusercontent.com/microsoftgraph/dataconnect-solutions/main/ARMTemplates/SupportScripts/GetServicePricipalId.ps1",
+ "timeout": "PT30M",
+ "cleanupPreference": "OnSuccess",
+ "retentionInterval": "P1D",
+ "dependsOn": [
+ "[resourceId('Microsoft.Synapse/workspaces', variables('WorkspaceName'))]"
+ ]
+ }
+ },
+ {
+ "type": "Microsoft.Storage/storageAccounts/providers/roleAssignments",
+ "apiVersion": "2018-07-01",
+ "dependsOn": [
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('destinationAdlsAccountName'), 'default', 'mgdc')]",
+ "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', variables('destinationAdlsAccountName'), 'default', 'output')]",
+ "[resourceId('Microsoft.Resources/deploymentScripts','GrantSynapseAccessToStorage')]"
+ ],
+ "name": "[concat(variables('destinationAdlsAccountName'),'/Microsoft.Authorization/',guid(subscription().id, deployment().name, resourceGroup().id))]",
+ "properties": {
+ "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'ba92f5b4-2d11-453d-a403-e96b0029c9fe')]",
+ "principalId": "[reference('GrantSynapseAccessToStorage').outputs.PrincipalId]"
+ }
+ },
+ {
+ "type": "Microsoft.Synapse/workspaces/auditingSettings",
+ "apiVersion": "2021-06-01",
+ "name": "[concat(variables('WorkspaceName'), '/Default')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Synapse/workspaces', variables('WorkspaceName'))]"
+ ],
+ "properties": {
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "isStorageSecondaryKeyInUse": false,
+ "isAzureMonitorTargetEnabled": false,
+ "state": "Disabled",
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ {
+ "type": "Microsoft.Synapse/workspaces/bigDataPools",
+ "apiVersion": "2021-06-01",
+ "name": "[concat(variables('WorkspaceName'), '/synapsepool')]",
+ "location": "[resourceGroup().location]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Synapse/workspaces', variables('WorkspaceName'))]"
+ ],
+ "properties": {
+ "creationDate": "2021-12-15T13:50:11.03Z",
+ "sparkVersion": "3.1",
+ "nodeCount": 0,
+ "nodeSize": "Small",
+ "nodeSizeFamily": "MemoryOptimized",
+ "autoScale": {
+ "enabled": true,
+ "minNodeCount": 3,
+ "maxNodeCount": 10
+ },
+ "autoPause": {
+ "enabled": true,
+ "delayInMinutes": 15
+ },
+ "isComputeIsolationEnabled": false,
+ "sessionLevelPackagesEnabled": true,
+ "cacheSize": 0,
+ "dynamicExecutorAllocation": {
+ "enabled": false
+ },
+ "provisioningState": "Succeeded"
+ }
+ },
+ {
+ "type": "Microsoft.Synapse/workspaces/extendedAuditingSettings",
+ "apiVersion": "2021-06-01",
+ "name": "[concat(variables('WorkspaceName'), '/Default')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Synapse/workspaces', variables('WorkspaceName'))]"
+ ],
+ "properties": {
+ "retentionDays": 0,
+ "auditActionsAndGroups": [],
+ "isStorageSecondaryKeyInUse": false,
+ "isAzureMonitorTargetEnabled": false,
+ "state": "Disabled",
+ "storageAccountSubscriptionId": "00000000-0000-0000-0000-000000000000"
+ }
+ },
+ {
+ "type": "Microsoft.Synapse/workspaces/firewallRules",
+ "apiVersion": "2021-06-01",
+ "name": "[concat(variables('WorkspaceName'), '/allowAll')]",
+ "dependsOn": [
+ "[resourceId('Microsoft.Synapse/workspaces', variables('WorkspaceName'))]"
+ ],
+ "properties": {
+ "startIpAddress": "0.0.0.0",
+ "endIpAddress": "255.255.255.255"
+ }
+ },
+ {
+ "type": "Microsoft.Search/searchServices",
+ "apiVersion": "2022-09-01",
+ "name": "[concat(variables('WorkspaceName'), 'searchm365')]",
+ "location": "[resourceGroup().location]",
+ "tags": {
+ "ProjectType": "aoai-your-data-service"
+ },
+ "sku": {
+ "name": "standard"
+ },
+ "properties": {
+ "replicaCount": 1,
+ "partitionCount": 1,
+ "hostingMode": "Default",
+ "publicNetworkAccess": "Enabled",
+ "networkRuleSet": {
+ "ipRules": []
+ },
+ "encryptionWithCmk": {
+ "enforcement": "Unspecified"
+ },
+ "disableLocalAuth": false,
+ "authOptions": {
+ "apiKeyOnly": {}
+ }
+ }
+ },
+ {
+ "type": "Microsoft.CognitiveServices/accounts",
+ "apiVersion": "2023-05-01",
+ "name": "[concat(variables('WorkspaceName'), 'AOAIm365')]",
+ "location": "[resourceGroup().location]",
+ "sku": {
+ "name": "S0"
+ },
+ "kind": "OpenAI",
+ "properties": {
+ "customSubDomainName": "azureopenai-m365llm",
+ "publicNetworkAccess": "Enabled"
+ }
+ }
+ ]
+}
diff --git a/solutions/m365LLM/ARMTemplate/azuredeployment.md b/solutions/m365LLM/ARMTemplate/azuredeployment.md
new file mode 100644
index 00000000..0bc81b47
--- /dev/null
+++ b/solutions/m365LLM/ARMTemplate/azuredeployment.md
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/solutions/m365LLM/Images/0.1.png b/solutions/m365LLM/Images/0.1.png
new file mode 100644
index 00000000..7eb95b68
Binary files /dev/null and b/solutions/m365LLM/Images/0.1.png differ
diff --git a/solutions/m365LLM/Images/1.11.png b/solutions/m365LLM/Images/1.11.png
new file mode 100644
index 00000000..34aa8e01
Binary files /dev/null and b/solutions/m365LLM/Images/1.11.png differ
diff --git a/solutions/m365LLM/Images/1.4.png b/solutions/m365LLM/Images/1.4.png
new file mode 100644
index 00000000..149cb2cb
Binary files /dev/null and b/solutions/m365LLM/Images/1.4.png differ
diff --git a/solutions/m365LLM/Images/2.1.png b/solutions/m365LLM/Images/2.1.png
new file mode 100644
index 00000000..f7df1ad4
Binary files /dev/null and b/solutions/m365LLM/Images/2.1.png differ
diff --git a/solutions/m365LLM/Images/2.2.png b/solutions/m365LLM/Images/2.2.png
new file mode 100644
index 00000000..8bb96f3a
Binary files /dev/null and b/solutions/m365LLM/Images/2.2.png differ
diff --git a/solutions/m365LLM/Images/2.3.png b/solutions/m365LLM/Images/2.3.png
new file mode 100644
index 00000000..16821204
Binary files /dev/null and b/solutions/m365LLM/Images/2.3.png differ
diff --git a/solutions/m365LLM/Images/2.4.png b/solutions/m365LLM/Images/2.4.png
new file mode 100644
index 00000000..c5d1b407
Binary files /dev/null and b/solutions/m365LLM/Images/2.4.png differ
diff --git a/solutions/m365LLM/Images/2.5.png b/solutions/m365LLM/Images/2.5.png
new file mode 100644
index 00000000..0ee35370
Binary files /dev/null and b/solutions/m365LLM/Images/2.5.png differ
diff --git a/solutions/m365LLM/Images/3.1.png b/solutions/m365LLM/Images/3.1.png
new file mode 100644
index 00000000..2a9944e7
Binary files /dev/null and b/solutions/m365LLM/Images/3.1.png differ
diff --git a/solutions/m365LLM/Images/3.11.2.png b/solutions/m365LLM/Images/3.11.2.png
new file mode 100644
index 00000000..f94b1129
Binary files /dev/null and b/solutions/m365LLM/Images/3.11.2.png differ
diff --git a/solutions/m365LLM/Images/3.13.png b/solutions/m365LLM/Images/3.13.png
new file mode 100644
index 00000000..f0b7589f
Binary files /dev/null and b/solutions/m365LLM/Images/3.13.png differ
diff --git a/solutions/m365LLM/Images/3.3.png b/solutions/m365LLM/Images/3.3.png
new file mode 100644
index 00000000..ac53236d
Binary files /dev/null and b/solutions/m365LLM/Images/3.3.png differ
diff --git a/solutions/m365LLM/Images/3.8.png b/solutions/m365LLM/Images/3.8.png
new file mode 100644
index 00000000..24dde226
Binary files /dev/null and b/solutions/m365LLM/Images/3.8.png differ
diff --git a/solutions/m365LLM/Images/4.1.png b/solutions/m365LLM/Images/4.1.png
new file mode 100644
index 00000000..429a948b
Binary files /dev/null and b/solutions/m365LLM/Images/4.1.png differ
diff --git a/solutions/m365LLM/Images/4.2.png b/solutions/m365LLM/Images/4.2.png
new file mode 100644
index 00000000..9566d9ff
Binary files /dev/null and b/solutions/m365LLM/Images/4.2.png differ
diff --git a/solutions/m365LLM/Images/4.3.png b/solutions/m365LLM/Images/4.3.png
new file mode 100644
index 00000000..7eb95b68
Binary files /dev/null and b/solutions/m365LLM/Images/4.3.png differ
diff --git a/solutions/m365LLM/README.md b/solutions/m365LLM/README.md
new file mode 100644
index 00000000..81b13e48
--- /dev/null
+++ b/solutions/m365LLM/README.md
@@ -0,0 +1,133 @@
+# PREVIEW M365 and LLMs Foundational template
+
+- [Overview](#Overview)
+- [Installing Pre-reqs](#Installing-Pre-reqs)
+- [Deployment](#Deployment)
+- [Experience](#Experience)
+- [Considerations](#Considerations)
+
+
+## Overview
+
+The purpose of this foundational template is to perceive the benefits from AI advancements (LLMs) to reason over enterprise M365 data in a fast-moving market.
+By bringing your own enterprise M365 data into an LLM to enrich prompt results, multiple analytical and knowledge finding opportunities are revealed, some of which include:
+- Uncover knowledge in documents, emails, and chats from your organization
+- Accelerate knowledge finding
+- Enhance productivity and faster access to expertise
+- Tailor LLMs with your own business data
+
+This template accelerates the deployment of an application through automated resource provisioning, data pipeline, and LLM model configuration. Additionally, the data transformations are optimized for embeddings and LLM tokenization.
+The following Azure components are used in the template:
+- Azure Synapse Analytics
+- Azure Data Lake Gen2
+- Azure Cognitive Services (Search)
+- Azure OpenAI Studio
+
+In the data pipelines, the data sets which compose the source of information are:
+- AAD Users (BasicDataSet_v0.User_v1)
+- Teams Chats (BasicDataSet_v0.TeamChat_v1)
+- Teams Call Records (BasicDataSet_v0.TeamsCallRecords_v1)
+- Outlook Emails (BasicDataSet_v0.Message_v1)
+- Outlook Calendar (BasicDataSet_v0.CalendarView_v0)
+- SharePoint Sites (SharePointSitesDataset_v0_Preview)
+
+
+**After you follow these steps, you will have a web chat application powered by Azure OpenAI, like the one shown below.**
+
+
+
+## Installing Pre-reqs
+
+[Apply for access to Azure OpenAI Service](https://aka.ms/oaiapply). Access is currently limited as we navigate high demand, upcoming product improvements, and [Microsoft’s commitment to responsible AI](https://www.microsoft.com/ai/responsible-ai?activetab=pivot1:primaryr6). More specific information is included in the application form. We appreciate your patience as we work to responsibly enable broader access to the Azure OpenAI Service.
+
+If you do not have an MGDC app, please proceed to the detailed documentation [here](https://github.com/microsoftgraph/dataconnect-solutions/tree/main/solutions/ona/PreRequisites)
+
+If you already have an MGDC app and its secret, the automated deployment to Azure helps setup the required resources in 5 minutes.
+
+Custom deployment - Microsoft Azure [here](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fmicrosoftgraph%2Fdataconnect-solutions%2Fmain%2Fsolutions%2Fm365LLM%2FARMTemplate%2Fazuredeploy.json?token=AATN3TJ6UQWU7TFMZ2R6ZW3ASL5JQ)
+
+
+
+## Deployment
+
+1. Download the pipeline template .zip from [here](https://github.com/microsoftgraph/dataconnect-solutions/tree/main/solutions/m365LLM/SynapsePipelineTemplate)
+
+2. In the Synapse Studio, select the fourth icon on the left to go to the Integrate page. Click on the "+" icon to Add new resource -> Import from pipeline template, and select the downloaded template
+
+
+
+3. Create the new linked services required by this pipeline
+
+4. Provide the parameters of the Linked Service
+
+ a. Select Authentication Type = Service Principal
+
+ b. Use the storage account name, for Service Principal ID use the Application (client) ID, and for Service Principal key use the value from the secret of the application certificate. See screenshots below
+
+
+
+
+ c. Test Connection and then click on Create
+
+
+
+5. Repeat the linked Service creation steps for the source linked service and select "Open Pipeline"
+
+6. Navigate to the Develop page (third icon on the left) -> ONA and ensure the notebook is attached to the onasynapsepool
+
+7. Click on "Publish All" to validate and publish the pipeline
+
+8. Review the changes and click Publish
+
+9. Verify that the pipeline has been successfully published
+
+
+
+10. Trigger the pipeline
+
+11. Provide the required parameters. Use one month per pipeline run. Use date format 'YYYY-MM-DD'.
+Use the Storage Account created in the resource group (simply replace with the storage account name created in the resource group or to get the URL, navigate to the resource group -> storage account -> Endpoints -> Data Lake Storage -> Primary endpoint)
+If required, change the flags if only certain datasets should run
+
+
+
+12. Congratulations! You just triggered the MGDC pipeline! Once the admin consents to the request the data will be processed and delivered to your storage account
+
+13. You will see the data in the storage account
+
+
+
+14. Go to the Azure OpenAI resource Explore functionality to create a new model.
+
+
+
+15. Click on the Bring Your Own Data feature.
+
+
+
+16. Choose the storage account where the output from the pipeline was saved.
+
+
+
+Note: you can also add additional documents in the supported file formats to further enrich the results.
+
+17. Once the model is ready, you can deploy it to a web app to enable the chat experience.
+
+
+
+
+## **Experience**
+
+The use cases are endless but to explore a few try similar prompts as these:
+
+
+
+
+
+
+
+## **Considerations**
+
+The following considerations apply:
+- There may be updates performed regularly to fit for adjustments and fixes
+- Responsible AI with the Azure OpenAI Service: At Microsoft, we're committed to the advancement of AI driven by principles that put people first. Generative models such as the ones available in Azure OpenAI Service have significant potential benefits, but without careful design and thoughtful mitigations, such models have the potential to generate incorrect or even harmful content. Microsoft has made significant investments to help guard against abuse and unintended harm, which includes requiring applicants to show well-defined use cases, incorporating Microsoft’s principles for responsible AI use, building content filters to support customers, and providing responsible AI implementation guidance to onboarded customers. More details on the RAI guidelines for the Azure OpenAI Service can be found [here](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/transparency-note?context=/azure/cognitive-services/openai/context/context).
\ No newline at end of file
diff --git a/solutions/m365LLM/SynapsePipelineTemplate/M365LLM.zip b/solutions/m365LLM/SynapsePipelineTemplate/M365LLM.zip
new file mode 100644
index 00000000..91f838ed
Binary files /dev/null and b/solutions/m365LLM/SynapsePipelineTemplate/M365LLM.zip differ