Machine Learning Stage

The Machine Learning query pipeline stage uses a trained machine learning model to analyze a field or fields of a Request object and stores the results of analysis in a new field added to either the Request or the Context object.

In order to use the Machine Learning Stage, you must train a machine learning model. There are two different ways to train a model:

This stage requires that you use JavaScript to construct a model input object from the Request and/or Context. This JavaScript is defined in the "Model input transformation script" property. This script must construct a HashMap containing fields and values to be sent to the model. The field names and values will depend on the input schema of the model.

Value types supported are:

  • String

  • Double

  • String[]

  • double[]

  • List<String>

  • List<Number>

The JavaScript interpreter that executes the script will have the following variables available in scope:

The last line of the script must be a reference to the HashMap object you created.

Example 1: Single string parameter from request to modelInput HashMap
var modelInput = new java.util.HashMap()
modelInput.put("input_1", request.getFirstParam("q"))
modelInput
Example 2: List of strings from request to modelInput HashMap
var modelInput = new java.util.HashMap()
modelInput.put("input_1", request.getParam("q")) // request.getParam returns a Collection
modelInput
Example 3: List of numeric values from request to modelInput HashMap
var modelInput = new java.util.HashMap()
var list = new java.util.ArrayList()
list.add(Double.parseDouble(request.getFirstParam("numeric_1")))
list.add(Double.parseDouble(request.getFirstParam("numeric_2")))
modelInput.put("input_1", list)
modelInput

Similarly, you will need to use JavaScript to store the predictions into the Request and/or Context from the model output object. The model output object is a HashMap containing fields and values produced by the model.

The JavaScript interpreter that executes the script will have the following variables available in scope:

Example: Place predictedLabel (string) on request
request.putSingleParam("sentiment", modelOutput.get("predictedLabel"))

Configuration

Tip
When entering configuration values in the UI, use unescaped characters, such as \t for the tab character. When entering configuration values in the API, use escaped characters, such as \\t for the tab character.