Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Il criterio ParseDialogflowRequest facilita l'integrazione di Dialogflow con Apigee. Per ulteriori informazioni, consulta la pagina Integrazione di Apigee con Contact Center AI.
Queste norme sono estendibili e il loro utilizzo potrebbe avere implicazioni in termini di costi o utilizzo, a seconda della licenza Apigee. Per informazioni sui tipi di policy e sulle implicazioni di utilizzo, consulta Tipi di policy.
Il criterio ParseDialogflowRequest elabora WebhookRequest da un agente Dialogflow prima di inviare i dati della richiesta ai tuoi sistemi di backend. Il criterio estrae i dati da WebhookRequest nelle variabili di flusso, che sono disponibili per tutta la durata della chiamata API. Puoi utilizzare le variabili nei successivi callout, ricerche o logica orchestrata. Questo criterio è particolarmente utile se vuoi che l'agente Dialogflow interagisca con i tuoi sistemi backend legacy. Prima di inviare i dati dell'agente ai sistemi di backend, puoi analizzarli e strutturarli in modo che possano essere utilizzati dai tuoi sistemi di backend.
Se sei un integratore di servizio di backend, non devi dedicare tempo a comprendere il formato di Dialogflow WebhookRequest. Il criterio ParseDialogflowRequest predefinito gestisce l'elaborazione dei dati della richiesta senza problemi.
Per accedere a WebhookRequest dell'agente Dialogflow in Apigee, devi impostare l'URL webhook (fulfillment) dell'agente su ProxyEndPoint che hai configurato in Apigee. ProxyEndPoint deve essere accessibile pubblicamente. Per saperne di più, consulta Requisiti del servizio webhook.
<ParseDialogflowRequest>
Definisce una policy ParseDialogflowRequest.
| Valore predefinito | N/D |
| Obbligatorio? | Obbligatorio |
| Tipo | Oggetto complesso |
| Elemento principale | N/D |
| Elementi secondari |
<DialogflowVersion><DisplayName><VariablePrefix> |
La tabella seguente fornisce una descrizione di alto livello degli elementi secondari specifici del criterio ParseDialogflowRequest:
| Elemento secondario | Obbligatorio? | Descrizione |
|---|---|---|
<VariablePrefix> |
Facoltativo | Specifica un prefisso personalizzato per le variabili di flusso. |
<DialogflowVersion> |
Facoltativo | Specifica la versione di Dialogflow. |
Esempio
L'esempio seguente mostra una richiesta webhook di esempio, la policy ParseDialogflowRequest corrispondente e le variabili di flusso generate dopo l'applicazione della policy:
Sintassi
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ParseDialogflowRequest continueOnError="false" enabled="true" name="POLICY_NAME"> <!-- The display name for this policy --> <DisplayName>DISPLAY_NAME</DisplayName> <!-- The optional prefix to be added to all variables created from the Dialogflow Webhook request. Note that all variables created from the WebhookRequest object will be within a container named "google.dialogflow" --> <VariablePrefix>CUSTOM_PREFIX</VariablePrefix> <!-- The version of Dialogflow for which this request policy is written up. This policy supports only the CX version. This element is optional and defaults to CX if unspecified --> <DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion> </ParseDialogflowRequest>
Richiesta webhook
L'esempio seguente mostra la richiesta webhook (in formato JSON) da un agente Dialogflow.
{
"fulfillmentInfo": {
"tag": "check-claim-status"
},
"sessionInfo": {
"session": "projects/apigee-test/locations/global/agents/ea45003d-3f5c-46ba-ac6b-f4c6dc8db707/sessions/5ea2e8-7c1-cf4-2cf-8e4d89e72",
"parameters": {
"claimId": "1234",
"policyId": "abcd"
}
},
"sentimentAnalysisResult": {
"score": -0.7,
"magnitude": 0.7
}
}Per visualizzare i vari campi che puoi configurare nella richiesta, consulta WebhookRequest.
Vai all'esempio successivo per visualizzare la configurazione del criterio ParseDialogflowRequest.
Policy ParseDialogflowRequest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ParseDialogflowRequest continueOnError="false" enabled="true" name="DialogflowRequest-InsuranceAgent"> <DisplayName>Insurance Agent Webhook Request Policy</DisplayName> <VariablePrefix>my-prefix</VariablePrefix> <DialogflowVersion>CX</DialogflowVersion> </ParseDialogflowRequest>
Vai all'esempio successivo per visualizzare le variabili di flusso create dalla policy.
Variabili di flusso
google.dialogflow.my-prefix.fulfillment.tag = "check-claim-status" google.dialogflow.my-prefix.session.id = "5ea2e8-7c1-cf4-2cf-8e4d89e72" google.dialogflow.my-prefix.session.project.id = "apigee-test" google.dialogflow.my-prefix.session.agent.id = "ea45003d-3f5c-46ba-ac6b-f4c6dc8db707" google.dialogflow.my-prefix.session.parameters.claimId = "1234" google.dialogflow.my-prefix.session.parameters.policyId = "abcd" google.dialogflow.my-prefix.sentimentAnalysisResultScore = -0.7 google.dialogflow.my-prefix.sentimentAnalysisResultMagnitude = 0.7
Tutte le variabili di flusso generate iniziano con google.dialogflow seguito dal prefisso (my-prefix) specificato nell'elemento <VariablePrefix>.
Questo elemento ha i seguenti attributi comuni a tutti i criteri:
| Attributo | Predefinito | Obbligatorio? | Descrizione |
|---|---|---|---|
name |
N/D | Obbligatorio |
Il nome interno del criterio. Il valore dell'attributo Se vuoi, utilizza l'elemento |
continueOnError |
falso | Facoltativo | Imposta su false per restituire un errore quando un criterio non va a buon fine. Questo è un comportamento previsto per la maggior parte dei criteri. Imposta su true per continuare l'esecuzione del flusso anche dopo un fallimento del criterio. Vedi anche:
|
enabled |
true | Facoltativo | Imposta su true per applicare il criterio. Imposta su false per disattivare il
criterio. Il criterio non verrà applicato anche se rimane collegato a un flusso. |
async |
falso | Ritirato | Questo attributo è stato ritirato. |
Riferimento all'elemento secondario
Questa sezione descrive gli elementi secondari di<ParseDialogflowRequest>.
<DisplayName>
除了用于 name 属性之外,还可用于在管理界面代理编辑器中使用其他更加自然的名称标记政策。
<DisplayName> 元素适用于所有政策。
| 默认值 | 不适用 |
| 是否必需? | 可选。如果省略 <DisplayName>,则会使用政策的 name 属性的值 |
| 类型 | 字符串 |
| 父元素 | <PolicyElement> |
| 子元素 | 无 |
<DisplayName> 元素使用以下语法:
语法
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
示例
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
<DisplayName> 元素没有属性或子元素。
<VariablePrefix>
Specifica un prefisso personalizzato per le variabili di flusso. Il valore specificato in questo elemento
viene aggiunto come prefisso a tutti i nomi delle variabili generati dal criterio ParseDialogflowRequest. Per impostazione predefinita, tutte le variabili
generate dai criteri hanno il prefisso google.dialogflow. Se hai specificato l'elemento VariablePrefix, il prefisso personalizzato viene aggiunto dopo google.dialogflow. Pertanto, il nome della variabile inizia con
google.dialogflow.CUSTOM_PREFIX.
Se non specifichi l'elemento VariablePrefix, il nome della variabile
è preceduto solo da google.dialogflow.
| Valore predefinito | N/D |
| Obbligatorio? | Facoltativo |
| Tipo | Stringa |
| Elemento principale |
<ParseDialogflowRequest>
|
| Elementi secondari | Nessuno |
<VariablePrefix> utilizza la seguente sintassi:
Sintassi
<VariablePrefix>VARIABLE_PREFIX</VariablePrefix>
Esempio
L'esempio seguente imposta VariablePrefix su my-prefix:
<VariablePrefix>my-custom-prefix</VariablePrefix>
In base a questa configurazione, tutti i nomi delle variabili iniziano con google.dialogflow.my-custom-prefix.
<DialogflowVersion>
Specifica la versione di Dialogflow. Il criterio ParseDialogflowRequest supporta solo la versione CX. Se non specifichi questo elemento nel criterio, la versione predefinita è CX.
| Valore predefinito | N/D |
| Obbligatorio? | Facoltativo |
| Tipo | Stringa |
| Elemento principale | N/D |
| Elementi secondari | Nessuno |
<DialogflowVersion> utilizza la seguente sintassi:
Sintassi
<DialogflowVersion>DIALOGFLOW_VERSION</DialogflowVersion>
Esempio
L'esempio seguente imposta DialogflowVersion su CX:
<DialogflowVersion>CX</DialogflowVersion>
Codici di errore
本部分介绍当此政策触发错误时返回的故障代码和错误消息,以及由 Apigee 设置的故障变量。在开发故障规则以处理故障时,请务必了解此信息。如需了解详情,请参阅您需要了解的有关政策错误的信息和处理故障。
运行时错误
政策执行时可能会发生这些错误。
| 故障代码 | HTTP 状态 | 原因 | 修复 |
|---|---|---|---|
steps.parsedialogflowrequest.InvalidSessionInfo |
500 |
如果 Dialogflow 请求中包含的 sessionInfo.session 字段无效,就会出现此错误。Webhook 可以使用此字段来识别会话。如需了解受支持的会话格式,请参阅 SessionInfo 类。 | |
steps.parsedialogflowrequest.MalformedInput |
500 |
当提供给此政策的 JSON 无效或格式错误时,就会出现此错误。 |
部署错误
在您部署包含此政策的代理时,可能会发生这些错误。
| 错误名称 | 原因 | 修复 |
|---|---|---|
UnsupportedOperation |
如果您在 DialogflowVersion 元素中指定了不受支持的 Dialogflow 版本,则会发生此错误。ParseDialogflowRequest 政策仅支持 CX 版本。 |
故障变量
只要政策中存在执行错误,Apigee 就会生成错误消息。您可以在错误响应中查看这些错误消息。很多时候,系统生成的错误消息可能与您的产品上下文无关。您可能希望根据错误类型自定义错误消息,以使消息更有意义。
如需自定义错误消息,可以使用故障规则或 RaiseFault 政策。如需了解故障规则与 RaiseFault 政策之间的差异,请参阅 FaultRule 与 RaiseFault 政策。您必须使用故障规则和 RaiseFault 政策中的 Condition 元素来检查条件。Apigee 提供每个政策独有的故障变量,并在政策触发运行时错误时设置故障变量的值。通过使用这些变量,您可以检查特定的错误情况并采取适当的操作。如需详细了解如何检查错误条件,请参阅构建条件。
下表介绍了特定于此政策的故障变量。
| 变量 | 其中 | 示例 |
|---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME 是故障名称,如运行时错误表中所列。故障名称是故障代码的最后一部分。 | fault.name Matches "UnresolvedVariable" |
ParseDialogflowRequest.POLICY_NAME.failed |
POLICY_NAME 是抛出故障的政策的用户指定名称。 | ParseDialogflowRequest.My-Parse-Dialogflow-Req.failed = true |
Argomenti correlati
Le implementazioni di riferimento dei proxy Apigee e dei flussi condivisi che mostrano l'utilizzo del criterio ParseDialogflowRequest sono disponibili su Apigee GitHub. Per saperne di più, consulta Implementazioni di riferimento dell'AI conversazionale.