Help us understand the problem. What is going on with this article?

ServiceNowのOutbound REST MessageでWatson Assistant APIを起動する

More than 1 year has passed since last update.

概要

IBMのWatson AssistantによるChat BOT作成のために作成したWatson Assistantでユーザーまたは部門を追加するチャットボットを作成するをServiceNowのOutbound REST Messageを使用して起動する。

前提条件

IBM Watson Assistant APIを使用するには、事前にIBM Bluemixへのアカウント登録と、Watson AssistantのLight版(無料版)の利用登録と、AssistantのWorkspaceの作成が必要だ。
AssistantのWorkspaceの作成方法については、Watson Assistantでユーザーまたは部門を追加するチャットボットを作成するが参考になる。

バージョン

ServiceNow : KINGSTONE
Watson Assistant API : 2018-02-16

手順

ServiceNowでRest Messageの作成

ServiceNowのStudioのCreate Applicatio Fileで「Outbound Integrations」の「REST Message」を選択してCreateをクリックする。

Nameは任意の名前を入力し、End PointにはWatson Assistant APIにアクセスする下記のURLを入力する。

https://gateway.watsonplatform.net/assistant/api/v1/workspaces/a2bab5cd-970a-4d89-8a94-c6c186332362/message?version=2018-02-16

なお、workspaces/より右側の文字列は、Watson Assistantで作成したWorkspaceの実際のworkspace-idに置き換える必要がある。

また、最後のversion=2018-02-16の部分は、Assistant APIのバージョンを指定している。これにより、2018-02-16の日付に最も近いバージョンのAPIが起動することになる。

AuthenticationタブのAuthentication typeでBasic(BASIC認証)を選択し、Basic auth profileは、虫眼鏡アイコンをクリックし、Assistant APIを起動するための、ユーザー名とパスワードを設定する。(IBM Bluemixの認証用ではなく、Assistant APIにアクセスするためのユーザー名とパスワードを使用する)
auth.png

HTTP Requestタブでは、HTTP Headerに「Content-Type = application/json」を追加する。

contenttype.png

次にHTTP Methodsを追加する。

httpmethods.png

Variable Substitionsにmessageとcontextのパラメーターを追加し、初期値を設定しておく。(これはテスト起動の時に使用される)

パラメータ名 初期値
message こんにちは
context {}

variable substitutions.png

次に、HTTP RequestタブのcontentにPOST送信するJSONメッセージを設定する。

httpqueryparameters.png

{
"input":{
  "text":"${message}"
},
"context":${context}

}

以上により設定は完了だ。

動作確認

HTTP Method設定画面の中段付近のRelated Linksの「Test」をクリックする。

test.png

設定されたEndpoint、Basic認証情報、Content-type、content、Variable Substitionsの初期設定にしたがって、APIが起動され結果が表示される。

assistantresponse.png

status=200になっていたら起動成功だ。
Responseには下記のようにWatson Assistantの応答内容が下記の通りのJSONメッセージとして返ってきている。

{
    "intents": [
        {
            "intent": "greetings",
            "confidence": 1
        }
    ],
    "entities": [],
    "input": {
        "text": "こんにちは"
    },
    "output": {
        "text": [
            "こんにちは。こちらサポートデスクです。用件をどうぞ!"
        ],
        "nodes_visited": [
            "node_4_1524918503718"
        ],
        "log_messages": []
    },
    "context": {
        "conversation_id": "dea8cf19-5f81-43e3-a177-f773dd58fd44",
        "system": {
            "dialog_stack": [
                {
                    "dialog_node": "root"
                }
            ],
            "dialog_turn_counter": 1,
            "dialog_request_counter": 1,
            "_node_output_map": {
                "node_4_1524918503718": [
                    0
                ]
            },
            "branch_exited": true,
            "branch_exited_reason": "completed"
        }
    }
}
sukkyxp
アラフィフ現役プログラマー。 仕事ではJavaとC#を主に使用。 現在は会社に所属。(以前は個人で受託開発) 趣味:プログラム、読書、中国語読書 現在読んでいる本は「穆斯林的葬礼」 一時期は金庸の武侠もの小説に嵌まっていました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした