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
'が含まれています。
「ジェームズ・ボンド」のトレーニングフレーズを削除すれば、問題なく動作します。しかし、私はそれを含めたいと思います。私は何が間違っているのですか?
これは、問題の原因となっているインテントのスクリーンショットです。
Googleアシスタントで試すためにクリックしているリンクは次のとおりです。
そして最後に、そのリンクをクリックすると画面の右下隅に表示されるエラーメッセージは次のとおりです。
「Googleアシスタントでの動作を確認する」リンクをクリックしてアプリを本番環境に送信すると、突然これらのエラーメッセージがいくつか表示されました。
トレーニングフレーズのアポストロフィやハイフンなどの文字が問題を引き起こすようですそしてそのエラーメッセージを表示できます。
さらに、すべての言語、フレーズのすべてのページ、およびすべての意図をどれだけ見ても、どこにも見つからなかったトレーニングフレーズの変形について不平を言いました。 プロジェクトをエクスポートし、JSONファイルを検索して、問題のフレーズを最終的に見つけました。次に、フレーズをローカルで削除し、Dialogflowでインテントを削除して、Dialogflowにインポートして戻すことができます。(私の理解からJSON(UIのどこにもありません)にもいくつかのトレーニングフレーズの一部が添付されていたフォローアップインテントを台無しにしました。)
私は同じエラーに遭遇しました、そして最終的にそれは私が追加した追加の言語の問題であることがわかりました。
私が追加したデフォルトの「en」言語と「en-IN」がありました。問題は「en-IN」言語でのトレーニングフレーズにありました。私はそれを必要としなかったのでそれを取り除いて、それはうまくいきました。
そのため、エージェントで有効になっている言語の数と、トレーニングフレーズが適切に設定されているかどうかを確認してください。
インテントパラメータとカスタムエンティティを操作しているときに、これに遭遇しました。トレーニングフレーズでエンティティにタグを付けるときは、それらがインテントで設定したパラメータにリンクされていることを確認してください。
あなたの場合、トレーニングフレーズタグをタイプ@ sys.given-name:given-nameおよび@に変更します。 sys.last-name:last-nameでこの問題を修正できます。
文からドットを削除してみてください。したがって、次のようになります。
"The name's Bond. James Bond"