通过服务编排引擎进行连接
对于自助服务代理程序,您可以将服务编排引擎 (SOE) 整合到 IBM® Voice Gateway 环境中,从而能够使用该环境将自己的定制层添加到代理程序的行为。
服务编排引擎充当介于 Voice Gateway 与 IBM Watson™ Assistant 服务之间的代理,作用是使用第三方 API 来拦截和修改消息请求和响应。例如,您可以拦截消息并使用数据将响应个性化(例如,通过使用客户位置信息提供私人天气预报)。有关更多信息,请参阅通过服务编排引擎的 Conversation 流程。
要将服务编排引擎添加到 Voice Gateway 环境,请按以下部分中所述完成下列步骤:
- 创建服务编排引擎应用程序并将其部署到应用程序服务器。
- 将 Voice Gateway 配置为连接到服务编排引擎而非 Watson Assistant。
创建和设置服务编排引擎
服务编排引擎是一个单独应用程序,您可以将其部署到本地服务器或基于云的环境(例如 IBM Cloud)。该应用程序连接到 Watson Assistant,并且挂接在用于收集和分析对话的 API 及其他工具中。
要自行快速熟悉服务编排引擎,请尝试部署 sample.voice.gateway GitHub 存储库中的样本。soe 文件夹包含多种语言形式的服务编排引擎应用程序样本,例如 Java™、Node-RED 和 Python。每个样本具有详细指示信息来引导您完成设置过程步骤,包括:
- 设置先决条件,例如必需的 Watson 服务和服务器
- 配置服务器环境以将应用程序样本与 Watson 服务一起运行
- 将应用程序样本部署到所选环境
在开发自己的服务编排引擎应用程序时,请谨记以下注意事项:
- REST API 无状态:Watson Assistant 服务 REST API 保持无状态,意味着 Watson Assistant 不存储任何状态信息。在呼叫期间的每个 Watson Assistant 轮次中,所有数据都在
MessageRequest对象内的context对象上于 Voice Gateway、服务编排引擎与 Watson Assistant 之间逐字传递。可以将来自服务编排的 JSON 数据存储在此context对象内并根据需要将其来回传递。例如,在某个 Watson Assistant 轮次中,服务编排引擎可能会收集帐号,然后它可将其作为 JSON 回传到 Voice Gateway。Voice Gateway 将该帐号回传到服务编排引擎以供进一步使用,并且只要继续传递此帐号,数据就会在整个呼叫期间得以保留。 - 您自己选择 API:服务编排引擎的运作方式取决于与其集成的 API。对于服务编排引擎,您可能会整合记录系统 (SOR) 的 API 或者由第三方工具或服务公开的 REST API。
- 复杂性等同延迟:服务编排引擎执行的分析越复杂,整个事务所需的时间越长,从而可能对呼叫者造成明显延迟。
在 Voice Gateway 中配置服务编排引擎
由于服务编排引擎介于 Voice Gateway 与 Watson Assistant 之间,因此请将 Voice Gateway 配置为直接连接到服务编排引擎而非这些服务。服务编排引擎在与 Watson Assistant 相同的变量上进行配置,但是您不用配置工作空间标识。如果服务编排引擎配置为需要认证,请指定用于 HTTP 基本认证的用户名和密码。
| 环境变量(单租户) | JSON 属性(多租户) | 描述 |
|---|---|---|
WATSON_CONVERSATION_URL |
conversation.url |
服务编排引擎的精确 URL。 |
WATSON_CONVERSATION_USERNAME |
conversation.username |
服务编排引擎的明文用户名。仅当在 SOE 中启用认证时必需。 |
WATSON_CONVERSATION_PASSWORD |
conversation.password |
服务编排引擎的明文密码。仅当在 SOE 中启用认证时必需。 |
-
单租户环境:在 SIP Orchestrator 配置中,在环境变量上配置服务编排引擎。
-
对于 Docker 引擎部署,在
docker-compose.yml文件中定义环境变量。WATSON_CONVERSATION_URL=https://soe-example.net WATSON_CONVERSATION_USERNAME=adminuser WATSON_CONVERSATION_PASSWORD=XgUCZZItgZD0 -
要在 IBM Cloud Kubernetes Service 中部署到 Kubernetes,请在
deploy.json文件中vgw-sip-orchestrator容器的env对象内定义环境变量名称/值对。"env": [ ... { "name": "WATSON_CONVERSATION_URL", "value": "https://soe-example.net" }, { "name": "WATSON_CONVERSATION_USERNAME", "value": "adminuser" }, { "name": "WATSON_CONVERSATION_PASSWORD", "value": "XgUCZZItgZD0" }]
-
-
多租户 JSON 配置:在多租户 JSON 配置文件中,对于要连接到服务编排引擎的每个租户,请配置
conversation对象:... "conversation": { "url": "https://soe-example.net", "username": "adminuser", "password": "XgUCZZItgZD0" } ... - 动态配置:您可以动态配置在呼叫期间是连接到服务编排引擎还是连接到 Watson Assistant,方法是使用 Voice Gateway API 中的
vgwActSetConversationConfig操作标记。有关更多信息,请参阅动态配置 Watson 服务。