1. 概要
2. サービスプロバイダ
外部のAIサービスを利用するために、外部サービスの接続設定が必要になります。
サービスプロバイダでは、外部AIサービスプロバイダの接続設定を管理します。
2.1. サービスプロバイダ設定
サービスプロバイダは Service-Config で設定します。
AiIntegrationService の "aiServiceProvider" プロパティに、利用するサービスプロバイダを指定してください。
設定の詳細については、Service-Config AiIntegrationServiceを参照してください。
サービスプロバイダ設定の一例を記載します。
<!-- AI統合 -->
<service>
<interface>org.iplass.mtp.impl.ai.AiIntegrationService</interface>
<class>org.iplass.mtp.impl.ai.AiIntegrationService</class>
(1)
<depend>org.iplass.mtp.impl.awsv2.AWSSetting</depend>
(2)
<property name="aiServiceProvider" class="org.iplass.mtp.impl.ai.awsv2.AWSSettingAiServiceProviderConfig" additional="true" >
<property name="name" value="AwsSettingAws" />
</property>
(3)
<property name="aiServiceProvider" class="org.iplass.mtp.impl.ai.awsv2.AWSAiServiceProviderConfigImpl" additional="true" >
<property name="name" value="Tenant_1_2_OnlyAws" />
<property name="credentialsProviderFactory" class="org.iplass.mtp.impl.awsv2.DefaultCredentialsProviderFactory" />
<property name="clientConfig" class="org.iplass.mtp.impl.awsv2.AWSClientConfig">
<property name="region" value="ap-northeast-1" />
</property>
<property name="tenantId" value="1" />
<property name="tenantId" value="2" />
</property>
</service>
| 1 | AWSSettingAiServiceProviderConfig で、AWSSetting の設定を利用するので、depend に AWSSetting を指定しています。 |
| 2 | AWSSettingAiServiceProviderConfig クラスを利用して、AWSSetting の設定を利用するAIサービスプロバイダを設定します。 |
| 3 | AWSAiServiceProviderConfigImpl クラスを利用して、特定のテナントに対して利用可能なAIサービスプロバイダを設定します。 |
Know Narrator を利用する場合のサービスプロバイダ設定の一例を記載します。
Know Narrator 用のサービスプロバイダは org.iplass.mtp.impl.ai.knownarrator.KnowNarratorAiServiceProviderConfigImpl クラスを利用して設定します。
<!-- AI統合 -->
<service>
<interface>org.iplass.mtp.impl.ai.AiIntegrationService</interface>
<property name="aiServiceProvider" class="org.iplass.mtp.impl.ai.knownarrator.KnowNarratorAiServiceProviderConfigImpl" additional="true">
<property name="name" value="KnowNarrator" />
<property name="apiBaseUrl" value="https://your-knownarrator-endpoint" />
<property name="subscriptionKey" value="YOUR_SUBSCRIPTION_KEY" />
<property name="userPermissionId" value="YOUR_USER_PERMISSION_ID" />
</property>
</service>
3. プロンプト
プロンプトでは、AIに対しての指示の設定、指示を行うAIサービスの設定を行います。
プロンプトメタデータは AdminConsole を介して設定します。
メタデータ構成としては、プロンプト設定とプラットフォーム設定があります。
3.1. プロンプト設定
プロンプト設定では、AIに対しての標準的な指示を設定します。
プロンプトおよびシステムプロンプトの連携設定を行います。
| 項目 | 説明 |
|---|---|
System Prompt |
定義されたシステムプロンプトを参照することができます。 |
Prompt |
AIに対する指示プロンプトを設定します。Groovy Template 形式で設定することができます。
プロンプト例
## あなたの役割
あなたは優秀なアシスタントです。ユーザーからの質問に対して、正確かつ簡潔に答えることが求められます。
ユーザーからの質問に対して、必要に応じて、質問の内容を理解するための追加の質問を行うことができます。
## 質問に答えてください。
質問: ${inputText}
|
Prompt Placeholder |
プロンプト実行時に動的に値を設定したい箇所にプレースホルダを設定することができます。
Name に |
3.2. プラットフォーム設定
プラットフォーム設定では、サービスプロバイダが提供可能なAIサービスの種類や詳細を設定します。
利用するサービスプロバイダを選択し、利用するAIサービスを選択してください。
プラットフォーム共通の設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Provider Name |
サービスプロバイダの名前を設定します。選択するプロバイダ名は、本プロンプト利用時に使用します。 |
Platform Type |
プラットフォームのタイプを設定します。プラットフォームタイプは、サービスプロバイダで利用可能なAIサービスです。 |
iPLAss では、以下のプラットフォームを提供しています。
-
-
Amazon Bedrock サービスを利用することができます。
-
-
-
Know Narrator API を利用することができます。
-
-
-
独自に作成したプロンプトを実行することができます。
-
AWSプラットフォーム
AWSプラットフォームでは Amazon Bedrock の以下のサービスを利用することができます。
-
-
Amazon Bedrock サービスのモデルに対してリクエストを行います。
-
-
-
AWS上に定義した Amazon Bedrock Agent に対してリクエストを行います。
-
-
-
AWS上に定義した Amazon Bedrock Flow サービスに対してリクエストを行います。
-
-
-
AWS上に定義した Amazon Bedrock Knowledge Base を利用したリクエストを行います。
-
Bedrock
Bedrock Converse API を利用し、Amazon Bedrock サービスで利用可能なモデルに対してリクエストを行うことができます。
Converse API の詳細については、Amazon Bedrock のドキュメントを参照してください。
状態には対応していません。
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Model ID |
Amazon Bedrock サービスのモデルのIDを設定します。 |
Guardrail - Guardrail ID |
AWS で設定した Amazon Bedrock のガードレールのIDを設定します。 |
Guardrail - Guardrail Version |
AWS で設定した Amazon Bedrock のガードレールのIDに対応するバージョンを設定します。 |
Inference Config - Max Tokens |
Bedrock 推論パラメータ maxTokens を設定します。数値を設定してください。 |
Inference Config - Stop Sequences |
Bedrock 推論パラメータ stopSequences を設定します。カンマ区切りで複数設定可能です。 |
Inference Config - Temperature |
Bedrock 推論パラメータ temperature を設定します。0.0 から 1.0 の範囲の数値を設定してください。 |
Inference Config - TopP |
Bedrock 推論パラメータ topP を設定します。0.0 から 1.0 の範囲の数値を設定してください。 |
Structured Output Config - Schema Name |
構造化されたデータのスキーマの名前を設定します。 |
Structured Output Config - Schema Description |
構造化されたデータのスキーマの説明を設定します。 |
Structured Output Config - Json Schema |
AIリクエストを実行した際の応答を構造化されたデータとして受け取るための設定項目です。 |
Request Before Customize |
AIリクエストを実行する前に、リクエストの内容をカスタマイズするための設定項目です。 カスタマイズするリクエストインスタンスは、 |
Bedrock - Agent
Bedrock InvokeAgent API を利用し、Amazon Bedrock Agent で定義したエージェントに対してリクエストを行うことができます。
InvokeAgent API の詳細については、Amazon Bedrock のドキュメントを参照してください。
状態に対応しており、保持する値は以下の通りです。
-
メモリID
-
セッションID
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Agent ID |
Amazon Bedrock Agent で定義したエージェントのIDを設定します。 |
Agent Alias ID |
Amazon Bedrock Agent で定義したエージェントのIDに対するエイリアスIDを設定します。 |
Enable Trace |
Amazon Bedrock Agent の実行のトレースを有効にするかどうかを設定します。チェックすることでトレースを有効にすることができます。 |
Use Memory |
Amazon Bedrock Agent の実行でメモリ機能を利用するかどうかを設定します。チェックすることでメモリ機能を利用することができます。 |
Request Before Customize |
AIリクエストを実行する前に、リクエストの内容をカスタマイズするための設定項目です。 カスタマイズするリクエストインスタンスは、 |
Bedrock - Flow
Bedrock InvokeFlow API を利用し、Amazon Bedrock Flow で定義したフローに対してリクエストを行うことができます。
InvokeFlow API の詳細については、Amazon Bedrock のドキュメントを参照してください。
状態に対応しており、保持する値は以下の通りです。
-
実行ID
-
フロー完了理由などのフローの実行に関する情報
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Flow ID |
Amazon Bedrock Flow で定義したフローのIDを設定します。 |
Flow Alias ID |
Amazon Bedrock Flow で定義したフローのIDに対するエイリアスIDを設定します。 |
Enable Trace |
Amazon Bedrock Flow の実行のトレースを有効にするかどうかを設定します。チェックすることでトレースを有効にすることができます。 |
Request Before Customize |
AIリクエストを実行する前に、リクエストの内容をカスタマイズするための設定項目です。 カスタマイズするリクエストインスタンスは、 |
Bedrock - Knowledge Base
Bedrock RetrieveAndGenerate API を利用し、Amazon Bedrock Knowledge Base で定義したナレッジを利用したリクエストを行うことができます。
RetrieveAndGenerate API の詳細については、Amazon Bedrock のドキュメントを参照してください。
状態に対応しており、保持する値は以下の通りです。
-
セッションID
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Model ID |
Amazon Bedrock サービスのモデルのIDを設定します。 |
Knowledge Base ID |
Amazon Bedrock Knowledge Base で定義したナレッジベースIDを設定します。 |
Guardrail - Guardrail ID |
AWS で設定した Amazon Bedrock のガードレールのIDを設定します。 |
Guardrail - Guardrail Version |
AWS で設定した Amazon Bedrock のガードレールのIDに対応するバージョンを設定します。 |
Inference Config - Max Tokens |
Bedrock 推論パラメータ maxTokens を設定します。数値を設定してください。 |
Inference Config - Stop Sequences |
Bedrock 推論パラメータ stopSequences を設定します。カンマ区切りで複数設定可能です。 |
Inference Config - Temperature |
Bedrock 推論パラメータ temperature を設定します。0.0 から 1.0 の範囲の数値を設定してください。 |
Inference Config - TopP |
Bedrock 推論パラメータ topP を設定します。0.0 から 1.0 の範囲の数値を設定してください。 |
Request Before Customize |
AIリクエストを実行する前に、リクエストの内容をカスタマイズするための設定項目です。 カスタマイズするリクエストインスタンスは、 |
Know Narratorプラットフォーム
Know Narratorプラットフォームでは、Know Narrator API を利用し、Know Narrator に対してリクエストを行うことができます。
利用するサービスプロバイダには、Know Narrator 用のサービスプロバイダ設定を指定してください。
Know Narratorプラットフォームでは、以下のプラットフォームタイプを利用することができます。
-
-
Know Narrator Chat API を利用し、チャット形式のリクエストを行います。
-
-
-
Know Narrator Search API を利用し、ナレッジ(データソース)を検索した上でリクエストを行います。
-
Know Narrator Chat
Know Narrator Chat API を利用し、Know Narrator に対してチャット形式のリクエストを行うことができます。
Know Narrator Chat を利用する場合は、プラットフォームタイプを KNOW_NARRATOR に設定してください。
Know Narrator Chat API の詳細については、Know Narrator のドキュメントを参照してください。
状態に対応しており、保持する値は以下の通りです。
-
会話ID
会話IDを引き継ぐことで、前回の会話の内容を引き継いだ継続的な会話を行うことができます。
継続した会話を行う場合は、レスポンスの next メソッドを利用して、会話IDを引き継いだ次のリクエストを作成してください。
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Provider ID |
Know Narrator のAIプロバイダリソースIDを設定します。必須項目です。 |
Model ID |
Know Narrator で利用するモデルのIDを設定します。必須項目です。 |
Temperature |
サンプリング温度を設定します。0.0 から 2.0 の範囲の数値を設定してください。任意項目です。 |
Request Before Customize |
AIリクエストを実行する前に、リクエストの内容をカスタマイズするための設定項目です。 カスタマイズするリクエストインスタンスは、 |
Know Narrator Search
Know Narrator Search API を利用し、登録済みのナレッジ(データソース)を検索した上で回答を生成するリクエストを行うことができます。
Know Narrator Search を利用する場合は、プラットフォームタイプを KNOW_NARRATOR_KNOWLEDGE_CHAT に設定してください。
利用するサービスプロバイダには、Know Narrator 用のサービスプロバイダ設定を指定してください。
Know Narrator Search API の詳細については、Know Narrator のドキュメントを参照してください。
状態に対応しており、保持する値は以下の通りです。
-
会話ID
会話IDを引き継ぐことで、前回の会話の内容を引き継いだ継続的な会話を行うことができます。
継続した会話を行う場合は、レスポンスの next メソッドを利用して、会話IDを引き継いだ次のリクエストを作成してください。
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Deployment Name |
Know Narrator で利用するモデルのデプロイメント名を設定します。必須項目です。 |
Search Mode |
ナレッジを検索する際の検索モードを設定します。 |
Temperature |
サンプリング温度を設定します。0.0 から 2.0 の範囲の数値を設定してください。任意項目です。 |
Top P |
核サンプリング(Top P)の値を設定します。0.0 から 1.0 の範囲の数値を設定してください。任意項目です。 |
Reasoning Effort |
推論の深さを設定します。 |
Request Before Customize |
AIリクエストを実行する前に、リクエストの内容をカスタマイズするための設定項目です。 カスタマイズするリクエストインスタンスは、JSONリクエストボディを表す |
レスポンスからは、回答テキストに加えて、回答の根拠となった参照ドキュメントの一覧(参照ID、ファイル名、スコア)や、検索結果に関する警告情報を取得することができます。
カスタムプラットフォーム
カスタムプラットフォームでは独自のプロンプトアプリケーションを利用することができます。
カスタムプラットフォームを利用する場合は、プラットフォームタイプを CUSTOM に設定してください。
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
Logic Class Name |
プロンプトリクエストを行うクラスの完全修飾クラス名を設定します。 リソース開放が必要な場合は、 |
Value Map |
Logic Class Name で指定したクラスのインスタンスを生成する際に、初期値として設定することができます。 |
実装例
カスタムプロンプトは、org.iplass.mtp.impl.ai.prompt.AiPlatformCustom インターフェースを実装することで作成できます。
以下は、カスタムプロンプトの実装例です。
import java.io.Closeable;
import java.io.IOException;
import java.util.Map;
import org.iplass.mtp.ai.prompt.AiPlatformRequest;
import org.iplass.mtp.ai.prompt.AiPlatformResponse;
import org.iplass.mtp.impl.ai.prompt.AiPlatformCustom;
import org.iplass.mtp.impl.ai.prompt.AiPlatformRequestInformation;
import org.iplass.mtp.impl.ai.prompt.MetaAiPrompt.AiPromptRuntime;
public class ExampleAiLogic implements AiPlatformCustom, Closeable {
private AiPromptRuntime promptRuntime;
private Map<String, String> valueMap;
@Override
public AiPlatformResponse requestPrompt(AiPlatformRequest request, AiPlatformRequestInformation requestInfo) {
// カスタムプロンプトのリクエスト処理を実装してください。
return null;
}
@Override
public void setPromptRuntime(AiPromptRuntime promptRuntime) {
// initialize() メソッドの前に実行されます。
// AiPromptRuntime が設定されます。
this.promptRuntime = promptRuntime;
}
@Override
public void setValueMap(Map<String, String> valueMap) {
// initialize() メソッドの前に実行されます。
// プラットフォーム設定の Value Map で設定した値が渡されます。
this.valueMap = valueMap;
}
@Override
public void initialize() {
// 初期化処理を実装します。
// promptRuntime や valueMap を使用して初期化を行います。
}
@Override
public void close() throws IOException {
// 必要な場合は、リソースの解放処理を実装します。
}
}
3.3. プロンプト利用方法
基本的なプロンプトの利用方法は、プロンプトメタデータの定義名を指定してリクエストを実行します。
プロンプトメタデータの定義名を指定しない場合は、DEFAULT という定義名のプロンプトメタデータを利用します。
プロンプトを経由してAIサービスを利用することで、外部サービスを意識せずにAIサービスを利用することができます。
プロンプトのリクエスト・レスポンスで対応しているデータ種別は、以下の通りです。
-
テキスト
| 対応するデータ種別について、AIサービスで利用するモデルが対応している必要があります。 |
プロンプトを利用してAIサービスにリクエストを行うには、プロンプトメタデータの定義名を指定してリクエストを作成し、リクエストを実行します。
プロンプトを利用してAIサービスにリクエストを行うと、レスポンスが返却されます。
レスポンスには、AIサービスからの応答テキストや、状態などが含まれます。
応答テキストは JSON などに構造化されている場合があります。
この場合は、レスポンスからテキストを取得し、JSON などの形式でパースして利用してください。
プロンプトでリクエストを実行したら状態を保存します。
状態には、セッションIDなどの継続した会話を行うための情報が含まれています。
状態に対応状況は、外部のAIサービスやプラットフォーム実装によって異なります。
状態を次のリクエストで利用することで、前回のリクエストの内容を引き継いで会話を続ける、などができます。
基本的なプロンプト利用
基本的なプロンプトの利用方法は、以下の例の通りです。
public class ExamplePrompt {
/** プロンプトメタデータの定義名 */
private static final String PROMPT_NAME = "prompt_definition_name";
/**
* プロンプトの利用例
* プロンプト名を指定してプロンプトを利用する例です。
*/
public String exampleUseSpecificPrompt() {
var aiManager = ManagerLocator.manager(AiManager.class);
// 前回のリクエストで保存した状態の読み取り
var state = loadState();
// prompt_definition_name という名前のプロンプトメタデータを利用してリクエストを作成する例
var request = aiManager.createRequest(PROMPT_NAME, state, AiPlatformPayload.text("プロンプトテキスト"));
// prompt_definition_name という名前のプロンプトメタデータを利用してリクエストを実行する例
var response = aiManager.request(PROMPT_NAME, request);
// 次のリクエストで利用できるように状態を保存する
saveState(response.getState());
// レスポンステキストの取得
var responseText = response.getText();
return responseText;
}
/**
* プロンプトの利用例
* DEFAULT を指定してプロンプトを利用する例です。
*/
public String exampleUseDefaultPrompt() {
var aiManager = ManagerLocator.manager(AiManager.class);
// 前回のリクエストで保存した状態の読み取り
var state = loadState();
// DEFAULT という名前のプロンプトメタデータを利用してリクエストを作成する例
var request = aiManager.createRequest(state, AiPlatformPayload.text("プロンプトテキスト"));
// DEFAULT という名前のプロンプトメタデータを利用してリクエストを実行する例
var response = aiManager.request(request);
// 次のリクエストで利用できるように状態を保存する
saveState(response.getState());
// レスポンステキストの取得
var responseText = response.getText();
return responseText;
}
/**
* 状態の読み取り処理
*/
private AiPlatformState loadState() {
// 状態の取得はご利用の環境に応じてカスタマイズしてください
return null;
}
/**
* 状態の保存処理
*/
private void saveState(AiPlatformState state) {
// 状態の保存はご利用の環境に応じてカスタマイズしてください
}
}
プレースホルダーの利用
プロンプトの設定項目で説明した通り、独自のプレースホルダーを用意することができます。
独自のプレースホルダーを設定した場合は、プレースホルダーに対応する値をリクエストの作成時に設定する必要があります。
プレースホルダーの値を設定するには、キー名とそれに対応する値をリクエストに追加する必要があります。
プレースホルダーとして placeholder_name1 と placeholder_name2 を定義した場合の例、
placeholder_name1 と placeholder_name2 キーに対応する値をリクエストに追加する必要があります。
この場合、プロンプトには ${placeholder_name1} と ${placeholder_name2} を利用することができます。
public class ExamplePrompt {
(1)
public String exampleUsePlaceholder() {
var aiManager = ManagerLocator.manager(AiManager.class);
(2)
// プレースホルダーに対応する値を設定する例。 <A> と <B> は等価です。
var request = aiManager.createRequest(AiPlatformPayload.text("プロンプトテキスト"));
// <A> 個別にキー・値を設定する場合
request.putBinding("placeholder_name1", "プレースホルダーの値1");
request.putBinding("placeholder_name2", "プレースホルダーの値2");
// <B> プレースホルダーの値をまとめて設定する場合
request.setBindings(Map.of(
"placeholder_name1", "プレースホルダーの値1",
"placeholder_name2", "プレースホルダーの値2"
));
var response = aiManager.request(request);
// レスポンステキストの取得
var responseText = response.getText();
return responseText;
}
}
| 1 | プレースホルダーとして placeholder_name1 と placeholder_name2 を定義した場合の例。 |
| 2 | placeholder_name1 と placeholder_name2 キーに対応する値をリクエストに追加する。 |
上の例を実行した場合に、プロンプトの定義例と結果例は以下のようになります。
{
"prompt": "${inputText}",
"placeholder_name1": "${placeholder_name1}",
"placeholder_name2": "${placeholder_name2}"
}
{
"prompt": "プロンプトテキスト",
"placeholder_name1": "プレースホルダーの値1",
"placeholder_name2": "プレースホルダーの値2"
}
レスポンスから複数のデータ取得
AIリクエストのレスポンスは、テキスト以外のデータ型が含まれることがあります。
レスポンスからテキスト以外のデータを取得するには、対応するメソッドを利用してください。
public class ExamplePrompt {
public void exampleGetMultipleData() {
var aiManager = ManagerLocator.manager(AiManager.class);
// プロンプトのリクエストの作成と実行
var request = aiManager.createRequest(AiPlatformPayload.text("プロンプトテキスト"));
var response = aiManager.request(request);
// ここからレスポンスの情報を取得する例
// 返却されるデータが事前に判明している場合
// テキスト
String text = response.getText();
// 画像
List<AiPlatformPayloadImage> payloadImageList = response.getPayloadImage();
// 返却されるデータが不明な場合
// すべてのデータ
List<AiPlatformPayload> payloadList = response.getPayloads();
// データタイプ別に処理する
response.acceptPayloads(new PayloadConsumer() {
@Override
public void visit(AiPlatformPayloadText text) {
// テキストの処理
}
@Override
public void visit(AiPlatformPayloadImage image) {
// 画像の処理
}
});
}
}
4. システムプロンプト
システムプロンプトは、サービスプロバイダに依存しないプロンプトの集まりです。
よく利用する役割や指示などをシステムプロンプトとして定義しておくことを目的とします。
システムプロンプトは、プロンプトから参照して利用します。
また、システムプロンプト同士を参照して利用することもできます。
システムプロンプトは AdminConsole を介して設定します。
4.1. システムプロンプト設定
設定項目は次の通りです。
| 項目 | 説明 |
|---|---|
System Prompt |
システムプロンプトを定義します。プロンプトの定義に共通の内容を設定することができます。 |
System Prompt Relation |
システムプロンプト同士を参照して利用することができます。 システムプロンプトが循環的に参照された場合、定義されたプロンプトは1度だけ展開されるようになっています。 |
5. データ連携
データ連携では、外部のサービスプロバイダに対してデータを提供することができます。
連携可能なデータは、データ読み取り元設定で設定するデータ読み取り元から読み取ったデータになります。
データ連携先は、データ連携先の設定で設定します。
データ連携は AdminConsole を介して設定します。
構成としては、データ読み取り元設定とデータ連携先設定があります。
5.1. データ連携の全体設定
全体設定では、データ連携の全体に関する設定を行います。
| 項目 | 説明 |
|---|---|
Enabled |
このデータ連携設定が有効かどうかを設定します。チェックすることで有効にすることができます。 |
Incremental Update |
差分更新を行うかどうかを設定します。チェックすることで差分更新を行うことができます。 差分更新は、データ読み取り元の実装によって対応している必要があります。 |
5.2. データ読み取り元設定
データ連携する元データに関する設定を行います。
共通設定では、データ読み取り元の種類を設定します。データ読み取り元を決定後に、選択した種類に応じた詳細な設定を行います。
| 項目 | 説明 |
|---|---|
Source Type |
データ読み取り元の種類を設定します。 |
エンティティ
データ読み取り元が、エンティティ設定です。エンティティのデータを連携することができます。
読み取りデータの型は、org.iplass.mtp.entity.GenericEntity です。
差分更新を行う場合は、前回のデータ連携の実行以降に更新されたエンティティを連携するようになります。
| 項目 | 説明 |
|---|---|
Entity Name |
データ連携のデータ読み取り元とするエンティティの名前。 |
EQL
データ読み取り元をEQLクエリとした設定です。
読み取りデータの型は、Object[] です。
差分更新を行う場合は、前回のデータ連携の実行以降に更新されたEQLのFROM句で指定されたエンティティのデータを連携するようになります。
| 項目 | 説明 |
|---|---|
EQL |
EQLクエリを設定します。 |
Column Info |
EQLクエリの結果のカラム情報を設定します。
|
5.3. データ連携先の設定
データ連携する先に関する設定を行います。
共通設定では、データ連携先の種類を設定します。データ連携先を決定後に、選択した種類に応じた詳細な設定を行います。
データ連携先で受付可能なデータ型は、選択したデータ連携先の種類に依存します。
| 項目 | 説明 |
|---|---|
Provider Name |
サービスプロバイダの名前を設定します。選択するプロバイダ名は、データ連携実行時に使用します。 |
Destination Type |
データ連携先のタイプを設定します。利用可能なタイプは、サービスプロバイダで対応しているデータ連携先の種類に依存します。 |
Processor Factory Class Name |
プロセッサは読み取り元の情報からデータ連携先が要求するデータの形式に変換する機能です。 詳細については、プロセッサを参照してください。 |
AWS
AWS へのデータ連携機能を設定することができます。
JSON to S3
JSON ファイルを S3 にアップロードする機能です。
Amazon Bedrock Knowledge Base のデータソースとして利用することを目的としています。
受け入れ可能なデータ型は Map<String, Object> です。
設定項目は以下の通りです。
| 項目 | 説明 |
|---|---|
Output Type |
ファイル出力方法を決定します。
|
JSON Write Format |
JSON書き込みフォーマットを選択します。利用可能なフォーマットは、 JSON もしくは JSONL です。 |
Bucket Name |
ファイルをアップロードする S3 バケットの名前を設定します。 |
Prefix |
S3 バケット内のオブジェクトキーのプレフィックスを設定します。 |
Object Key Generate Type |
オブジェクトキーの生成方法を設定します。 |
Object Key Generate - Class Name |
オブジェクトキーを生成するクラスの完全修飾名を設定します。 |
Object Key Generate - Script |
オブジェクトキーを生成するスクリプトを設定します。 |
カスタム
独自に作成したデータ連携処理を設定することができます。
設定項目は以下の通りです。
| 項目 | 説明 |
|---|---|
Custom Destination Class Name |
データ連携処理を実行するクラスの完全修飾名を設定します。クラスは カスタムデータ連携処理を設定する場合は、データ連携先共通の設定項目のProcessor Factory Class Nameを設定する必要があります。 |
5.4. プロセッサ
プロセッサは、読み取り元からデータ連携先へのデータ変換を行う機能です。
プロセッサインスタンスは、org.iplass.mtp.impl.ai.dataconnect.AiDataProcessorFactory で設定したクラスによって生成されます。
プロセッサは org.iplass.mtp.impl.ai.dataconnect.AiDataProcessor を実装する必要があります。
標準提供している読み取り元、データ連携先の組み合わせに対しては、デフォルトのプロセッサが用意されています。
ただし、データの変換方法をカスタマイズしたい場合や、独自のデータ連携先を利用する場合は、プロセッサおよびプロセッサファクトリを実装して設定する必要があります。
5.5. データ連携方法
作成したデータ連携を行うには、データ連携メタデータの定義名を指定します。
基本的なデータ連携方法
AiManager から connectData メソッドを呼び出すことで、データ連携を実行できます。
実行結果は、データ連携の実行結果クラスから取得できます。
public class ExampleDataConnect {
public void connectData() {
var name = "dataconnect.metadata.name";
var aiManager = ManagerLocator.manager(AiManager.class);
// データ連携の実行
var status = aiManager.connectData(name);
// 実行ID
var executionId = status.getExecutionId(); (1)
var historyOid = status.getHistoryOid(); (2)
}
}
| 1 | データ連携の実行IDを取得します。実行IDはデータ連携の実行ごとに一意な値となり、履歴の参照やログ確認などに利用できます。 |
| 2 | データ連携の実行履歴エンティティのOIDを取得します。データ連携の実行履歴エンティティには、データ連携の実行に関する情報が保存されます。 |
データ連携の実行履歴確認
データ連携の履歴はAIデータ連携履歴エンティティに保存されます。
Admin Console の Tools > EntityExplorer > mtp.ai.dataconnect.DataConnectHistory から確認してください。
履歴には、実行ID、実行開始日時、実行終了日時、実行結果などの情報が保存されます。
実行結果は、execute_state 列の値で確認することができます。
| 値 | 説明 |
|---|---|
RUNNING |
データ連携を実行中です。 |
SUCCEEDED |
データ連携が成功しました。 |
FAILED |
データ連携が失敗しました。 |