KLapper Deployment Guide

KLapper Deployment Guide





KLapper Deployment Guide

V1.0








Introduction

This document details the deployment process for our KLapper virtual assistant builder.

Prerequisites

The deployment process is on Azure Cloud, we need the following prerequisites:

Azure Cloud Subscription.
Azure Subscription with following Resource Providers enabled:
  1. Microsoft.BotService
  1. Microsoft.CognitiveServices
  1. Microsoft.DocumentDB
  1. Microsoft.Web
Azure Cloud Admin account with Subscription level privileges.
Understanding Azure Cloud Network.
Azure PowerShell Module (12.1.0)
Minimum permission required:
  1. Azure subscription access
  1. Resource creation – Contributor/Owner at the subscription level or resource group level
  1. Azure OpenAI service – Cognitive Services Contributor
  1. Key management – Cognitive Services User
  1. Resource deletion – Contributor/Owner at the resource group level
PowerShell execution policy to run unsigned script files
Whitelist following domains – This is required for downloading installation files and licensing check:
  1. *.klapper.ai
  2. https://${BuilderServiceName}.azurewebsites.net/builderapi/*
  3. https://${BuilderServiceName}.scm.azurewebsites.net
  4. https://${FMApiServiceName}.scm.azurewebsites.net
  5. https://${FrameworkServiceName}.scm.azurewebsites.net

Azure Requirements

These requirements will get provisioned by the PowerShell script

  1. App Service Plan
            Tier – PremiumMV3
            OS - Windows
  1. Builder
            Azure App Service 
  1. Python
            Azure App Service
  1. Azure Open AI Service
            Model GPT-4o 
            125K token quota is required
  1. Database
            Azure Cosmos DB
            Pricing model – Provisioned throughput
            Performance tier - Standard
  1. Azure Entra App

KLapper Connecting to On Premise Systems

To fully leverage the capabilities of KLapper, we should be ready with the connectivity requirements to below platforms

  1. SQL Server – This can be residing in on premise network
  1. SharePoint – This can be on premise SharePoint instance or online
  1. iManage – This can be on premise instance or cloud
  1. NetDocuments

Connecting to On-Premises SQL Server/SharePoint/iManage

KLapper is deployed in Azure App Services. To connect an app service deployed in Azure to on-premises systems like SQL/SharePoint/iManage you can follow one of the approaches outlined below


Hybrid Connection

  1. Uses Azure Relay service
  1. Doesn't require changes to network configuration
  1. Doesn't expose on-premises systems to the internet
  1. Suitable for simple, single-connection scenarios

Azure Virtual Network Integration

  1. Connect App Service to an Azure VNet
  1. Use VNet-to-VNet connection or ExpressRoute to connect Azure VNet to on-premises network
  1. Provides more comprehensive network integration

Requirements

  1. App Service Plan: Standard, Premium, or Isolated tier
  1. Azure VNet Gateway
  1. On-premises VPN device or ExpressRoute circuit

Azure ExpressRoute

  1. Private connection between Azure datacenter and on-premises infrastructure
  2. Doesn't go over the public internet
  3. Higher bandwidth and lower latency than typical VPN connections

Requirements

  1. ExpressRoute circuit
  1. ExpressRoute Gateway in Azure VNet
  1. Compatible network equipment or partnership with an ExpressRoute connectivity provider

Site-to-Site VPN

  1. IPsec VPN tunnel between Azure VNet and on-premises network
  1. Goes over the public internet, but traffic is encrypted

Requirements

  1. VPN Gateway in Azure VNet
  1. On-premises VPN device with a public IP address

Azure SQL Managed Instance with Azure Arc

  1. Deploy Azure SQL Managed Instance to on-premises environment
  1. Manage through Azure portal, but data remains on-premises

Requirements

  1. Azure Arc-enabled servers
  1. Suitable on-premises infrastructure to host SQL Managed Instance

Installation

PowerShell Setup

  1. Open Windows PowerShell as an administrator
  1. Verify the proper Windows PowerShell version is installed using this script (5.1)
  1. $PSVersionTable.PSVersion
  1. Run below script
  1. Set-ExecutionPolicy Unrestricted -Force
  1. Run below script and check the Azure PowerShell module version is 12.1.0
  1. Get-InstalledModule -Name Az -AllVersions | Select-Object Name,Version
  2. If the incorrect version is installed, use this command to uninstall the old version before downloading 12.1.0: Uninstall-AzModule -Name Az -Version {VersionNumber}
  1. To install the specific version use below command
  1. Install-Module Az -RequiredVersion 12.1.0 -Scope CurrentUser -Repository PSGallery
  1. Run below script
  1. Get-AzContext
  1. Run below script
  1. Connect-AzAccount 

Installation Process

  1. Download the installation zip file shared.
  1. Extract zip file to the folder in a Windows 10, 11 or 2019 server with PowerShell configured
  1. Make sure the user performing installation has Provisioning privileges in Azure.
  1. Open Inputs.ps1 and fill in the details. No underscores or capital letters should be used for any variables, after the Resource Group Name.

Variable Name

Description

$licenseKey

Please use the license key provided to you by the support team

$adminFirstName

First name of the Administrator who manages KLapper

$adminLastName

Last name of the Administrator who manages KLapper

$adminEmail

Email address of the Administrator who manages KLapper

$tenantId

Azure tenant id

$subscriptionId

Azure subscription id

$location

Azure location (Ex: eastus, eastus2 etc)

$resourceGroupName

Azure resource group under which KLapper services to be provisioned

$cosmosDBName

This will be used to provision Azure Cosmos account name

$cosmosDatabase

This will be used to provision new Database inside the Cosmos account

$appServiceWindowsPlanName

Windows app service plan name

$builderAppServiceName

KLapper builder app service name

$fmApiAppServiceName

KLapper file manager app service name

  $frameworkAppServiceName
  KLapper app service name

$openAIServiceName

Azure Open AI service name

$entraAppName

Azure Entra app name

$builderUrl

In case if you are planning to add a custom domain for the KLapper builder app service. Please fill in or it will be the builder app service name

Ex: https://appService.azurewebsites.net



  1. Navigate to the extracted folder in PowerShell
  1. Run Provisioning.ps1
  1. This will create provisioning_output.txt with details of the resources that got provisioned

Post installation

Grant Permission to Entra App

Grant “Contribute” access to Entra App on the resource group, so KLapper can dynamically provision Azure Bot Services as part of assistant creation process

  1. Open Azure portal
  1. Open “App Registrations”
  1. Search for the Entra App we created using PowerShell and open it
  1. From left menu, select “API Permissions”
  1. The following permissions should be requested, click “Grant admin consent”
  2. Select Microsoft Graph:
  1.  Application.ReadWrite.OwnedBy with type as “Application”
  1. User.ReadBasic.All with type as “Application”
  2.  Select SharePoint:
  3. i.        AllSites.Read with type as “Delegated”
  4. ii.        Sites.Search.All with type as “Delegated”
  1. Log into SQL using an AD account and execute the following script
    1. --Create a contained database user for the Service Prinicple
      1. CREATE USER [AppRegistrationName] FROM EXTERNAL PROVIDER;
    2. --Assign the desired roles to the Service Prinicipal
      1. ALTER ROLE db_datareader ADD MEMBER [AppRegistrationName];
      2. ALTER ROLE db_datawriter ADD MEMBER [AppRegistrationName];
        ALTER ROLE db_owner ADD MEMBER [AppRegistrationName];
  2. Go back to Azure portal home page
  1. Open “Resource Groups”
  1. Search for the Resource Group we created in Pre-Install step
  1. From left menu, select “Access control (IAM)
  1. Select “Role assignments”
  1. Click on “Add role assignment”
  1. Under Role tab -> Privileged administrator roles -> Select “Contributor”
  1. Under Members tab -> Assign access to “User, group or service principal”
  1. Click on “+ Select members”
  1. Search for the Entra App
  1. Click on “Select”
  1. Click on “Review + assign”

Configuring Builder Settings

  1. Open KLapper builder App Service URL
  1. Login using your email address
  1. Validate the settings

Troubleshooting

Azure Open AI Deployment Failed

In this case we must manually deploy gpt-4o model

  1. Open Azure portal
  1. Open the Resource Group
  1. Open the “Azure Open AI” service
  1. From left menu – Resource Management -> Open Model deployments
  1. Click on “Manage Deployments”
  1. Click on “Create new deployment”
  1. Enter name = “klapper-gpt-4o”
  1. Select model = “gpt-4o”
  1. Select Standard
  1. Select Content Filter = “Default”
  1. And create the deployment

Updating KLapper

Go to global settings


 Click update and proceed

A screenshot of a software updateDescription automatically generated

How to add a custom domain for KLapper

·        Head to the Azure portal, and navigate to the resource group that was created for KLapper

·        Open the KLapper Builder App Service

·        From the left column, select Custom domains



From the Add custom domain panel, select the following:
Domain provider: All other domain services

TLS/SSL certificate: App Service Managed Certificate

TSL/SSL type: SNI SSL

Then enter your desired domain name, validate all entries

Finally press Validate then Add


How to Upgrade to KLapper v1.2.0

  1. After receiving KLapper_Upgrade_to_v1.2.0.ps1 open it in notepad and fill in the parameters:

    Variable Name

    Description

    $licenseKey

    Please use the license key provided to you by the support team

    $subscriptionId

    Azure subscription id

    $resourceGroupName

    Azure resource group under which KLapper services is provisioned

      $builderAppServiceName
     KLapper builder app service name
      $frameworkAppServiceName
     KLapper framework app service name

    $location

    Azure location (Ex: eastus, eastus2 etc)

    $appServiceWindowsPlanName

    Windows app service plan name

    $frameworkPackageUrl

  2. Verify that the Azure PowerShell Module used previously in the Provisioning.ps1 is still installed
  3. Execute the upgrade_v1.2.ps1 PowerShell script and copy the new framework URL.
  4. After executing the PowerShell script, navigate to the KLapper Builder site. Click on Global Settings and update the new framework URL.

  5. Once saved, go to the Azure Portal (https://portal.azure.com/)
    and select the KLapper Builder UI Service.
  6. Click on the Configuration under the Settings section. Once clicked, the configuration screen will open in the right–side panel.
  7. Enable the “Always On” and save the configuration.

  8. Once saved, go to the Azure Portal (https://portal.azure.com/)
    and select the Framework App Service.
  9. Click on the Configuration under the Settings section. Once clicked, the configuration screen will open in the right–side panel.
  10. Enable the “Always On” and save the configuration.

  11. Click on Web Jobs under the Settings section. Once clicked, the Web Jobs screen will open in the right-side panel.

  12. Click the Play icon (Run) to start the Web Job. Refresh and check its status.
  13. After the Web Job is completed, return to the KLapper Builder site. Click on Global Settings.
  14. Once the Web Job is completed, update the deployment to version v1.2.0 in the Global Settings of the KLapper Builder site.

  15. Click the “Proceed Now” button.
  16. After KLapper finished updating to v1.2.0, update the domain for the Messaging endpoint for every pre-existing assistant's bot service on Azure with the new framework URL.

  17. KLapper is now successfully upgraded to v1.2.0.

    • Related Articles

    • KLapper Admin User Guide

      KLapper Admin User Guide v1.2.0 Introduction This guide details all features available to an Admin in KLapper, a comprehensive and advanced platform for building and managing intelligent assistants. KLapper is designed to be both intuitive and ...
    • KLapper End User Guide

      KLapper End User Guide V1.2.0 Introduction Your Virtual Assistant for Intelligent Counsel, Everywhere! KLapper is an advanced virtual legal assistant designed to enhance the efficiency and productivity of legal professionals. Built specifically for ...
    • v1.1.9

      KLapper v1.1.9 Release Notes Features Fine-Tuning Questions and Answers: Builders can now add custom questions and answers for specific documents, allowing them to refine how the assistant responds. More details are available in the Admin User Guide. ...
    • v1.1.10

      KLapper v1.1.10 Release Notes Features Add Fine Tuning from Report Section: Admins can now add/delete fine tuning based on end-user feedback from within the Report page on the KLapper Builder site. Improved Responses: Using a specified assistant ...
    • v1.1.8

      KLapper v1.1.8 Release Notes Features SharePoint Lists now take less time for KLapper to learn. Item References Link now has a default placeholder when configuring a SharePoint List for KLapper to learn. For SharePoint/iManage/NetDocuments, the ...