Диалоговое окно не возвращает полный результат запроса - PullRequest
0 голосов
/ 01 января 2019

Используя gRPC и C # SDK для потоковой передачи диалога обнаружение намерения в приложении ASP.NET Core, я иногда сталкиваюсь с ситуацией, когда я не получаю полный результат запроса.Я читал аналогичный вопрос SO с той же проблемой, но это было вызвано проблемой со звуком, я не думаю, что это мой случай, так как эта проблема проявляется только каждые 50 или около того вызовов.Я не могу легко воспроизвести проблему в консольном приложении, потому что всякий раз, когда я пытаюсь, я никогда не сталкиваюсь с ошибкой.Я включил регистрацию в своем приложении, которое предоставило некоторую помощь, но я также не получил никаких ошибок API на консоли GCP.

ПРИМЕЧАНИЕ. У всех моих намерений включен веб-крючок.Тем не менее, для запросов с этой ошибкой в ​​истории диалога нет журнала, так что, очевидно, и у моего webhook backend.Больше всего меня смущает то, что я получаю результат стенограммы (так что транскрипция работает), но я не получаю результат распознавания isFinal, когда сталкиваюсь с этой ошибкой.

Обычный ответ:

{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\" } }
{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\" } }
{ \"recognitionResult\": { \"messageType\": \"END_OF_SINGLE_UTTERANCE\" } }
{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\", \"isFinal\": true, \"confidence\": 0.891504765 } }
{ \"responseId\": \"...\", \"queryResult\": { \"queryText\": \"yeah\", \"parameters\": { }, \"allRequiredParamsPresent\": true, \"fulfillmentMessages\": [ { \"payload\": { ... } } ], \"intent\": { \"name\": \"...", \"displayName\": \"Yes_Intent\" }, \"intentDetectionConfidence\": 1, \"diagnosticInfo\": { \"webhook_latency_ms\": 100 }, \"languageCode\": \"en-au\" }, \"webhookStatus\": { \"message\": \"Webhook execution successful\" } }

Ошибка, вызывающая ответ:

{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\" } }
{ \"recognitionResult\": { \"messageType\": \"TRANSCRIPT\", \"transcript\": \"yeah\" } }
{ \"recognitionResult\": { \"messageType\": \"END_OF_SINGLE_UTTERANCE\" } }
{ \"queryResult\": { \"languageCode\": \"en-AU\" } }

Я не думаю, что это обязательно проблема с моей реализацией, потому что она работает идеально большую часть времени.Однако возможно ли это поведение из-за сетевой ошибки?Прерывание gRPC?

Я вложил два аудиофайла, первый - тот, который сработал, второй - тот, который не сработал.Они имеют одинаковое кодирование и звук одинакового качества / права на транскрипцию.

клип 1

клип 2

ОБНОВЛЕНИЕ

Я только что столкнулся с ошибкой снова, и она произошла, когда были сделаны два одновременных вызова с намерением обнаружения потоковой передачи.Итак, мой вопрос заключается в следующем: может ли один SessionsClient обрабатывать параллельные потоки ответов gRPC?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...