0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的アドカレAdvent Calendar 2024

Day 16

AWS Lexのサンプル発話で中括弧を使いたい場合の対処法

Posted at

はじめに

Lexのサンプル発話において、{}中括弧が含まれる文言を登録すると、ビルド時にスロット未定義のエラーが発生します。本記事ではこのような場合の対処法について記載します。

やりたい事

{}中括弧つきの文言をLexのサンプル発話に登録しておき、この文言が入力された際に対象のインテントが選択されるようにしたい。

事象

Lexのインテント > サンプル発話(Sample utterances) > に中括弧つきの下記の文言を入力 > Save intent でインテントを保存 > Build にエラー発生。

Sample utterances
{サンプルテキスト}
エラー文言
The slot name 'サンプルテキスト' in utterance '{サンプルテキスト}' for Intent 'test_intent' isn't valid. The slot name doesn't exist. Update the utterance or create a slot named 'サンプルテキスト' and try your request again.

image.png

結論

カスタムスロットに{}のつく文言を登録し、この type のスロットを対象のインテントで作成します。これをサンプル発話に登録することで対応できます。

環境

Lex V2

対処法

1.カスタムスロットの作成

1.Lexのカスタムスロットを新規作成

image.png

2.Value欄に {サンプルテキスト} を登録し保存

image.png

2.インテントの作成

2.1スロットの追加

1.「Add slot」を選択

image.png

2.作成したカスタムスロットタイプを選択

事前に作成しておいたカスタムスロットの type を選択して他は任意の値でスロットを追加します。

image.png

2.2サンプル発話にスロットを追加

作成したスロットをサンプル発話に登録します。

image.png

2.3ビルド

インテントを保存しBuild ボタンを押下してビルドを実行。

3. 動作確認

ビルドが成功したらLexのTestタブからテスト入力してみます。
下記の文言を入力してみます。

{サンプルテキスト}

image.png

想定通りのインテントが選択されている事を確認できました。

結果
Intent test_intent is fulfilled

image.png

試しに別の文言を入力してみます。

ほげほげ
fugafuga

これらの文言では FallbackIntent が選択されたことを確認できました。

Intent FallbackIntent is fulfilled

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?