第13章 PMML モデルの実行
Business Central を使用して Red Hat Decision Manager に PMML ファイルをインポートする (Menu ApplyPmmlModelCommand
コマンドを送信することで、PMML ベースのデシジョンサービスを実行できます。
プロジェクトのパッケージングおよびデプロイメントの方法を使用する PMML アセットなどの詳細は Red Hat Decision Manager プロジェクトのパッケージ化およびデプロイ を参照してください
Business Central の Decision Model and Notation (DMN) サービスの一部として、PMML モデルを追加することもできます。DMN ファイルに PMML モデルを追加すると、その PMML モデルを DMN デシジョンノードまたはビジネスナレッジモデルノードのボックス関数式として呼び出すことができます。DMN サービスへの PMML モデルの追加に関する詳細は、DMN モデルを使用したデシジョンサービスの作成 を参照してください。
13.1. PMML 信頼呼び出しの Java アプリケーションへの直接組み込み リンクのコピーリンクがクリップボードにコピーされました!
KIE コンテナーは、呼び出しプログラムにナレッジアセットを直接組み込む場合や、KJAR 用 Maven 依存関係を使用して物理的にプルする場合は、ローカルとみなされます。コードのバージョンと、PMML 定義のバージョンとの間に密接な関係がある場合は、ナレッジアセットをプロジェクトに直接組み込みます。意思決定への変更は、アプリケーションを更新して再デプロイしないと有効になりません。このアプローチに対する利点は、適切なオペレーションがランタイムへの外部の依存関係に依存していないことですが、ロックされた環境の場合は制限になる可能性があります。
前提条件
- 実行する PMML モデルを含む KJAR が作成されている。プロジェクトのパッケージングの詳細は、Red Hat Decision Manager プロジェクトのパッケージ化およびデプロイ を参照してください。
手順
クライアントアプリケーションで、Java プロジェクトの関連クラスパスに以下の依存関係を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <version>
は、プロジェクトで現在使用する Red Hat Decision Manager の Maven アーティファクトバージョンです (例: 7.52.0.Final-redhat-00007)。注記個別の依存関係に対して Red Hat Decision Manager
<version>
を指定するのではなく、Red Hat Business Automation 部品表 (BOM) の依存関係をプロジェクトのpom.xml
ファイルに追加することを検討してください。Red Hat Business Automation BOM は、Red Hat Decision Manager と Red Hat Process Automation Manager の両方に適用されます。BOM ファイルを追加すると、提供される Maven リポジトリーから、推移的依存関係の適切なバージョンがプロジェクトに含められます。BOM 依存関係の例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Business Automation BOM (Bill of Materials) についての詳細情報は、What is the mapping between RHDM product and maven library version? を参照してください。
classpath
またはReleaseId
から KIE コンテナーを作成します。KieServices kieServices = KieServices.Factory.get(); ReleaseId releaseId = kieServices.newReleaseId( "org.acme", "my-kjar", "1.0.0" ); KieContainer kieContainer = kieServices.newKieContainer( releaseId );
KieServices kieServices = KieServices.Factory.get(); ReleaseId releaseId = kieServices.newReleaseId( "org.acme", "my-kjar", "1.0.0" ); KieContainer kieContainer = kieServices.newKieContainer( releaseId );
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、以下のオプションを使用します。
KieServices kieServices = KieServices.Factory.get(); KieContainer kieContainer = kieServices.getKieClasspathContainer();
KieServices kieServices = KieServices.Factory.get(); KieContainer kieContainer = kieServices.getKieClasspathContainer();
Copy to Clipboard Copied! Toggle word wrap Toggle overflow モデルの実行に使用する
PMMLRuntime
のインスタンスを作成します。PMMLRuntime pmmlRuntime = KieRuntimeFactory.of(kieContainer.getKieBase()).get(PMMLRuntime.class);
PMMLRuntime pmmlRuntime = KieRuntimeFactory.of(kieContainer.getKieBase()).get(PMMLRuntime.class);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PMMLRequestData
クラスのインスタンスを作成し、PMML モデルをデータセットに適用します。PMMLRequestData pmmlRequestData = new PMMLRequestData({correlation_id}, {model_name}); pmmlRequestData.addRequestParam({parameter_name}, {parameter_value}) ...
PMMLRequestData pmmlRequestData = new PMMLRequestData({correlation_id}, {model_name}); pmmlRequestData.addRequestParam({parameter_name}, {parameter_value}) ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 入力データが含まれる
PMMLContext
クラスのインスタンスを作成します。PMMLContext pmmlContext = new PMMLContextImpl(pmmlRequestData);
PMMLContext pmmlContext = new PMMLContextImpl(pmmlRequestData);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成した必須の PMML クラスインスタンスを使用して PMML の実行時に
PMML4Result
を取得します。PMML4Result pmml4Result = pmmlRuntime.evaluate({model_name}, pmmlContext);
PMML4Result pmml4Result = pmmlRuntime.evaluate({model_name}, pmmlContext);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow