簡體   English   中英

從Java向Google Assistant發送請求

[英]Send requests to Google Assistant from Java

我們開發了帶有Dialogflow的Google Action,可響應用戶的個性化請求並執行一些需要一定時間(通常為幾分鍾)的任務。

我們的目標是使用Google Assistant的“廣播”功能宣布任務的結果,但是我們找不到將命令發送到Google Assistant的方法。

我們的代理會收到用戶的請求並啟動執行任務的Java應用程序,因此,該Java應用程序必須在完成該過程后與Google Assistant進行通信。

在Java應用程序中,我們可以使用Dialogflow RPC API與代理進行通信,但不能與Google Assistant進行通信。

是否可以通過Java應用程序將請求發送到Google Assistant? 或...由於我們可以與我們的Google Action Agent通信...我們如何通過該代理發送請求?

換句話說,代理可以與Google Assistant通信以使用其任何功能,例如“廣播...”嗎?

我們已經檢查了Google Assistant SDK作為替代方案,但對此感到困惑。

拜托,請原諒我英語不好。

任何幫助,將不勝感激。 謝謝!

“廣播”功能不適用於用戶開發的操作,並且在任何情況下都可能不是一個好的方案-如果用戶需要等待一段時間才能獲得答案,那么他們可能不希望在以下情況下突然宣布答案:他們沒想到。

動作通常是對話式的,而不是花一些時間來回答答案,這就是為什么履行必須執行多長時間的限制為5秒。 如果確實需要一段時間,則可以選擇以下幾種方法:

首先,您可以使用“助手”之外的其他方法來傳遞答案-可能使用Firebase Cloud Messaging之類的方法或向用戶發送電子郵件。

同樣,您也許可以使用通知。 在這種情況下,您的Java程序將在信息可用時通過助手將通知發送給用戶並存儲結果。 然后,用戶可以激活通知以繼續對話並獲得結果。 這樣做的好處是,答案可能不僅會脫口而出(可能是在用戶還沒有准備好時),但有一個缺點,就是說話者還不支持通知。

您還可以考慮使用“媒體響應”來設置一種定期輪詢新消息的方式。 在這種方案下,您將觸發Java程序,該程序將獲取結果,然后以實現服務器可以訪問的方式存儲該結果。 在對用戶的答復中說您正在處理結果時,您會在“媒體響應”中包含一段播放15秒的音頻。 音頻結束后,將再次調用您的操作,您可以檢查結果是否可用。 如果是這樣,則發送結果,然后繼續或結束對話。 否則,只需發送媒體回復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM