Script include - AILensActionService
Use the AILensActionService script include together with Lens actions to leverage ServiceNow AI Lens as a service for extracting information from the provided images and getting answers to your questions.
This script include is part of the ServiceNow AI Lens (sn_ai_lens) store application and is located within the sn_app_lens_core scope.
This script include provides methods that enable the following:
- Calls Lens as a back-end service
- Analyzes and comprehends data from provided images
- Gets response from Now Assist as per provided directions
- Does not require ServiceNow AI Lens desktop app
Parent Topic:ServiceNow AI Lens reference
AILensActionService - AILensActionService()
Creates an AILensActionService instance.
| Name | Type | Description |
|---|---|---|
| None |
The following example shows how to initialize AILensActionService.
var lensService = new sn_app_lens_core. AILensActionService()
AILensActionService - invokeLens(String lensActionId, String[] attachmentIds, String userPrompt, Object[] imageArr, Object inputJSON, Object[] additionalContext, Boolean skipACL)
Invokes ServiceNow AI Lens as a service.
| Name | Type | Description |
|---|---|---|
| lensActionId | String | Sys\_id of the Lens Actions record created for your use case, or you can select the out-of-the-box option that fits your requirements.Example: 842bfc8e37066210b97528c734924baf This parameter is mandatory. |
| attachmentIds | String\[\] | Array of sys\_ids for existing image attachments.Example: `["0067e66f93f022108319f9ed1dba108b", "0000e8a42c9a7110f877137af4eab4b5"]` You must pass either `attachmentIds` or `imageArr` parameter. |
| userPrompt | String | An instruction or question for Now Assist to answer after analyzing the contents of the attachments.Example: `Analyze this production issue and create an incident ticket` |
| imageArr | Object\[\] | Array of objects containing name of the screenshot and base64 encoded image data.Example: |
| inputJSON | Object | Additional JSON input parameters that you want to pass in the pre-processing script of the Lens action.Example: |
| additionalContext | Object | An optional parameter that you can use to pass any extra key–value information while you're performing a Lens service call. The examples show the key–value information that you can pass.- Example: Request example: var response = new sn_app_lens_core.AILensActionService().invokeLens( } ); Response example: { "Owner": { "type": "string", "mappings": { "0.8": ["assigned_to", "parent", "epic"] } }, "Age": { "type": "integer", "mappings": { "0.8": ["story_points"] } }, "Status": { "type": "choice", "mappings": { "0.8": ["state", "priority"] }, "choiceValues": ["Retired", "On Boarding", "Working"] }, "Start Date": { "type": "glide_date", "mappings": { "1.0": ["expected_start"], "0.8": ["due_date"] } }, "End Date": { "type": "glide_date", "mappings": { "1.0": ["due_date"], "0.8": ["expected_start"] } }, "Project Assigned":{ "type": "string", "mappings": { "0.8": ["short_description", "task", "description"] } } } ```
SheetName:’Incident Data’, SheetNameheaderRowNumber:2, columnConfigs: [{ field: 'assignment_group', name: 'Assignment Group', }] } ); Response example: [ { "name": "Assignment Group", "field": "assignment_group", "mappings": [ { "key": "IT Help Desk", "value": "abc123...", "label": "IT Help Desk", "score": 1.0 } ] } ] ``` |
| Type | Description |
|---|---|
| <object> | Returned success object |
| error | Returned error object |
This example shows how to call Lens service from a script block.
var lensActionId = "cd6570cdf36a2210b9751f09f6968c42";
var attachmentIds = ["3fe930093b626210aba1fadc73e45a38", "0000e8a42c9a7110f877137af4eab4b5"];
var userPrompt = "Analyze this production issue and create an incident ticket";
var imageArr = [
{
name: "screenshot1.png",
data: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="
},
{
name: "screenshot2.png",
data: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9Qz0AEYAJMgkU1f5kAAAAASUVORK5CYII="
}
];
var inputJSON = {
"type" : "object",
"properties" : {
"short_description" : {
"type" : "string",
"label" : "Short description"
},
"description" : {
"type" : "string",
"label" : "Description"
},
},
"required" : [ "short_description", "comments" ],
}
var additionalContext = {
IsFileUploadEnabled: true};
// Call the method
var result = new sn_app_lens_core. AILensActionService().invokeLens(lensActionId, attachmentIds, userPrompt, imageArr, inputJSON, skipACL, additionalContext);
// Handle the response
if (result.status === 'success') {
var response = JSON.parse(result.lensResponse);
gs.info("AI Lens Analysis Complete:");
gs.info("Title:", response.short_description);
gs.info("Description:", response.description);
} else {
gs.error("Error occurred:", result.error.message);
}