ホーム API/ツール API 自然対話

自然対話

    近年、多様なデバイスがネットワークにつながっていく中で、画面のないデバイスや手がふさがっている状況で使うデバイスでは音声入出力が重要になります。そのようなデバイスでの音声対話型サービスを容易に実現するために、NTTドコモでは自然対話プラットフォームを開発しております。 docomo Developer supportでは、自然対話プラットフォームの一部をご体験いただける「自然対話API」の提供を開始いたします。これにより、開発者は音声対話型サービスを自然言語処理技術の知識なしに開発することができます。

    自然対話API利用イメージ
    API
    基本情報
    提供 : REST
    利用条件 : あり※1

    ※1「ガイドライン(必読)」に記載の利用条件に予め同意していただく必要がございます。

    ご利用いただくためには「アカウント登録(無料)」が必要です。

    リファレンスを参照するAPI機能名を選択してください

    雑談対話


    • Webデータ等の大量のデータを利用して、さまざまな話題の雑談に応答します。

    リクエストURL

    https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue

    メソッド : POST
    文字コード : UTF-8

    リクエストヘッダ

    キー 必須 説明
    Content-Type 送信データのMIMEタイプは、下記を指定
    application/json;charset=UTF-8

    リクエストクエリパラメータ

    キー 必須 説明
    APIKEY APIにアクセスするアプリの認証に利用する

    リクエストボディ(JSON形式)

    キー 必須 説明
    language ”ja-JP”を指定
    botId ”Chatting”を指定
    appId ユーザ登録で取得したappId
    voiceText ユーザの発話を指定(200文字以下)
    ※[角括弧] <山括弧> の入力はできない
    clientData - クライアント情報
       option - オプション情報
    (下記の情報をclientDataとして送るためには、ClientData-optionの内部に記述する必要があります。下記の情報を記述する場合はoptionは必須です。
       nickname - ユーザのニックネームを指定(全角10文字(半角10文字)以下)
    nicknameY - ユーザのニックネームの読みを指定(全角20文字以下(カタカナのみ))
    sex - ユーザの性別は、下記のいずれかを指定
    男、女
    bloodtype - ユーザの血液型は、下記のいずれかを指定
    A、B、O、AB
    birthdateY - ユーザの誕生日(西暦)を指定(1~現在までのいずれかの整数(半角4文字以下))
    birthdateM - ユーザの誕生日(月)を指定(1~12までのいずれかの整数)
    birthdateD - ユーザの誕生日(日)を指定(1~31までのいずれかの整数)
    age - ユーザの年齢を指定(正の整数(半角3文字以下))
    constellations - ユーザの星座は、以下のいずれかを指定
    牡羊座、牡牛座、双子座、蟹座、獅子座、乙女座、天秤座、蠍座、射手座、山羊座、水瓶座、魚座
    place - ユーザの地域情報は、「場所リスト」に含まれるもののいずれかを指定
    mode - 対話のモードは、以下のいずれかを指定
    dialog(雑談対話 ※省略時はこちらとなります)
    srtr(しりとり)
    ※会話(しりとり)を継続する場合は、レスポンスボディのmodeの値を指定する
    t - キャラクタは、以下のいずれかを指定
    kansai:関西弁キャラ
    akachan:赤ちゃんキャラ
    指定なし:デフォルトキャラ
    appRecvTime アプリが最後に取得パラメータを受信した時刻
    {"appRecvTime":"YYYY-MM-DD hh:mm:ss"}
    appSendTime アプリが送信パラメータを送信した時刻
    {"appSendTime":"YYYY-MM-DD hh:mm:ss"}

    レスポンスヘッダ

    キー 必須 説明
    Content-Type 受信データのMIMEタイプは、下記を返却
    application/json

    レスポンスボディ(JSON形式)

    キー 必須 説明
    systemText システムからの返答一覧
       expression - システム発話
    utterance - 音声合成用テキスト
    設定なしの場合は、表示用テキストを音声合成する。
    command Base64 URLエンコーディングしたコマンド情報
       mode 対話のモードは、下記のいずれかを返却
    dialog
    srtr
    ※会話(しりとり)を継続する場合は、この値をリクエストボディのmodeに指定する。
    ※レスポンスから取得したmodeを送る場合は、要デコード
    dialogStatus 対話ステータス情報
       commandId 対話状態ID(タスクID+3ケタ)
    {"commandId":"NT001002002"}
    task タスク情報
       taskId タスクID
    {"taskId":"NT001002"}
    taskName - タスク名
    {"taskName":"Cancel navigation"}
    requiredSlot - 要求スロット情報
       slotId - スロットID
    {"slotId":"S000"}
    slotName - スロット名
    {"slotName":"default"}
    exValue - 外部入力値
    {"exValue":"0"}
    loopCount ループ回数
    {"loopCount":"0"}
    slotStatus - スロットステータス情報
       slotName - スロット名
    {"slotName":"default"}
    slotValue - スロット値
    {"slotValue":"default"}
    valueType - スロット値のタイプ
    {"valueType":"default"}
    updateFlag - 更新フラグ
    {"updateFlag":"1"} ※(0=更新なし, 1=新規入力, 2=更新)
    watchFlag - 監視フラグ
    {"watchFlag":"1"} ※(0=監視なし、1=監視あり)
    serverSendTime サーバが取得パラメータを送信した時刻
    {"serverSendTime":"YYYY-MM-DD hh:mm:ss"}

    リクエストサンプル

    POST https://api.apigw.smt.docomo.ne.jp/naturalChatting/v1/dialogue?APIKEY=xxxxxxxxxxxxx
    Content-Type: application/json
    {
      "language":"ja-JP",
      "botId":"Chatting",
      "appId":"E9163955-3E64-4b41-B5D8-746AA30E9B08",
      "voiceText":"こんにちは",
      "clientData":{
      "option":{
        "nickname":"光",
        "nicknameY":"ヒカリ",
        "sex":"女",
        "bloodtype":"B",
        "birthdateY":"1997",
        "birthdateM":"5",
        "birthdateD":"30",
        "age":"16",
        "constellations":"双子座",
        "place":"東京",
        "mode":"dialog"
        }
      },
      "appRecvTime":"2015-05-05 13:30:00",
      "appSendTime":"2015-05-05 13:31:00"
    }

    レスポンスサンプル

    Content-Type: application/json
    {
     "serverSendTime": "2018-02-09 10:58:20",
     "command": {
      "mode": "dialog"
     },
     "systemText": {
      "expression": "ぺろぺろ",
      "utterance": "ぺろぺろ"
     },
     "dialogStatus": {
      "loopCount": "0",
      "commandId": "00000000000",
      "task": {
       "taskId": "00000000"
      }
     }
    }

    場所リスト

    北海道

    稚内 旭川 留萌 網走 北見 紋別 根室 釧路 帯広 室蘭
    浦河 札幌 岩見沢 倶知安 函館 江差

    東北

    青森 弘前 深浦 むつ 八戸 秋田 横手 鷹巣 盛岡 二戸
    一関 宮古 大船渡 山形 米沢 酒田 新庄 仙台 古川 石巻
    白石 福島 郡山 白河 小名浜 相馬 若松 田島

    関東甲信越

    宇都宮 大田原 水戸 土浦 前橋 みなかみ さいたま 熊谷 秩父 東京
    大島 八丈島 父島 千葉 銚子 館山 横浜 小田原 甲府 河口湖
    長野 松本 諏訪 軽井沢 飯田 新潟 津川 長岡 湯沢 高田
    相川

    中部

    静岡 網代 石廊崎 三島 浜松 御前崎 富山 伏木 岐阜 高山
    名古屋 豊橋 福井 大野 敦賀 金沢 輪島

    関西

    大津 彦根 上野 四日市 尾鷲 京都 舞鶴 奈良 風屋
    和歌山 潮岬 大阪 神戸 姫路 洲本 豊岡

    中国・四国

    鳥取 米子 岡山 津山 松江 浜田 西郷 広島 福山
    庄原 下関 山口 柳井 高松 徳島 池田 日和佐 松山
    新居浜 宇和島 高知 室戸岬 清水

    九州・沖縄

    福岡 八幡 飯塚 久留米 佐賀 伊万里 長崎 佐世保 厳原 福江
    大分 中津 日田 佐伯 熊本 阿蘇乙姫 牛深 人吉 宮崎 油津
    延岡 都城 高千穂 鹿児島 阿久根 枕崎 鹿屋 種子島 名瀬 沖永良部
    那覇 名護 久米島 南大東島 宮古島 石垣島 与那国島

    その他

    海外

    HTTP ステータスコード一覧

    ステータスコード 内容
    200正常に応答を返却した場合
    400要求パラメータ不良の場合
    401認証エラーの場合
    500サーバ内で予期せぬエラーが発生した場合
    よくあるご質問
    APIなどの各サービスに関するよくある質問を掲載します。
    お問い合わせ
    「docomo Developer support」及び「作ろうスマートフォン/iモードコンテンツ」に関するお問い合わせです。よくあるご質問や技術ブログで解決しない場合は、お問い合わせください。