チャットボットリファレンスガイド
チャットボットソースは、 Microsoft Azure ボット サービスMicrosoft Azure Bot Services で作成されたボットは、様々なチャットルームサービス(Slack、Teams、Kik、FB Messenger など)にインストールでき、これらのチャットルームからのメッセージを Vantiq ノードに中継できます。受信メッセージによって生成されたイベントは、メッセージペイロードの完全なコンテンツにアクセスできるルールをトリガーできます。ルールは、メッセージのテキストをレスポンスで変更し、チャットボットソースにメッセージをパブリッシュして、メッセージの発信元であるチャットルームに返信を送信します。
チャットボットとの統合には、次のようないくつかの独立した部分の設定が必要です。
- Microsoft Azureアカウント
- 初期セットアッププロセス中にアプリ ID とアプリ シークレットを保存します。
- チャット サービス (Slack、Teams、Kik、FB Messenger など) 固有のボットを作成します。
- Microsoft Azure Bot Services なら、各サービスごとに個別の手順が書かれているので、簡単に設定できます。「別のチャネルを追加」へのリンクをクリックしてください。
- Vantiq チャットボット ソースを構成します。
- 指定 アプリケーションID の三脚と アプリシークレット Microsoft Azure ボットの作成時に生成された値を使用して、ソースに入力します。
- 受信メッセージに基づいてトリガーされるルールを作成します。
ガイドする方法
- Microsoft Azure アカウントを作成するか、既存のアカウントを使用します。
- に行く https://azure.microsoft.com/en-us/products/bot-services サインインしてください。するとポータルページに移動し、 リソースを作成する ボタンをクリックし、検索します アズールボットAzureボットから、 創造する 必要なデータを提供します。
- 心配しないでください メッセージングエンドポイント ただし、これは手順 5 で後で作成されるソースによって異なります。
- クリックしてボットのApp IDとApp Secretを作成します 、次に選択 パスワードの管理.
- 登録時に生成されたMicrosoft App IDとApp Secretを保存します。App IDとApp Secretの自動生成を選択した場合、App IDは次の場所に保存されます。 作成したボットを表示するときにタブをクリックします。App Secretは見つけにくいため、 パスワードの管理 リンクをクリックしてください。必要に応じて 証明書と秘密ここから、 クライアントシークレット タブを開き、新しいシークレットを作成します。表示された値はコピーしてください。この値は一度表示されると使用できなくなります。この値は、CHATBOTソースを作成する際に参照できるよう、Vantiq SECRETとして保存することをお勧めします。 クライアントの秘密 値は、Vantiq CHATBOT ソースを作成するために必要な Microsoft App Secret です。
- ボットに任意のチャネルを追加します。少なくとも、 チャネル 作成したボットを表示するときにタブをクリックします。次に、自動生成された 秘密鍵、これは ダイレクトラインシークレットキー Vantiq CHATBOTソースのプロパティ値。上記と同様に、これをVantiq SECRETとして保存することをお勧めします。
- ボットを作成してチャット サービスに追加したら、メッセージを受信したいサービスの任意のチャネル/チャット ルームにボットを追加します。
- ほとんどのサービスでは、チャットボット ユーザーをチャットルームに追加するだけです。
- Vantiq CHATBOTソースを作成します。前の手順で設定した値を使用します。 Microsoft アプリ ID, マイクロソフト アプリ シークレット の三脚と ダイレクトラインシークレットキー ソースのプロパティを選択します プレーンテキスト として Microsoft アプリ シークレット タイプ プロパティを選択し、値を入力するか、
@secrets(_secret name_)シークレットを参照するための表記法を使用して、上で保存した値を取得します。同様に、 ダイレクトラインシークレットキー または使用@secrets()表記 - ソースが作成されたら、ボットを管理するMicrosoft Azure Bot Servicesページに戻り、手順2でスキップしたメッセージングエンドポイントURLを更新します。 ボット定義ページのタブをクリックして変更します メッセージングエンドポイント 〜へ
<Vantiq Server>/private/chatbot/<namespaceName>/<sourceName>
ソースが作成されると、次のように受信メッセージに基づいてトリガーされるルールを記述できます。
RULE botRule
WHEN EVENT OCCURS ON "/sources/<sourceName>" AS message
log.info("Message text: " + message.value.text)
// Modify text field to contain response
message.value.text = "My custom response"
// Send response back to chatroom that inbound message came from
PUBLISH message.value TO SOURCE <sourceName>
return message.value
仕組み
チャットボットサービスとの統合
Microsoft Azure Bot がインストールされているチャットチャネルにメッセージが書き込まれると、チャットサービスは Microsoft にメッセージを通知します。Microsoft は受信したメッセージを正規化し、ハウツーガイドの手順 6 で設定したメッセージングエンドポイントに標準化されたメッセージを POST します。Vantiq は受信メッセージをソースイベントに変換し、ルールをトリガーします。これらのメッセージはデフォルトでは Vantiq システムのどこにも保存されませんが、タイプを作成し、そのタイプにメッセージを挿入することで、Azure Bot から Vantiq に転送されたすべてのメッセージのレコードを作成できます(メッセージの頻度とサイズに応じて使用されるリソースに注意してください)。
受信メッセージによってトリガーされるルールの本文では、ボットによって生成された正規化されたメッセージの全コンテンツにアクセスできます (以下に例を示します)。
{
"type": "message",
"id": "4024f72117af4a17b8521bf49bc24270",
"timestamp": "2016-12-13T21:57:26.0056512Z",
"serviceUrl": "https://slack.botframework.com",
"channelId": "slack",
"from": {
"id": "XXXXX:TTTTT",
"name": "jake"
},
"conversation": {
"isGroup": false,
"id": "BBBBB:TTTTT:CCCCC",
"name": "vantiq-channel"
},
"recipient": {
"id": "BBBBB:TTTTT",
"name": "vantiq"
},
"text": "@vantiq hello",
"attachments": [],
"entities": [
{
"mentioned": {
"id": "BBBBB:TTTTT",
"name": "vantiq"
},
"text": "@vantiq",
"type": "mention"
}
],
"channelData": {
"SlackMessage": {
"type": "message",
"channel": "CCCCC",
"user": "XXXXX",
"text": "<@U3F2ZFJ6B> hello",
"ts": "1481666245.000007",
"team": "TTTTT"
},
"ApiToken": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
}
これらのフィールドはいずれも、ルールのトリガー条件の制約を記述するときに使用できるため、次のような WHEN 句を使用して、特定のユーザーからのメッセージ、または特定のチャットルーム内のメッセージのみをトリガーするルールを記述できます。
// Trigger on all incoming messages for the source
WHEN EVENT OCCURS ON "/sources/<sourceName>" AS message
// Trigger only when a message was the slack user MySlackUserName
WHEN EVENT OCCURS ON "/sources/<sourceName>" AS message WHERE message.from.name == "MySlackUserName"
// Trigger only on messages that occur in a specific chatroom on slack
WHEN EVENT OCCURS ON "/sources/<sourceName>" AS message WHERE message.conversation.name == "MyChatroomName" AND message.channelId == "slack"
ルールをトリガーした受信メッセージへのレスポンスを生成するには、メッセージのテキストフィールドを必要なレスポンスで更新し、メッセージをソースにパブリッシュするだけです。以下に例を示します。
RULE helloToYouTooRule
WHEN EVENT OCCURS ON "/sources/<sourceName>" AS message
if (message.text.contains("Hello")) {
message.text = "Hello to you too!"
PUBLISH message TO SOURCE <sourceName>
}
このルールは、チャットボットがインストールされているすべてのチャンネルのすべてのメッセージを受信します。メッセージに「Hello」が含まれている場合、チャットボットはチャットルームに「Hello to you too!」と返信します。
任意のチャットメッセージの公開
チャットボットが既にメンバーになっている既存のチャンネルにチャットメッセージを公開することもできます。これを行うには、メッセージを含むオブジェクトを構築します。 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. 、の名前 サービス (例:Slack、Teams、Kikなど)と チャンネル ルール内の受信メッセージに応答するのと同じように、オブジェクトに名前を付けてソースに公開します。手順の例については、以下の手順を参照してください。
PROCEDURE sendChatbotMessage
var message = {}
message.text = "Hello World!"
message.service = "slack"
message.channel = "vantiq-channel"
PUBLISH message TO SOURCE testbot
上記の手順のパラメータ化されたバージョンを使用すると、他の手順やルールからチャット チャネルにメッセージを送信することがさらに簡単になります。
PROCEDURE chatbotTestMessage(text, service, channel)
var message = {}
message.text = text
message.service = service
message.channel = channel
PUBLISH message TO SOURCE testbot
これは、固有のチャネル/サービスペアと、特定のチャットチャネルにメッセージを送信するために必要なAzure Botメタデータとの間の内部マッピングを維持することで機能します。このマッピングは、チャットボットが新しいチャットチャネルに追加されるたびに自動的に更新されます。既にチャットボットがインストールされているチャネルへの公開が機能しない場合は、マッピングが作成されていない可能性があります。この問題を解決するには、チャネルを退出し、任意のユーザーとして再参加するだけで、そのチャネルのマッピングが作成されます。
チャットボットソースの作成
次の例は、REST APIを使用してチャットボットソースを作成する方法を示しています。チャットボットソースは、 ヴァンティックIDE 使用して、 追加 ボタンを押して選択する ソース….
POST https://dev.vantiq.com/api/v1/resources/sources
{
"name": "myChatbotSource",
"type": "CHATBOT",
"config": {
"clientId" : "APP_ID_FROM_BOT",
"clientSecret": "SECRET_FROM_BOT",
"directLineSecret": "SECRET_FROM_DIRECTLINE_CHANNEL"
}
}
あるいは、「MySecret」という名前の秘密のクライアントシークレット(および「MyDirectLineSecret」という名前のダイレクトラインシークレット)を使用するには、 @secrets() 表記は以下のとおりです。
POST https://dev.vantiq.com/api/v1/resources/sources
{
"name": "myChatbotSource",
"type": "CHATBOT",
"config": {
"clientId" : "APP_ID_FROM_BOT",
"clientSecret": "@secrets(MySecret)",
"directLineSecret": "@secrets(MyDirectLineSecret)"
}
}
チャットボットソースを削除するには マイチャットボットソース REST API を使用して次のリクエストを発行します。
DELETE https://dev.vantiq.com/api/v1/resources/sources/myChatbotSource