CLOVA Chatbotの概要

Prev Next

Classic/VPC環境で利用できます。

CLOVA Chatbotは、ユーザーからの質問の意図を把握して適切な返答をさまざまな形式で返す NAVERクラウドプラットフォームのサービスです。CLOVA Chatbot Custom APIは、CLOVA Chatbotビルダで設定したドメインの学習結果に基づいて質問返答機能の APIを RESTful形式で提供し、メッセンジャーチャンネルではなく、一般的なウェブ(Web)やアプリ(App)でチャットボットを実装する場合に適しています。
このガイドでは、Customチャンネルで CLOVA Chatbotにリクエスト(Request)を送る方法を説明します。

CLOVA Chatbot連携と開発プロセス

CLOVA Chatbotの Custom連携と開発プロセスを説明します。

連携プロセス

連携プロセスは次の通りです。

  1. CLOVA Chatbotビルダを利用して会話シナリオを作成します。
  2. 会話モデルをビルドしてデプロイします。
  3. CLOVA Chatbot Custom連携を設定します。
  4. API Gateway呼び出し URLを作成して Secret Keyを発行します。
  5. API Gateway Invoke URLでアプリケーションから APIを呼び出します。

開発プロセス

開発プロセスは次の通りです。

  1. API Gateway Invoke URLを確認します。
  2. リクエストヘッダで渡す認証キー作成のための署名を作成します。
    • CLOVA * Chatbot Customで作成した Secret Keyを利用
  3. 会話クエリをリクエストするためのレスポンスボディを作成します。
  4. API Gateway Invoke URLを使用してクエストします。

CLOVA Chatbotの共通設定

CLOVA Chatbot Custom APIで共通して使用されるリクエスト形式とレスポンス形式を説明します。

リクエスト

共通リクエスト形式を説明します。

API URL

リクエスト API URLは次の通りです。

CLOVA Chatbotビルダで作成された API Gatewayの固有の Invoke URL

リクエストヘッダ

ヘッダの説明は次の通りです。

フィールド 必須の有無 説明
X-NCP-CHATBOT_SIGNATURE Required NAVERクラウドプラットフォームの CLOVA Chatbot Customで作成した Secret Key、リクエストボディと HMAC暗号化アルゴリズム(HmacSHA256)でリクエスト情報を暗号化し、Base64でエンコードした署名
  • Secret Keyの発行と確認: Secret Keyの発行および確認方法を参照
  • 署名(Signature)の作成: X-NCP-CHATBOT_SIGNATURE作成のサンプルコードを参照
  • Content-Type Required リクエストデータのタイプ

    Secret Keyの発行および確認方法

    CLOVA Chatbotで Secret Keyを発行したり、確認する方法は次の通りです。

    1. NAVERクラウドプラットフォームコンソールで Services > CLOVA Chatbot > Domainメニューを順にクリックします。
    2. 希望するドメインの [ビルダを実行する] ボタンをクリックしてチャットボットビルダを実行します。
    3. チャットボットビルダで [チャットボット設定] ボタンをクリックします。
    4. チャットボット設定でメッセンジャー連携タブをクリックします。
    5. Custom[連携] ボタンをクリックします。
    6. Custom連携ポップアップで Secret Keyを発行したり確認します。

    X-NCP-CHATBOT_SIGNATURE作成のサンプルコード

    言語別X-NCP-CHATBOT_SIGNATURE設定のサンプルコードは次の通りです。

    • JavaScript

      const HmacSHA256 = require('crypto-js/hmac-sha256');
      const EncBase64 = require('crypto-js/enc-base64');
      signatureHeader = HmacSHA256(requestBodyString, secretKey).toString(EncBase64);
      
    • Java

      byte[] secretKeyBytes = secretKey.getBytes(StandardCharsets.UTF_8);
      SecretKeySpec secretKeySpec = new SecretKeySpec(secretKeyBytes, "HmacSHA256");
      Mac mac = Mac.getInstance("HmacSHA256");
      mac.init(secretKeySpec);
      byte[] signature = mac.doFinal(body.getBytes(StandardCharsets.UTF_8));
      String signatureHeader = Base64.getEncoder().encodeToString(signature);
      

    レスポンス

    共通レスポンス形式を説明します。

    レスポンスステータスコード

    レスポンスステータスコードの説明は次の通りです。

    参考

    NAVERクラウドプラットフォームで共通して使用されるレスポンスステータスコードの詳細は、Ncloud APIのレスポンスステータスコードをご参照ください。

    HTTPステータスコード コード メッセージ 説明
    500 - Internal server error サーバ内部エラー
    - 1000 version not support サポートしないバージョン
    - 1001 Not found domain code ドメインコードが見つからない
    - 1002 check url param is invalid 無効な URLパラメータ
    - 4000 request param invalid 無効なリクエストパラメータ
    - 4010 Unauthorized 認証できない
    - 4030 Forbidden to access アクセス権限なし
    - 4031 Signature validate failed 署名認証に失敗
    - 4032 timestamp exceeded time window(10000ms) 有効な時間範囲(10000ms)を超過
    - 5000 Unknown service error 不明なサービスエラー
    - 5010 Current protocol version not support this reply structure 現在のプロトコルバージョンはこのレスポンス構造をサポートしない
    - 5020 Calls to this api have exceeded the rate limit API呼び出し回数制限を超過

    CLOVA Chatbot Custom API

    CLOVA Chatbot Customサービスで提供する APIの説明は次の通りです。

    API 説明
    Open CLOVA Chatbotのウェルカムメッセージをオープン
    Send CLOVA Chatbotに質問を渡す
    getPersistentMenu 固定メニューリストを照会

    CLOVA Chatbot関連リソース

    CLOVA Chatbot Custom APIについてユーザーの理解に役立つよう、さまざまな関連リソースを提供しています。