Skip to content

Commit

Permalink
Update: jpmml to 1.6.3 (#210)
Browse files Browse the repository at this point in the history
Co-authored-by: Łukasz Ciołecki <[email protected]>
  • Loading branch information
lciolecki and Łukasz Ciołecki authored Apr 15, 2022
1 parent 0524a42 commit 46aaa63
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 25 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ If you are already signed to GitHub in your project, just add any of these lines
to add Prinz dependencies to your `.sbt` project

```sbt
"pl.touk.nussknacker.prinz" %% "prinz" % "1.2.0-preview-staging-2021-12-21"
"pl.touk.nussknacker.prinz" %% "prinz-mlflow" % "1.2.0-preview-staging-2021-12-21"
"pl.touk.nussknacker.prinz" %% "prinz-pmml" % "1.2.0-preview-staging-2021-12-21"
"pl.touk.nussknacker.prinz" %% "prinz-h2o" % "1.2.0-preview-staging-2021-12-21"
"pl.touk.nussknacker.prinz" %% "prinz-proxy" % "1.2.0-preview-staging-2021-12-21"
"pl.touk.nussknacker.prinz" %% "prinz" % "1.2.0-preview-staging-2022-03-14"
"pl.touk.nussknacker.prinz" %% "prinz-mlflow" % "1.2.0-preview-staging-2022-03-14"
"pl.touk.nussknacker.prinz" %% "prinz-pmml" % "1.2.0-preview-staging-2022-03-14"
"pl.touk.nussknacker.prinz" %% "prinz-h2o" % "1.2.0-preview-staging-2022-03-14"
"pl.touk.nussknacker.prinz" %% "prinz-proxy" % "1.2.0-preview-staging-2022-03-14"
```

## Authors
Expand Down
11 changes: 7 additions & 4 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import sbtassembly.MergeStrategy

val prinzV = "1.2.0-preview-staging-2021-12-21"
val prinzV = "1.2.0-preview-staging-2022-03-14"
val prinzOrg = "pl.touk.nussknacker.prinz"
val repositoryOwner = "prinz-nussknacker"
val repositoryName = "prinz"
Expand All @@ -13,7 +13,7 @@ val scalatestV = "3.2.2"
val minioS3V = "8.0.0"
val circeV = "0.14.1"
val circeYamlV = "0.11.0-M1"
val jpmmlV = "1.5.11"
val jpmmlV = "1.6.3"
val jpmmlTranspilerV = "1.1.7"
val testContainersV = "0.38.8"
val paradiseV = "2.1.1"
Expand All @@ -23,6 +23,9 @@ val logbackV = "1.2.3"
val h2V = "1.4.200"
val jsoupV = "1.13.1"
val h2oV = "3.32.0.5"
val jaxbV = "3.0.0"
val jakartaV = "3.0.0"


ThisBuild / scalaVersion := scalaV
ThisBuild / versionScheme := Some("semver-spec")
Expand Down Expand Up @@ -117,7 +120,6 @@ lazy val prinz = (project in file("prinz"))
libraryDependencies ++= {
Seq(
"com.typesafe" % "config" % typesafeConfigV,

"org.jsoup" % "jsoup" % jsoupV,

"org.scalatest" %% "scalatest" % scalatestV % Test,
Expand Down Expand Up @@ -165,10 +167,11 @@ lazy val prinz_pmml = (project in file("prinz_pmml"))
libraryDependencies ++= {
Seq(
"org.jpmml" % "pmml-evaluator" % jpmmlV,
"org.jpmml" % "pmml-evaluator-extension" % jpmmlV,
"org.jpmml" % "pmml-model" % jpmmlV,
"org.jpmml" % "jpmml-transpiler" % jpmmlTranspilerV,
"org.jsoup" % "jsoup" % jsoupV,
"jakarta.xml.bind" % "jakarta.xml.bind-api" % jakartaV,
"com.sun.xml.bind" % "jaxb-impl" % jaxbV,
)
}
)
Expand Down
2 changes: 1 addition & 1 deletion dev-environment/create_environment.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

scalaV="2.12"
prinzV="1.2.0-preview-staging-2021-12-21"
prinzV="1.2.0-preview-staging-2022-03-14"

COMP_FILES=""
ENV_FILE="-f docker-compose-env.yaml"
Expand Down
2 changes: 1 addition & 1 deletion dev-environment/docker-compose-env.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ services:
# this is needed to be able to verify savepoints during deployments
- storage_flink:/opt/flink/data
- ./nussknacker/opt/prinz-sample/prinz.conf:/opt/nussknacker/conf/prinz.conf
- ./nussknacker/opt/prinz-sample/prinz-sample-assembly-1.2.0-preview-staging-2021-12-21.jar:/opt/prinz-sample/prinz-sample.jar
- ./nussknacker/opt/prinz-sample/prinz-sample-assembly-1.2.0-preview-staging-2022-03-14.jar:/opt/prinz-sample/prinz-sample.jar
networks:
- dev-bridge-net

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ final case class PrinzEnricher(private val model: Model)
collector: InvocationCollectors.ServiceInvocationCollector,
contextId: ContextId,
metaData: MetaData): Future[Any] = {
val inputMap = createInputMap(params.values.toList)
val inputMap = createInputMap(params)
modelInstance.run(inputMap).map {
case Right(runResult) => runResult
case Left(exc) => throw exc
Expand All @@ -43,6 +43,7 @@ final case class PrinzEnricher(private val model: Model)
.signature
.toOutputTypedObjectTypingResult

def createInputMap(inputs: List[Any]): ModelInputData =
VectorMultimap(parameters.map(_.name) zip inputs)
def createInputMap(inputs: Map[String, Any]): ModelInputData =
VectorMultimap(parameters.map{p => (p.name, inputs.getOrElse(p.name, throw new IllegalArgumentException(s"Missing param: ${p.name}.")))})

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package pl.touk.nussknacker.prinz.pmml.model

import org.jpmml.evaluator.{Evaluator, LoadingModelEvaluatorBuilder, PMMLException}
import pl.touk.nussknacker.prinz.model.SignatureProvider.ProvideSignatureResult
import pl.touk.nussknacker.prinz.model.{Model, ModelInstance, ModelName, ModelNotValidException, ModelSignatureLocationMetadata, ModelVersion}
import pl.touk.nussknacker.prinz.model.{Model, ModelInstance, ModelName, ModelSignatureLocationMetadata, ModelVersion}
import pl.touk.nussknacker.prinz.pmml.model.PMMLModel.extractName
import pl.touk.nussknacker.prinz.pmml.repository.PMMLModelPayload

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package pl.touk.nussknacker.prinz.pmml.model

import org.jpmml.evaluator.{Evaluator, LoadingModelEvaluatorBuilder, PMMLException}
import org.jpmml.evaluator.{Evaluator, LoadingModelEvaluatorBuilder}
import org.jpmml.model.PMMLException
import pl.touk.nussknacker.prinz.model.ModelNotValidException
import pl.touk.nussknacker.prinz.pmml.repository.PMMLModelPayload
import pl.touk.nussknacker.prinz.util.resource.ResourceManager
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package pl.touk.nussknacker.prinz.pmml.model

import com.typesafe.scalalogging.LazyLogging
import org.jpmml.evaluator.{Evaluator, EvaluatorUtil, PMMLException}
import org.jpmml.evaluator.{Evaluator, EvaluatorUtil}
import org.jpmml.model.PMMLException
import pl.touk.nussknacker.engine.util.SynchronousExecutionContext.ctx
import pl.touk.nussknacker.prinz.model.ModelInstance.{ModelInputData, ModelRunResult}
import pl.touk.nussknacker.prinz.model.{ModelInstance, ModelRunException}
Expand All @@ -28,9 +29,8 @@ case class PMMLModelInstance(private val evaluator: Evaluator,
}

def evaluateRow(row: Map[String, Any]): Map[String, _] = {
val args = EvaluatorUtil.encodeKeys(row.asJava)
val results = evaluator.evaluate(args)
val decodeResult = EvaluatorUtil.decodeAll(results).asScala.toMap
val args = evaluator.evaluate(row.asJava)
val decodeResult = EvaluatorUtil.decodeAll(args).asScala.toMap
decodeResult
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package pl.touk.nussknacker.prinz.pmml.model

import org.jpmml.evaluator.{LoadingModelEvaluatorBuilder, ModelField, PMMLException}
import pl.touk.nussknacker.prinz.model.{ModelNotValidException, ModelSignature, ModelSignatureLocationMetadata,
SignatureField, SignatureName, SignatureProvider, SignatureType}
import org.jpmml.evaluator.{LoadingModelEvaluatorBuilder, ModelField}
import org.jpmml.model.PMMLException
import pl.touk.nussknacker.prinz.model.{
ModelNotValidException, ModelSignature, ModelSignatureLocationMetadata,
SignatureField, SignatureName, SignatureProvider, SignatureType
}
import pl.touk.nussknacker.prinz.pmml.converter.PMMLSignatureInterpreter.fromPMMLDataType
import pl.touk.nussknacker.prinz.util.resource.ResourceManager

Expand Down Expand Up @@ -30,7 +33,7 @@ object PMMLSignatureProvider extends SignatureProvider {

private def modelFieldToSignatureField(modelField: ModelField): SignatureField =
SignatureField(
SignatureName(modelField.getName.toString),
SignatureName(modelField.getName),
SignatureType(fromPMMLDataType(modelField.getDataType.toString))
)
}

0 comments on commit 46aaa63

Please sign in to comment.