This commit is contained in:
Dina Berry 2018-06-30 15:59:45 -07:00 коммит произвёл GitHub
Родитель 702d506a40
Коммит c989bc534c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 151 добавлений и 1 удалений

Просмотреть файл

@ -16,7 +16,7 @@ Use the `Deploy to Azure` button to quickly create an Azure LUIS service. You ge
|[*Bot Integration sample - hotel finder](./bot-integration-samples/hotel-finder/) | ✔ | | ✔ ||||||
|[Bot Integration sample - HomeAutomation](./documentation-samples/tutorial-web-app-bot) | ✔ | | ✔ ||||||
|[Bot Integration sample - HomeAutomation & Application Insights](./documentation-samples/tutorial-web-app-bot-application-insights) | ✔ | | ✔ ||||||
|[Add an utterance to app model](./documentation-samples/authoring-api-samples/) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |||
|[Add an utterance to app model](./documentation-samples/authoring-api-samples/) | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |||
|[Send utterance to endpoint](./documentation-samples/endpoint-api-samples/) | ✔ | ![Docker](./media/docker-logo.png) | ![Docker](./media/docker-logo.png) | ✔ | ✔ | ✔ | ✔ ||✔|
|[Azure function to LUIS endpoint](./examples/azure-function-endpoint/) | ✔ |||||||||
|[Backup all apps in Subscription](./examples/backup/) | | |✔|||||||

Просмотреть файл

@ -0,0 +1,137 @@
package main
/*
build endpoint.go from command line
> go build add-utterance.go
add utterances from file, train, and get training status from command line
> add-utterance -authoringKey xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -region westus -appID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -version myversion -utteranceFile utterances.json
output
add example utterances requested
[
{
"text": "go lang 1",
"intentName": "None",
"entityLabels": []
}
,
{
"text": "go lang 2",
"intentName": "None",
"entityLabels": []
}
]
201
[{"value":{"ExampleId":72167429,"UtteranceText":"go lang 1"},"hasError":false},{"value":{"ExampleId":72167430,"UtteranceText":"go lang 2"},"hasError":false}]
training selected
202
{"statusId":9,"status":"Queued"}
training status selected
200
[{"modelId":"260e8f9d-d8db-4a2e-a318-a16b3e427be2","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"55cea269-ea12-4c77-9f84-537b6869dbc9","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"623d8fc8-eac2-4278-80f0-b305a1959fde","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"ca77c7a3-f12b-404c-90ac-a94273c57c05","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"6daa6a0c-f531-49cc-ad8a-219cf4e901ce","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"d188d7a4-4e9a-4630-8921-b10ba39aecb0","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"18ceb7f7-85a2-428e-adee-8214c3998dae","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"5ee7ab78-690d-4858-8609-92cb617efab6","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"b2c5d0a4-9737-4806-9ddc-86976902bfb4","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"fe84c388-b9c5-4a99-b655-ba6636129d5d","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"9a89df58-5a00-4ecd-9785-07aece1335a2","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"9604f47c-6ca3-484a-8d24-56c6691e5c57","details":{"statusId":3,"status":"InProgress","exampleCount":123}},{"modelId":"917ab408-32ae-4914-b3dc-88c61b064dbe","details":{"statusId":3,"status":"InProgress","exampleCount":123}}]
*/
import (
"fmt"
"flag"
"net/http"
"io/ioutil"
"log"
"bytes"
)
func httpRequest(httpVerb string, url string, authoringKey string, body string){
client := &http.Client{}
request, err := http.NewRequest(httpVerb, url, nil)
request.Header.Add("Ocp-Apim-Subscription-Key", authoringKey)
response, err := client.Do(request)
if err != nil {
log.Fatal(err)
} else {
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(" ", response.StatusCode)
fmt.Println(string(contents))
}
}
func main() {
var appID = flag.String("appID", "", "LUIS appID")
var authoringKey = flag.String("authoringKey", "", "LUIS authoring key")
var version = flag.String("version", "", "LUIS app version")
var region = flag.String("region", "", "LUIS app publish region")
var exampleUtterances = flag.String("utteranceFile", "utterances.json", "JSON file of utterances to train model")
var train = flag.Bool("train", true, "train the app")
var trainStatus = flag.Bool("status", true, "get training status")
flag.Parse()
if len(*exampleUtterances) != 0{
fmt.Println("add example utterances requested")
addUtterance(*authoringKey, *appID, *region, *version, *exampleUtterances)
}
if *train == true {
fmt.Println("training selected")
requestTraining(*authoringKey, *appID, *region, *version)
}
if *trainStatus == true {
fmt.Println("training status selected")
getTrainingStatus(*authoringKey, *appID, *region, *version)
}
}
func addUtterance(authoringKey string, appID string, region string, version string, fileOfLabeledExampleUtterances string){
exampleUtterancesAsBytes, err := ioutil.ReadFile(fileOfLabeledExampleUtterances) // just pass the file name
if err != nil {
fmt.Print(err)
}
fmt.Println(string(exampleUtterancesAsBytes))
var authoringUrl = fmt.Sprintf("https://%s.api.cognitive.microsoft.com/luis/api/v2.0/apps/%s/versions/%s/examples", region, appID, version)
client := &http.Client{}
request, err := http.NewRequest("POST", authoringUrl, bytes.NewBuffer(exampleUtterancesAsBytes))
request.Header.Add("Ocp-Apim-Subscription-Key", authoringKey)
response, err := client.Do(request)
if err != nil {
log.Fatal(err)
} else {
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(" ", response.StatusCode)
fmt.Println(string(contents))
}
}
func requestTraining(authoringKey string, appID string, region string, version string){
trainApp("POST", authoringKey, appID, region, version)
}
func getTrainingStatus(authoringKey string, appID string, region string, version string){
trainApp("GET", authoringKey, appID, region, version)
}
func trainApp(httpVerb string, authoringKey string, appID string, region string, version string){
var authoringUrl = fmt.Sprintf("https://%s.api.cognitive.microsoft.com/luis/api/v2.0/apps/%s/versions/%s/train", region, appID, version)
httpRequest(httpVerb,authoringUrl, authoringKey, "")
}

Просмотреть файл

@ -0,0 +1,13 @@
[
{
"text": "go lang 1",
"intentName": "None",
"entityLabels": []
}
,
{
"text": "go lang 2",
"intentName": "None",
"entityLabels": []
}
]