75 строки
2.4 KiB
Plaintext
75 строки
2.4 KiB
Plaintext
---
|
|
title: "Introduction to AzureCognitive"
|
|
author: Hong Ooi
|
|
output: rmarkdown::html_vignette
|
|
vignette: >
|
|
%\VignetteIndexEntry{Introduction}
|
|
%\VignetteEngine{knitr::rmarkdown}
|
|
%\VignetteEncoding{utf8}
|
|
---
|
|
|
|
AzureCognitive is a package for working with [Azure Cognitive Services](https://azure.microsoft.com/en-us/services/cognitive-services/). Both a Resource Manager interface and a client interface to the Cognitive Services REST API are provided. The aim is to provide a foundation that can be built on by other packages that will support specific services (Computer Vision, LUIS, etc).
|
|
|
|
## Resource Manager interface
|
|
|
|
AzureCognitive extends the class framework provided by [AzureRMR](https://github.com/Azure/AzureRMR) to support Cognitive Services. You can create, retrieve, update, and delete cognitive service resources by calling the corresponding methods for a resource group.
|
|
|
|
```r
|
|
az <- AzureRMR::get_azure_login()
|
|
sub <- az$get_subscription("sub_id")
|
|
rg <- sub$get_resource_group("rgname")
|
|
|
|
# create a new Computer Vision service
|
|
rg$create_cognitive_service("myvisionservice",
|
|
service_type="ComputerVision", service_tier="S1")
|
|
|
|
# retrieve it
|
|
cogsvc <- rg$get_cognitive_service("myvisionservice")
|
|
|
|
# list subscription keys
|
|
cogsvc$list_keys()
|
|
```
|
|
|
|
## Client interface
|
|
|
|
AzureCognitive implements basic functionality for communicating with the Cognitive Services REST API. The main functions are `cognitive_endpoint`, which creates an object representing the endpoint, and `call_cognitive_endpoint` to perform the REST calls.
|
|
|
|
```r
|
|
# getting the endpoint from the resource object
|
|
endp <- cogsvc$get_endpoint()
|
|
|
|
# or standalone (must provide subscription key or other means of authentication)
|
|
endp <- cognitive_endpoint("https://myvisionservice.cognitiveservices.azure.com/",
|
|
service_type="ComputerVision", key="key")
|
|
|
|
# analyze an image
|
|
img_link <- "https://news.microsoft.com/uploads/2014/09/billg1_print.jpg"
|
|
call_cognitive_endpoint(endp,
|
|
operation="analyze",
|
|
body=list(url=img_link),
|
|
options=list(details="celebrities"),
|
|
http_verb="POST")
|
|
```
|
|
|
|
The latter call produces output like that below (truncated for brevity).
|
|
|
|
```
|
|
$categories
|
|
$categories[[1]]
|
|
$categories[[1]]$name
|
|
[1] "people_"
|
|
|
|
$categories[[1]]$score
|
|
[1] 0.953125
|
|
|
|
$categories[[1]]$detail
|
|
$categories[[1]]$detail$celebrities
|
|
$categories[[1]]$detail$celebrities[[1]]
|
|
$categories[[1]]$detail$celebrities[[1]]$name
|
|
[1] "Bill Gates"
|
|
|
|
$categories[[1]]$detail$celebrities[[1]]$confidence
|
|
[1] 0.9999552
|
|
```
|
|
|