目前 MSFT 很多 Cognitive Service 在 China Azure 还没有落地,所以很多小伙伴只能使用国际版的 Azure 提供的 Cognitive 服务。但是这样存在两个问题,1. 使用体验,因为需要通过 Internet 进行调用,访问延迟及质量得不到保证。2. 有些 Cognitive 服务并不是所有 Global Azure 的 Region 都有落地,使得优化空间受限。今天咱们一起来分享一个优化结构的方案,通过将 API 网关前置放在 China Azure 的 Region 内,将 API 调用近源的引入的 Azure, 然后通过 Azure 内部网络来优化加持 Glocal Azure Cognitive 服务的质量。这里前置的 API 网关采用 Azure 上面的 API Management 服务来做,好处在于它是一款 PaaS 服务,快速简单易用且用户无需维护虚拟服务器。废话不说,撸袖子开干。
1. 创建 API Management
进入 China Azure Portal 主页,选择 API 管理服务
选择添加
输入 API 管理服务名称等必要信息
点击创建。
2. 配置 API 管理服务
点击步骤1创建的 API 管理服务,选择 API
创建 Blank API 空白 API
填入 API 信息并创建, 其中 Web service URL 为后端真实 Cognitive 服务的 API 地址,起获取可以参阅 Cognitive 相关手册了解获取方法,本文以 US Central 的 Custom Vision 服务为例
选择上一步创建的 API 并点击 Add operation,为 Operation 命名,并提供相应 Operation 的 URL,后续调用此 Operation 的完整 URL 就是上一步的 Web Service URL + operation URL。所以此处其实是将 Custom Vision 的 URL 进行了拆解,从中提取 Web Service URL 和 Operation URL,此步骤演示的 Custom Vision 的预测 URL。
设置 Http 请求 Header, 每一个 Cognitive 服务的 Restful API 接口对于 HTTP 请求的 Header 都是有明确要求的,可参阅 https://southcentralus.dev.cognitive.microsoft.com/docs/services/450e4ba4d72542e889d93fd7b8e960de/operations/5a6264bc40d86a0ef8b2c28f 。这里按照 Custom Vision 要求的 Haed 进行填写,这样当请求送往 API 管理服务时,这些 Header 将被自动添加到请求中。这里的 prediction-key 由 Custom Vision 配置页面获取。
设置 Request, 此部分在定义 HTTP 请求中 Body 的格式,当不满足格式的时候,请求将不被处理。本文以 Custom Vision 为例,可按照手册 https://southcentralus.dev.cognitive.microsoft.com/docs/services/450e4ba4d72542e889d93fd7b8e960de/operations/5a6264bc40d86a0ef8b2c28f 找到 Body 格式要求。
3. 配置产品
API 创建完毕后,其实并没有使能,在 API 管理服务中,需要将 API 放置在产品下才可以实现使能发布。
选择产品
选择 Unlimited 并选择添加 API
将前面创建的 Cognitive API 加入,至此所有跟 Custom Vision Predict API 在 API 管理服务上已经配置完成,此时可以开始测试试用
4. 测试 API 配置
选择 API,选择 Cognitive API,选择 Predict operation,选择 Test
填入修改测试请求信息,并发送
查看请求返回,当非 200 返回码时可以结合 Trace 进行问题定位。
5. 比较 API 管理服务方式和直接 Internet 调用 US Central Costom Vision 预测 API 的质量和体验。
通过脚本分别在上述场景模拟100次请求调用,比较请求完成时间。明显的发现从纵坐标延迟的表现和100次调用的抖动稳定性来看,API 管理服务的方式很好的提升了访问质量和体验。
如果小伙伴你之前也有类似的困惑,那就可以开始动手优化加持自己的 Azure Global Cognitive 服务啦。
参考资料 :
Custom Vision API Reference : https://southcentralus.dev.cognitive.microsoft.com/docs/services/450e4ba4d72542e889d93fd7b8e960de/operations/5a6264bc40d86a0ef8b2c290
API 管理服务手册:https://docs.azure.cn/zh-cn/api-management/api-management-key-concepts
原文地址:https://www.cnblogs.com/wekang/p/9114299.html