web-dev-qa-db-ja.com

Googleアクションの未定義のパラメータ

GoogleアシスタントでテストしようとしているDialogFlowエージェントがあります。次のトレーニングフレーズを使用して、「セット名」と呼ばれる比較的単純なインテントを作成しました。

  • 私の名前はライアンです。
  • ビル
  • スティーブです
  • 名前の絆。ジェームズ・ボンド。

2つのパラメータがあります。

  • 必須:given-nameエンティティ@sys.given-nameおよび値は$given-nameとして保存されます
  • last-nameエンティティ@sys.last-nameおよび値$last-name

DialogFlowテストコンソールで問題なくテストできます。しかし、「Googleアシスタントでどのように機能するかを確認する」ことを試みたとき。次のエラーが発生します。

リクエストに無効な引数が含まれています。クエリパターン '名前のボンド。 $SchemaOrg_Person:given-name$SchemaOrg_Person:last-name。 '未定義のパラメーター 'last-name'が含まれています。

「ジェームズ・ボンド」のトレーニングフレーズを削除すれば、問題なく動作します。しかし、私はそれを含めたいと思います。私は何が間違っているのですか?

これは、問題の原因となっているインテントのスクリーンショットです。

troublesome intent

Googleアシスタントで試すためにクリックしているリンクは次のとおりです。

Open in Google Assistant

そして最後に、そのリンクをクリックすると画面の右下隅に表示されるエラーメッセージは次のとおりです。

Error message pop-up

9
Ryan

「Googleアシスタントでの動作を確認する」リンクをクリックしてアプリを本番環境に送信すると、突然これらのエラーメッセージがいくつか表示されました。

トレーニングフレーズのアポストロフィやハイフンなどの文字が問題を引き起こすようですそしてそのエラーメッセージを表示できます。

さらに、すべての言語、フレーズのすべてのページ、およびすべての意図をどれだけ見ても、どこにも見つからなかったトレーニングフレーズの変形について不平を言いました。 プロジェクトをエクスポートし、JSONファイルを検索して、問題のフレーズを最終的に見つけました。次に、フレーズをローカルで削除し、Dialogflowでインテントを削除して、Dialogflowにインポートして戻すことができます。(私の理解からJSON(UIのどこにもありません)にもいくつかのトレーニングフレーズの一部が添付されていたフォローアップインテントを台無しにしました。)

1
Roy Solberg

私は同じエラーに遭遇しました、そして最終的にそれは私が追加した追加の言語の問題であることがわかりました。

私が追加したデフォルトの「en」言語と「en-IN」がありました。問題は「en-IN」言語でのトレーニングフレーズにありました。私はそれを必要としなかったのでそれを取り除いて、それはうまくいきました。

そのため、エージェントで有効になっている言語の数と、トレーニングフレーズが適切に設定されているかどうかを確認してください。

0
Mittal Patel

インテントパラメータとカスタムエンティティを操作しているときに、これに遭遇しました。トレーニングフレーズでエンティティにタグを付けるときは、それらがインテントで設定したパラメータにリンクされていることを確認してください。

あなたの場合、トレーニングフレーズタグをタイプ@ sys.given-name:given-nameおよび@に変更します。 sys.last-name:last-nameでこの問題を修正できます。

0
Jordi

文からドットを削除してみてください。したがって、次のようになります。

"The name's Bond. James Bond"
0
XeaL Storm