web-dev-qa-db-ja.com

エラー「空の音声応答」

DialogFlowActions on Googleを接続しようとしたので、いくつか作成しましたインテント、サービスの接続、明示的および暗黙的な呼び出しなどの追加、ただしボットをシミュレーターで試したとき https://console.actions.google.com/project/ [projectId]/simulator / it常にエラーが発生します:

「Dialogflow応答をAppResponseに解析できませんでした。メッセージとともに例外がスローされました:空の音声応答

厳しいinputTypeでも「KEYBOARD」でした。

これまでに試したこと:

  • ダイアログフローで「このタブからの応答はGoogleアシスタント統合に送信されます」を設定しました(すべてのインテントに対して設定する必要がありますか?)が、スピーチの追加設定が表示されません。
  • 私は第二言語を無効にしました、最初に私はドイツ語でも意図を持っていました
  • また、フルフィルメントWebhook(API v1に実装され、次にv2にも実装されています)を変更せずにオフにしました
  • 同じユーザーのみがこのユーザーを見つけた https://productforums.google.com/forum/#!topic/dialogflow/xYjKlz31yW0;context-place=topicsearchin/dialogflow/Empty $ 20speech $ 20responseしかし解決策はありません。
  • インテントでフルフィルメントチェックボックスがオンになっている
  • ダイアログフローまたはWebデモの一番右にある「今すぐ試す」からボットを使用すると、ボットは正常に機能します https://bot.dialogflow.com/994dda8b-4849-4a8a-ab24-c0cd03b5f42

残念ながら、ドキュメントはこのエラーについて何も述べていません。何か案は?

ここにアクション統合のエラーのスクリーンショット: enter image description here

これは完全なデバッグ出力です:

{
  "agentToAssistantDebug": {
    "agentToAssistantJson": {
      "message": "Failed to parse Dialogflow response into AppResponse, exception thrown with message: Empty speech response",
      "apiResponse": {
        "id": "c12e1389-e887-49d4-b399-a332188ca946",
        "timestamp": "2018-01-27T03:55:30.931Z",
        "lang": "en-us",
        "result": {},
        "status": {
          "code": 200,
          "errorType": "success"
        },
        "sessionId": "1517025330705"
      }
    }
  },
  "assistantToAgentDebug": {
    "assistantToAgentJson": {
      "user": {
        "userId": "USER_ID",
        "locale": "en-US",
        "lastSeen": "2018-01-27T03:55:03Z"
      },
      "conversation": {
        "conversationId": "1517025330705",
        "type": "NEW"
      },
      "inputs": [
        {
          "intent": "actions.intent.MAIN",
          "rawInputs": [
            {
              "inputType": "KEYBOARD",
              "query": "Talk to Mica, the Hipster Cat Bot"
            }
          ]
        }
      ],
      "surface": {
        "capabilities": [
          {
            "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
          },
          {
            "name": "actions.capability.WEB_BROWSER"
          },
          {
            "name": "actions.capability.AUDIO_OUTPUT"
          },
          {
            "name": "actions.capability.SCREEN_OUTPUT"
          }
        ]
      },
      "isInSandbox": true,
      "availableSurfaces": [
        {
          "capabilities": [
            {
              "name": "actions.capability.AUDIO_OUTPUT"
            },
            {
              "name": "actions.capability.SCREEN_OUTPUT"
            }
          ]
        }
      ]
    },
    "curlCommand": "curl -v 'https://api.api.ai/api/integrations/google?token=TOKEN' -H 'Content-Type: application/json;charset=UTF-8' -H 'Google-Actions-API-Version: 2' -H 'Authorization: AUTH_TOKEN'  -A 'Mozilla/5.0 (compatible; Google-Cloud-Functions/2.1; +http://www.google.com/bot.html)' -X POST -d '{\"user\":{\"userId\":\"USER_ID\",\"locale\":\"en-US\",\"lastSeen\":\"2018-01-27T03:55:03Z\"},\"conversation\":{\"conversationId\":\"1517025330705\",\"type\":\"NEW\"},\"inputs\":[{\"intent\":\"actions.intent.MAIN\",\"rawInputs\":[{\"inputType\":\"KEYBOARD\",\"query\":\"Talk to Mica, the Hipster Cat Bot\"}]}],\"surface\":{\"capabilities\":[{\"name\":\"actions.capability.MEDIA_RESPONSE_AUDIO\"},{\"name\":\"actions.capability.WEB_BROWSER\"},{\"name\":\"actions.capability.AUDIO_OUTPUT\"},{\"name\":\"actions.capability.SCREEN_OUTPUT\"}]},\"isInSandbox\":true,\"availableSurfaces\":[{\"capabilities\":[{\"name\":\"actions.capability.AUDIO_OUTPUT\"},{\"name\":\"actions.capability.SCREEN_OUTPUT\"}]}]}'"
  },
  "sharedDebugInfo": [
    {
      "name": "ResponseValidation",
      "subDebugEntry": [
        {
          "debugInfo": "API Version 2: Failed to parse JSON response string with 'INVALID_ARGUMENT' error: \": Cannot find field.\".",
          "name": "UnparseableJsonResponse"
        }
      ]
    }
  ]
}

また、「debugInfo」は内部の問題のように聞こえます。

"APIバージョン2: 'INVALID_ARGUMENT'エラーでJSON応答文字列の解析に失敗しました:\":フィールドが見つかりません。\ "。"

ここに歓迎の意図のスクリーンショット: enter image description here

ps。何を考え出すのに私はエージを要した

「カスタムインテントのクエリパターンがありません」

意味-だから私はそれをここに文書化します:ダイアログフロー-インテント-「ユーザーは言う」クエリパラメーターとして設定したい場合、テキスト入力フィールドの単語をダブルクリックする必要があります-これはアクションで必要と思われますグーグル。

6
electrobabe

これは私に起こりました。 Dialogflowコンソールで追加したインテントでこれが発生し、アクションにWebhookフルフィルメントを使用している場合は、インテントのフルフィルメント設定を確認し、Webhookフルフィルメントスライダーがオンになっていることを確認します。明らかに、新しいインテントはWebhookのフルフィルメントを自動的に取得しません。各インテントを段階的に選択する必要があります(または、少なくともそれが私の経験でした)。

9
Femi

私もこの状況を経験しました。私の問題は、フルフィルメントindex.jsでそれを参照せずにSimpleResponseを使用したことでした。したがって、私にとっての解決策は、index.jsに次のようなSimpleResponseを追加することでした。

const {dialogflow, SimpleResponse} = require('actions-on-google');

したがって、jsファイルに含めずに依存関係を使用していないかどうかを常に確認してください。おそらく問題の最も一般的な原因ではありませんが、それが原因である可能性があります。

2
Jorgé Reyniers

コードラボチュートリアル( https://codelabs.developers.google.com/codelabs/actions-1/index.html#4 )を実行したときにこれが表示されましたが、意図に同じ名前を付けていませんWebhookスクリプトで参照される名前: Name IntentUse Intent

1
patrickbadley

もう1つの可能性は、次のようなテキスト応答がある場合(空のものでも)です。 Responses Box

次に、応答の横のゴミ箱をクリックして、Webhookを使用するためにクリアする必要があります。

0
patrickbadley

自分のWebHookを開発しようとしたときにこのエラーに遭遇しました。私は最初にNginxログを調べてコードが呼び出されたことを確認しました。その後、出力を古い例に基づいているため、JSON出力に問題があることを知りました。

APIのV1とV2の両方の(最新)ドキュメントは、次の場所にあります。 https://dialogflow.com/docs/fulfillment/how-it-works

Dialogflow webhook APIのv2に対するこの応答例は、このエラーを解決するのに役立ちました。

{
  "payload": {
    "google": {
      "expectUserResponse": true,
      "richResponse": {
        "items": [
          {
            "simpleResponse": {
              "textToSpeech": "this is a simple response"
            }
          }
        ]
      }
    }
  }
}

ソース: https://github.com/dialogflow/fulfillment-webhook-json/blob/master/responses/v2/ActionsOnGoogle/RichResponses/SimpleResponse.json

上にリンクされている公式のgithubリポジトリで他の例を見つけることができます。

0
Bertware