diff --git a/database/createDatabases.ps1 b/database/createDatabases.ps1 index 001961fb..f20593ed 100644 --- a/database/createDatabases.ps1 +++ b/database/createDatabases.ps1 @@ -37,22 +37,37 @@ Param ( [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName)] [string] $dbpass, [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName)] - [string] $suffix + [string] $sauser, + [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName)] + [string] $sapass, + [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName)] + [string] $suffix, + [Parameter(Mandatory = $false, ValueFromPipelineByPropertyName)] + [string] $singleDatabase ) - if($windowsAuthentication.Length -eq 0){ write-host "since windowsAuthentication flag is not set, defaulting to SQL server authentication" $windowsAuthentication = "N" } +$username = $sauser +$password = $sapass + +if($singleDatabase.Length -eq 0){ + write-host "creating multiple databases" + $singleDatabase = "N" +} + if($windowsAuthentication -eq "Y"){ echo "Authenticating via Windows Authentication(i.e Using Integrated Auth)" } elseif($windowsAuthentication -eq "N"){ - $sqlCredentials = Get-Credential - #Password Validation - $username = $sqlCredentials.username - $password = $sqlCredentials.GetNetworkCredential().password + if (($username.Length -eq 0) -or ($password.Length -eq 0)){ + $sqlCredentials = Get-Credential + #Password Validation + $username = $sqlCredentials.username + $password = $sqlCredentials.GetNetworkCredential().password + } if(($username.Length -eq 0) -or ($password.Length -eq 0)){ write-host "SQL Server Auth Enabled and credentials are not supplied so exiting the program" -ForegroundColor Red @@ -97,7 +112,7 @@ function executeQuery($database, $query){ Invoke-Sqlcmd -ServerInstance $sqlinstance -Database $database -Query $query -ErrorAction Stop -Verbose write-host $query "Succeded" -ForegroundColor Yellow } else{ - Invoke-Sqlcmd -ServerInstance $sqlinstance -Database $database -Credential $sqlCredentials -Query $query -ErrorAction Stop -Verbose + Invoke-Sqlcmd -ServerInstance $sqlinstance -Database $database -username $username -password $password -Query $query -ErrorAction Stop -Verbose write-host $query "Succeded" -ForegroundColor Yellow } } catch { @@ -107,21 +122,45 @@ function executeQuery($database, $query){ } #Install modules required -$installed = Test-Path -Path 'C:\Program Files\WindowsPowerShell\Modules\SqlServer' -if(!$installed){ +if(!(Get-Module -ListAvailable -Name SqlServer)){ echo "Installing required module..." [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Install-Module -Name SqlServer -AllowClobber -Confirm:$False -Force } -Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\.NetFramework\\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord -Force -Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\.NetFramework\\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord -Force +# this seems to hold true from WINXP onward +if ($env:OS -eq "Windows_NT") { + Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\.NetFramework\\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord -Force + Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\.NetFramework\\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord -Force +} + +#formulate logins for single Database +$helper_login_user=$dbuser+"_helper" +$pkgmanager_login_user=$dbuser+"_pkgmanager" +$deployer_login_user=$dbuser+"_deployer" +$trainer_login_user=$dbuser+"_trainer" +$appmanager_login_user=$dbuser+"_appmanager" + +if($singleDatabase -eq "N"){ + $sqlcommand = " + GO + CREATE LOGIN $dbuser WITH PASSWORD=N'{{pwd}}' + GO + " +} +else { $sqlcommand = " -GO -CREATE LOGIN $dbuser WITH PASSWORD=N'{{pwd}}' -GO -" + GO + CREATE LOGIN $helper_login_user WITH PASSWORD=N'{{pwd}}' + CREATE LOGIN $pkgmanager_login_user WITH PASSWORD=N'{{pwd}}' + CREATE LOGIN $deployer_login_user WITH PASSWORD=N'{{pwd}}' + CREATE LOGIN $trainer_login_user WITH PASSWORD=N'{{pwd}}' + CREATE LOGIN $appmanager_login_user WITH PASSWORD=N'{{pwd}}' + GO + " +} + $addUserToMasterQuery = " GO @@ -132,13 +171,26 @@ GO $createDatabaseQuery = "CREATE DATABASE {{DB}}" -$grantcommand = " -GO -CREATE USER $dbuser FOR LOGIN $dbuser -GO -ALTER ROLE [db_owner] ADD MEMBER $dbuser -GO -" +if($singleDatabase -eq "N"){ + $grantcommand = " + GO + CREATE USER $dbuser FOR LOGIN $dbuser + GO + ALTER ROLE [db_owner] ADD MEMBER $dbuser + GO + " +} else { + $grantcommand = " + GO + CREATE USER {{USER_NAME}} FOR LOGIN {{USER_NAME}} WITH DEFAULT_SCHEMA = {{SCHEMA_NAME}} + GO + CREATE SCHEMA {{SCHEMA_NAME}} AUTHORIZATION {{USER_NAME}} + GO + EXEC sp_addrolemember 'db_ddladmin', '{{USER_NAME}}'; + GO + " +} + #If user supplied the pass use it, otherwise auto generate the pass if($dbpass.Length -gt 0){ @@ -149,38 +201,58 @@ if($dbpass.Length -gt 0){ $sqlcommand = $sqlcommand.Replace("{{pwd}}",$unsecurepassword) +write-host $sqlcommand + + #Create Login $exitStatus = executeQuery master $sqlcommand -echo $exitStatus if ( $exitStatus -eq "Failed" ) { $msg = $Error[0].Exception.Message write-host "Encountered error while creating login. Error Message is $msg." -ForegroundColor Red write-host "If the login already exists and if the login is generated via this script the same can be found under the file name $dbuser located in the current directory" -ForegroundColor Red write-host "If you are using WindowsAuthentication mode, make sure that you are using ServerName instead of IP" -ForegroundColor Red + exit 1 } else { echo "the PASSWORD for $dbuser user is : $unsecurepassword " New-Item -ItemType File -Force -Path ".\$dbuser" -Value $unsecurepassword } #Add login to Master -$exitStatus = executeQuery master $addUserToMasterQuery -if ( $exitStatus -eq "Failed" ) { - write-host "The target database does not support adding user to master anyhow this wont affect user from logging into DB with the generated credentials" -ForegroundColor Yellow +if($singleDatabase -eq "N"){ + $exitStatus = executeQuery master $addUserToMasterQuery + + if ( $exitStatus -eq "Failed" ) { + write-host "The target database does not support adding user to master anyhow this wont affect user from logging into DB with the generated credentials" -ForegroundColor Yellow + } } -#Create DB's -executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_helper$suffix") -executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_deployer$suffix") -executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_pkgmanager$suffix") -executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_trainer$suffix") -executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_appmanager$suffix") +if($singleDatabase -eq "N"){ + #Create DB's + executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_helper$suffix") + executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_deployer$suffix") + executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_pkgmanager$suffix") + executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_trainer$suffix") + executeQuery master $createDatabaseQuery.Replace("{{DB}}", "ai_appmanager$suffix") +} else{ + executeQuery master $createDatabaseQuery.Replace("{{DB}}", "aifabric$suffix") +} + + +if($singleDatabase -eq "N"){ + #Execute Grants + executeQuery "ai_helper$suffix" $grantcommand + executeQuery "ai_deployer$suffix" $grantcommand + executeQuery "ai_pkgmanager$suffix" $grantcommand + executeQuery "ai_trainer$suffix" $grantcommand + executeQuery "ai_appmanager$suffix" $grantcommand +} else{ + executeQuery "aifabric$suffix" $grantcommand.Replace("{{USER_NAME}}", $helper_login_user).Replace("{{SCHEMA_NAME}}", "ai_helper") + executeQuery "aifabric$suffix" $grantcommand.Replace("{{USER_NAME}}", $pkgmanager_login_user).Replace("{{SCHEMA_NAME}}", "ai_pkgmanager") + executeQuery "aifabric$suffix" $grantcommand.Replace("{{USER_NAME}}", $deployer_login_user).Replace("{{SCHEMA_NAME}}", "ai_deployer") + executeQuery "aifabric$suffix" $grantcommand.Replace("{{USER_NAME}}", $trainer_login_user).Replace("{{SCHEMA_NAME}}", "ai_trainer") + executeQuery "aifabric$suffix" $grantcommand.Replace("{{USER_NAME}}", $appmanager_login_user).Replace("{{SCHEMA_NAME}}", "ai_appmanager") +} -#Execute Grants -executeQuery "ai_helper$suffix" $grantcommand -executeQuery "ai_deployer$suffix" $grantcommand -executeQuery "ai_pkgmanager$suffix" $grantcommand -executeQuery "ai_trainer$suffix" $grantcommand -executeQuery "ai_appmanager$suffix" $grantcommand diff --git a/gpu/install_gpu_drivers.sh b/gpu/install_gpu_drivers.sh index 3b0f99ea..e852f0ed 100755 --- a/gpu/install_gpu_drivers.sh +++ b/gpu/install_gpu_drivers.sh @@ -1,92 +1,137 @@ #!/bin/bash -install_gpu() { - - # Set cuda nvidia repository - curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb - sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb - sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub - - # install cuda - sudo apt update - sudo apt-get -y install cuda - - echo "################################# Validate NVIDIA-SMI #####################################" - nvidia-smi - nvidia_version=$(nvidia-smi | grep NVIDIA-SMI | grep CUDA) - - if [[ "${nvidia_version}" == *"CUDA Version"* && "${nvidia_version}" == *"Driver Version"* ]]; then - - # install nvidia-docker based on distribution - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) - curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list - sudo apt-get update && sudo apt-get install -y nvidia-docker2 - - # update docker daemon json with nvidia runtime - set_daemon_json - sudo systemctl restart docker +function install_gpu() { + #Install CUDA Drivers for Ubuntu18 + os=$(. /etc/os-release;echo $ID) + distribution=$(. /etc/os-release;echo $ID$VERSION_ID) + major_version=$(. /etc/os-release;echo $VERSION_ID | cut -d '.' -f1) + + if [[ "${os}" = "ubuntu" && "${major_version}" = "18" ]]; + then + curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.0.130-1_amd64.deb + dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb + apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub + + apt update + apt-get -y install cuda jq + + #Install nvidia-docker for Ubuntu + distribution=$(. /etc/os-release;echo $ID$VERSION_ID) + curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add - + curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | tee /etc/apt/sources.list.d/nvidia-docker.list + apt-get update && apt-get install -y nvidia-docker2 + elif [[ ("${os}" = "centos" || "${os}" = "rhel") && "${major_version}" = "7" ]]; + then + #Install GPU Drivers for RHEL and CentOS 7.x + yum clean all + yum install -y kernel-devel-$(uname -r) kernel-headers-$(uname -r) + yum install -y http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.0.130-1.x86_64.rpm + yum install -y epel-release + yum clean all + yum install -y cuda + yum install -y jq + + #Install nvidia toolkit + yum clean expire-cache + yum install nvidia-container-toolkit -y + + #Install Nvidia docker2 + distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ + && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | tee /etc/yum.repos.d/nvidia-docker.repo + yum install -y dnf + dnf clean expire-cache --refresh + dnf install -y nvidia-docker2 + else + echo "###########################################" + echo "The script does not support installing GPU drivers for distribution $distribution" + echo "Step 1: Install CUDA Drivers for target OS: https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html" + echo "Step 2: Install nvidia-docker2 package for target OS: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-docker-on-rhel-7" + echo "Step 3: After installing nvidia-docker2 package, make sure your docker daemon.json looks like the config documented here https://github.com/NVIDIA/k8s-device-plugin" + echo "Step 4: Edit /etc/docker/daemon.json and append this entry without escape characters \"exec-opts\": [\"native.cgroupdriver=systemd\"]" + echo "Step 5: Restart docker via 'sudo systemctl restart docker'" + echo "Step 6: Run command documented under, 'Enabling GPU Support in Kubernetes' section https://github.com/NVIDIA/k8s-device-plugin" + echo "Step 7: Run 'kubectl describe node' command and verify whether nvidia.com/gpu is visible under Resource section" + echo "###########################################" + exit 1 + fi - sleep 4 + # backup json, this will be used for merging with updated json in the later step + bash -c 'echo "{\"default-runtime\": \"nvidia\", \"exec-opts\": [\"native.cgroupdriver=systemd\"]}" > /etc/docker/daemon_old_bkp.json' + # if you installed the nvidia-docker2 package, it already registers the runtime within the docker daemon.json + # https://github.com/NVIDIA/nvidia-container-runtime + # Before the restart the docker.json will have this entry "exec-opts": ["native.cgroupdriver=systemd"] which gets overridden https://github.com/NVIDIA/nvidia-docker/issues/1346 + systemctl restart docker + edit_and_restart_docker_config + + #Verfiy if kubectl commands are all running fine + sleep 2 + export KUBECONFIG=/etc/kubernetes/admin.conf + validate_kubectl_up + + #At this point, a working setup can be tested by running a base CUDA container + cuda_health_check=$(docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi | grep "NVIDIA-SMI") + + if [[ "$cuda_health_check" == *"NVIDIA-SMI"* ]]; + then + echo "GPU Health check successful. This doesn't mean Kubernetes is aware of GPU yet !!!!" + else + echo "GPU Health check not successful" + exit 1 + fi - # Add kubernetes daemon to add connectivity to nvidia - validate_kubectl_command - kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta6/nvidia-device-plugin.yml + echo "Installing Nvidia Daemonset to make Kubernetes aware of GPU attached to machine" + kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/1.0.0-beta6/nvidia-device-plugin.yml + #watch till daemonset rollout is complete + kubectl -n kube-system rollout status daemonset/nvidia-device-plugin-daemonset --watch=true + #verify if GPU is visible to kubernetes + export KUBECONFIG=/etc/kubernetes/admin.conf + validate_gpu_updated - # Validate that gpu driver installation & integration is successful - validate_gpu_updated - echo "################################# Nvidia integration succeeded #####################################" - else - echo "################ GPU driver installation failed ###################" - exit - fi } -set_daemon_json(){ +function edit_and_restart_docker_config(){ echo "################## Updating docker configuration ######################" - sudo bash -c ' -echo \ -"{ - \"default-runtime\": \"nvidia\", - \"runtimes\": { - \"nvidia\": { - \"path\": \"/usr/bin/nvidia-container-runtime\", - \"runtimeArgs\": [] - } - } -}" > /etc/docker/daemon.json' - + cat /etc/docker/daemon.json > /etc/docker/daemon_original_bkp.json + jq -s '.[0] * .[1]' /etc/docker/daemon.json /etc/docker/daemon_old_bkp.json > /etc/docker/daemon_merged.json + mv /etc/docker/daemon_merged.json /etc/docker/daemon.json + systemctl restart docker + sleep 15 + systemctl restart kubelet } -validate_kubectl_command() { +function validate_kubectl_up() { count=0 while [ $count -lt 50 ]; do result=$(kubectl get nodes| grep master) if [[ "$result" == *"master"* ]]; then - echo "kubectl command ran successfully in " $((count * 5)) "seconds" + echo "kubectl up after " $((count * 5)) "seconds" break else - echo "Not able to run kubectl command, retry : " $count + echo "kubectl not up, retry : " $count count=$(( $count + 1 )) sleep 5 fi done if [ $count == 50 ]; then - echo "Failed to run kubectl command. Please check if kubernetes context is properly set and available to logged in user." - swapoff -a + echo "Kubectl Failed to come up" exit fi } -validate_gpu_updated() { +function validate_gpu_updated() { count=0 while [ $count -lt 50 ]; do result=$(kubectl describe nodes| grep nvidia.com/gpu) if [[ "$result" == *"nvidia.com/gpu"* ]]; then echo $result echo "Node gpu info updated after " $((count * 5)) "seconds" - echo "##################### Successfully integrated GPU with kubernetes #########################" + echo "##################### Successfully installed GPU #########################" + cuda_install_path=$(whereis -b cuda | cut -d ":" -f2 | xargs) + cuda_version=$($cuda_install_path"/bin/nvcc" --version | grep release | cut -d ',' -f2 | cut -d ' ' -f3) + nvidia_cuda_compatible_version=$(nvidia-smi -q | grep CUDA | cut -d ':' -f2 | xargs) + echo "Cuda Version Installed: $cuda_version" + echo "Nvidia CUDA Compatible version: $nvidia_cuda_compatible_version" break else echo "kubectl gpu info not updated, retry : " $count @@ -96,23 +141,29 @@ validate_gpu_updated() { done if [ $count == 50 ]; then - echo "################## Failed to integrate with gpu ####################" - swapoff -a - exit - fi -} - -main() { - - # check if GPU is attached to disk - check_nvidia=$(sudo lshw -C display|grep NVIDIA) - - if [[ "$check_nvidia" == *"NVIDIA"* ]]; then - install_gpu - else - echo "####### GPU not installed in the setup ###########" + echo "################## Failed to install gpu ####################" exit fi } -main \ No newline at end of file +if [ "$EUID" -ne 0 ] + then echo "Please run script as root" + exit +fi + +echo "Disabling swap off" +swapoff -a + +lshw -C display +check_nvidia=$(lshw -C display|grep NVIDIA) +if [[ "$check_nvidia" == *"NVIDIA"* ]]; then + agree="Y" +fi + +if [ "$agree" == "Y" ] +then + install_gpu +else + echo "####### GPU not installed in the setup ###########" + exit +fi \ No newline at end of file diff --git a/metadata/AustralianInvoices__3__metadata.json b/metadata/AustralianInvoices__3__metadata.json new file mode 100644 index 00000000..02617853 --- /dev/null +++ b/metadata/AustralianInvoices__3__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "AustralianInvoices", + "retrainable": true, + "gpu": 1, + "processorType": "GPU", + "description": "Machine Learning model(available in Preview) for extracting commonly occurring data points from Invoices from Australia, including header fields and line items. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "AustralianInvoices", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/australianinvoices:3" +} diff --git a/metadata/DocumentUnderstanding__4__metadata.json b/metadata/DocumentUnderstanding__4__metadata.json new file mode 100644 index 00000000..bc53b5c0 --- /dev/null +++ b/metadata/DocumentUnderstanding__4__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "DocumentUnderstanding", + "retrainable": true, + "gpu": 1, + "processorType": "CPU", + "description": "Machine Learning model for extracting commonly occurring data points from Semi-structured or Structured documents, including regular fields, table columns and classification fields. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "DocumentUnderstanding", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/documentunderstanding:4" +} diff --git a/metadata/IndianInvoices__3__metadata.json b/metadata/IndianInvoices__3__metadata.json new file mode 100644 index 00000000..c81ed4e6 --- /dev/null +++ b/metadata/IndianInvoices__3__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "IndianInvoices", + "retrainable": true, + "gpu": 1, + "processorType": "GPU", + "description": "Machine Learning model(available in Preview) for extracting commonly occurring data points from Invoices from India, including header fields and line items. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "IndianInvoices", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/indianinvoices:3" +} diff --git a/metadata/Invoices__4__metadata.json b/metadata/Invoices__4__metadata.json new file mode 100644 index 00000000..b1b5103d --- /dev/null +++ b/metadata/Invoices__4__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "Invoices", + "retrainable": true, + "gpu": 1, + "processorType": "CPU", + "description": "Machine Learning model for extracting commonly occurring data points from Invoices, including header fields and line items. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "Invoices", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/invoices:4" +} diff --git a/metadata/JapaneseInvoices__1__metadata.json b/metadata/JapaneseInvoices__1__metadata.json new file mode 100644 index 00000000..9c2a76e3 --- /dev/null +++ b/metadata/JapaneseInvoices__1__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "JapaneseInvoices", + "retrainable": true, + "gpu": 1, + "processorType": "GPU", + "description": "Machine Learning model(available in Preview) for extracting commonly occurring data points from Invoices from Japan, including header fields and line items. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. Only Google Cloud Vision OCR is supported for training or serving this model. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "JapaneseInvoices", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/japaneseinvoices:1" +} diff --git a/metadata/PurchaseOrders__3__metadata.json b/metadata/PurchaseOrders__3__metadata.json new file mode 100644 index 00000000..61fa5b70 --- /dev/null +++ b/metadata/PurchaseOrders__3__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "PurchaseOrders", + "retrainable": true, + "gpu": 1, + "processorType": "GPU", + "description": "Machine Learning model(available in Preview) for extracting commonly occurring data points from Purchase Orders, including header fields and line items. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "PurchaseOrders", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/purchaseorders:3" +} diff --git a/metadata/Receipts__4__metadata.json b/metadata/Receipts__4__metadata.json new file mode 100644 index 00000000..07434f6e --- /dev/null +++ b/metadata/Receipts__4__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "Receipts", + "retrainable": true, + "gpu": 1, + "processorType": "CPU", + "description": "Machine Learning model for extracting commonly occurring data points from Receipts, including header fields and line items. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "Receipts", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/receipts:4" +} diff --git a/metadata/UtilityBills__3__metadata.json b/metadata/UtilityBills__3__metadata.json new file mode 100644 index 00000000..b0442dbf --- /dev/null +++ b/metadata/UtilityBills__3__metadata.json @@ -0,0 +1,21 @@ +{ + "name": "UtilityBills", + "retrainable": true, + "gpu": 1, + "processorType": "GPU", + "description": "Machine Learning model(available in Preview) for extracting commonly occurring data points from Utility Bills. Please see more details including supported languages and link to Activities guide in the About Licensing -\u003e Document Understanding API Key section of the UiPath Automation Cloud Guide here: https://docs.uipath.com/automation-cloud/docs/about-licensing#section-document-understanding-api-key", + "inputDescription": "ML Skills deployed using this ML Package can be integrated into RPA workflows using the Machine Learning Extractor activity in the Official feed or the MLModel activity in Connect feed. File formats accepted include pdf, tiff, jpg or png files. The activities also require an API Key input which you need to obtain from your UiPath Automation Cloud account, in the Licenses -\u003e Other Services view.", + "outputDescription": "Please refer to the documentation of the Activity used to query the ML Skill.", + "changeLog": "Model: 20.10.4", + "cpu": 0, + "inputType": "JSON", + "displayName": "UtilityBills", + "memory": 0, + "mlPackageLanguage": "PYTHON37_DU", + "projectId": "[project-id]", + "stagingUri": "[staging-uri]", + "projectName": "UiPath Document Understanding", + "projectDescription": "UiPath models to classify and extract information from images and pdfs.", + "tenantName": "UiPath", + "imagePath": "registry.replicated.com/aif-core/utilitybills:3" +} diff --git a/platform/aks/aks-arm.zip b/platform/aks/aks-arm.zip index 1b43a35f..d9dcdd02 100644 Binary files a/platform/aks/aks-arm.zip and b/platform/aks/aks-arm.zip differ