Webchat Pluginsのトリガー
説明
多くのプラグイン(例えば、文字列を値として使用するもの)は、メッセージが特定のデータ
を含んでいる時だけトリガーされます。
例として、チャットに画像を表示するプラグインがあり、メッセージのデータからurlを取得するとします。マッチフィールドは inline-image
に設定され、message.data._plugin.url
から画像のurlを読み込みます。プラグインをトリガーするには、データ
フィールドを以下のように設定してメッセージを送信する必要があります:
{
"_plugin": {
"type": "inline-image",
"url": "https://placekitten.com/256/256"
}
}
ウェブチャットがこのメッセージを受信すると、message.data._plugin.type === 'inline-image'
と設定されているため、inline-image-plugin
がトリガーされます。プラグイン自体がmessage.data._plugin.url
からurlを読み込みます。
通常のFlow Nodes内での使用法
通常のFlow Node(Say Nodeなど)を利用すると、データフィールドを使用してメッセージにデータペイロードを追加することができます。データフィールドは、構造的エラーを防ぐための構文強調に役立ちます。
Code Nodes内での使用法
Code Nodeを使用してメッセージを送信したい場合は、構造化されたデータペイロードをactions.outputメソッドに2番目のパラメーターとして送ることができます。
拡張機能内での使用法
対話型AIの編集者に最高の体験を提供するために、必要なパラメーター以外を抽象化し、Webchat Pluginをトリガーするメッセージを送信するようカスタマイズされた拡張機能を設計することができます。
カスタムモジュール例
/**
* Sends an Image to the user via webchat
* @arg {CognigyScript} `url` The url of the image
*/
const sendInlineImage = async (input, args) => {
const { url } = args;
// if no url is set
if (!url) {
// do nothing
return input;
}
// send a message that triggers the 'inline-image' plugin with a url
input.actions.output('', {
_plugin: {
type: "inline-image",
url: "https://placekitten.com/256/256"
}
});
return input;
}