CLOVA Chatbotの概要
    • PDF

    CLOVA Chatbotの概要

    • PDF

    記事の要約

    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_SIGNATURERequiredNAVERクラウドプラットフォームの CLOVA Chatbot Customで作成した Secret Key、リクエストボディと HMAC暗号化アルゴリズム(HmacSHA256)でリクエスト情報を暗号化し、Base64でエンコードした署名
  • Secret Keyの発行と確認: Secret Keyの発行および確認方法を参照
  • 署名(Signature)の作成: X-NCP-CHATBOT_SIGNATURE作成のサンプルコードを参照
  • Content-TypeRequiredリクエストデータのタイプ

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

    CLOVA Chatbot Custom API

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

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

    CLOVA Chatbot関連リソース

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


    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.