カスタムルールの追加 仕様
リクエストのparams/context以下にsample[0-999]を含めることで、APIにカスタムルールを追加し、APIのレスポンスをカスタマイズすることができます。
例えば、「テレビが欲しい」という入力に対して「METHOD:shopping、PARAM_QUERY:テレビ」のように独自の応答ドメインや応答パラメータを含んだレスポンスを返却させることができるようになります。
使い方はカスタムルールを追加してAPIのレスポンスを変えるも参考にしてください。
仕様に登場する用語
用語 | 説明 |
---|---|
入力テキスト | APIに入力として与えるテキスト。例 : 今日の天気 |
応答ドメイン | 入力テキストの意図に相当する情報。APIの出力でいうMETHOD |
入力テキストパターン | APIのレスポンスをカスタマイズしたい入力テキストのパターン。正規表現に近い記法が可能。詳細は後述 |
ルール | APIへのリクエストに与える、応答ドメインと入力テキストパターンのペア |
仕様
共通
sample0, sample1, ..., sample999までの、最大1000個のルールを追加可能。
- 「sample0=<応答ドメイン>,<入力テキストパターン> 」のようにリクエストに含めると、<入力テキストパターン>に該当する入力テキストのAPIの応答ドメインを<応答ドメイン>に変更できる
- sample0, sample2, sample3のように順番がとんだ場合、とんだ数字以降のルールは無視される(この例だとsample2とsample3)
- 0未満、1000以上の数字のルールは無視される
- 数字が小さいルールが優先される
- 応答ドメインと入力テキストパターンは合計で1024byte未満でなければいけない
- ルールは正規化後の発話(VAR_INTEXT_NORMALIZEDの値)に対して適用される
例えば、「sample0=hello,こんにちは」は「こんにちは」などにマッチし「METHOD:hello」(と共通で返されるいくつかのパラメータ)を返す。
応答ドメイン
<応答ドメイン>には英数字のみを利用できる。
入力テキストパターン
入力テキストパターンには、正規表現に似た記法を使用できる。記法 | 説明 | 例 | 備考 |
---|---|---|---|
^ | 文字列の先頭にマッチする | 「^京都」は「京都」にはマッチするが「東京都」にはマッチしない | |
$ | 文字列の末尾にマッチする | 「東京$」は「東京」にはマッチするが「東京都」にはマッチしない | |
. | 任意の1文字にマッチする | 「こんにち.」は「こんにちは」や「こんにちわ」などにマッチする | |
? | 直前の表現に作用し、直前の表現を0回か1回繰り返した表現にマッチする | 「青ヶ?島」は「青島」もしくは「青ヶ島」にマッチする | ? の直前は、. か通常の文字か { }のみ受け付けます |
* | 直前の表現に作用し、直前の表現を0回以上繰り返した表現にマッチする | 「すも*」は「す」や「すも」「すもももももも」などにマッチする | *の直前は、.か通常の文字のみ受け付けます |
+ | 直前の表現に作用し、直前の表現を1回以上繰り返した表現にマッチする | 「すも+」は「すも」や「すもも」「すもももももも」などにマッチする | +の直前は、.か通常の文字のみ受け付けます。 |
(?<name>value) | 入力テキスト中のvalueを、PARAM_<name>=valueという形で応答に含める。※nameは小文字で記載してください。 | 「(?<place>大阪)」 は 「PARAM_PLACE=大阪」を出力する | 正規表現の(...)と異なる部分があるため、キャプチャ用途のみに用いてください。 |
{value1|value2|...|valueN} | value1, value2, ..., valueNのいずれかにマッチする | 「{東京|京都}」は「東京」や「京都」にマッチする | 正規表現の{}と異なる部分がいくつかあります。
|
上記の記法は組み合わせて使える。例えば、
- 「(?<PLACE>.+)の地図」は、「紀尾井町の地図」や「大阪の地図」などにマッチし、それぞれPARAM_PLACE=紀尾井町、PARAM_PLACE=大阪 を返す
- 「(?<PLACE>{大阪|京都})の地図」は、「大阪の地図」や「京都の地図」などにマッチし、それぞれPARAM_PLACE=大阪、PARAM_PLACE=京都 を返す