You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/bg/6-consumer/lessons/2-language-understanding/README.md

48 KiB

Разбиране на езика

Скица на урока

Скица от Nitya Narasimhan. Кликнете върху изображението за по-голяма версия.

Тест преди лекцията

Тест преди лекцията

Въведение

В последния урок преобразувахте реч в текст. За да може това да се използва за програмиране на интелигентен таймер, вашият код трябва да разбира казаното. Може да предположите, че потребителят ще използва фиксирана фраза, като например "Настрой 3-минутен таймер", и да анализирате израза, за да разберете колко дълго трябва да бъде таймерът, но това не е много удобно за потребителя. Ако потребителят каже "Настрой таймер за 3 минути", вие или аз ще разберем какво има предвид, но вашият код няма да го разбере, защото ще очаква фиксирана фраза.

Тук идва разбирането на езика, използвайки AI модели за интерпретиране на текст и извличане на необходимите детайли. Например, моделът може да разбере както "Настрой 3-минутен таймер", така и "Настрой таймер за 3 минути", че е необходим таймер за 3 минути.

В този урок ще научите за модели за разбиране на езика, как да ги създавате, обучавате и използвате във вашия код.

В този урок ще разгледаме:

Разбиране на езика

Хората използват езика за комуникация от стотици хиляди години. Ние общуваме с думи, звуци или действия и разбираме казаното, както значението на думите, звуците или действията, така и техния контекст. Разбираме искреност и сарказъм, което позволява едни и същи думи да означават различни неща в зависимост от тона на гласа.

Помислете за някои от разговорите, които сте водили наскоро. Колко от тях биха били трудни за компютър да разбере, защото изискват контекст?

Разбирането на езика, наричано също естествено езиково разбиране, е част от областта на изкуствения интелект, наречена обработка на естествен език (или NLP), и се занимава с четене с разбиране, опитвайки се да разбере детайлите на думите или изреченията. Ако използвате гласов асистент като Alexa или Siri, вие вече сте използвали услуги за разбиране на езика. Това са AI услугите, които превръщат "Alexa, пусни последния албум на Taylor Swift" в танцуване на дъщеря ми в хола на любимите ѝ песни.

💁 Компютрите, въпреки всички свои постижения, все още имат дълъг път, за да разберат наистина текста. Когато говорим за разбиране на езика от компютри, нямаме предвид нещо толкова напреднало, колкото човешката комуникация, а по-скоро извличане на ключови детайли от няколко думи.

Като хора, ние разбираме езика без да се замисляме. Ако помоля друг човек да "пусне последния албум на Taylor Swift", той инстинктивно ще разбере какво имам предвид. За компютър това е по-трудно. Той трябва да вземе думите, преобразувани от реч в текст, и да извлече следната информация:

  • Трябва да се пусне музика
  • Музиката е на изпълнителя Taylor Swift
  • Конкретната музика е цял албум с множество песни в ред
  • Taylor Swift има много албуми, така че те трябва да бъдат сортирани хронологично и най-новият е този, който се изисква

Помислете за други изречения, които сте казали, когато сте правили заявки, като например поръчване на кафе или молба към член на семейството да ви подаде нещо. Опитайте се да ги разбиете на части от информация, които компютърът би трябвало да извлече, за да разбере изречението.

Моделите за разбиране на езика са AI модели, които са обучени да извличат определени детайли от езика и след това се обучават за конкретни задачи чрез трансферно обучение, по същия начин, по който сте обучавали модел за персонализирано разпознаване на изображения с малък набор от изображения. Можете да вземете модел и да го обучите с текста, който искате да разбере.

Създаване на модел за разбиране на езика

Логото на LUIS

Можете да създавате модели за разбиране на езика, използвайки LUIS, услуга за разбиране на езика от Microsoft, която е част от Cognitive Services.

Задача - създаване на ресурс за авторство

За да използвате LUIS, трябва да създадете ресурс за авторство.

  1. Използвайте следната команда, за да създадете ресурс за авторство в групата ресурси smart-timer:

    az cognitiveservices account create --name smart-timer-luis-authoring \
                                        --resource-group smart-timer \
                                        --kind LUIS.Authoring \
                                        --sku F0 \
                                        --yes \
                                        --location <location>
    

    Заменете <location> с местоположението, което сте използвали при създаването на групата ресурси.

    ⚠️ LUIS не е наличен във всички региони, така че ако получите следната грешка:

    InvalidApiSetId: The account type 'LUIS.Authoring' is either invalid or unavailable in given region.
    

    изберете различен регион.

    Това ще създаде безплатен ресурс за авторство на LUIS.

Задача - създаване на приложение за разбиране на езика

  1. Отворете портала LUIS на luis.ai в браузъра си и влезте със същия акаунт, който използвате за Azure.

  2. Следвайте инструкциите в диалога, за да изберете вашия Azure абонамент, след което изберете ресурса smart-timer-luis-authoring, който току-що създадохте.

  3. От списъка Conversation apps изберете бутона New app, за да създадете ново приложение. Назовете новото приложение smart-timer и задайте Culture на вашия език.

    💁 Има поле за ресурс за предсказване. Можете да създадете втори ресурс само за предсказване, но безплатният ресурс за авторство позволява 1,000 предсказания на месец, което би трябвало да е достатъчно за разработка, така че можете да оставите това поле празно.

  4. Прочетете ръководството, което се появява след създаването на приложението, за да разберете стъпките, които трябва да предприемете, за да обучите модела за разбиране на езика. Затворете ръководството, когато сте готови.

Интенции и обекти

Разбирането на езика се основава на интенции и обекти. Интенциите са това, което думите целят да изразят, например пускане на музика, настройване на таймер или поръчване на храна. Обектите са това, към което се отнася интенцията, като албум, продължителност на таймера или вид храна. Всяко изречение, което моделът интерпретира, трябва да има поне една интенция и, по желание, един или повече обекти.

Няколко примера:

Изречение Интенция Обекти
"Пусни последния албум на Taylor Swift" пускане на музика последния албум на Taylor Swift
"Настрой 3-минутен таймер" настрой таймер 3 минути
"Отмени моя таймер" отмяна на таймер Няма
"Поръчай 3 големи пици с ананас и една салата Цезар" поръчка на храна 3 големи пици с ананас, салата Цезар

С изреченията, които обмислихте по-рано, каква би била интенцията и обектите в тях?

За да обучите LUIS, първо задавате обектите. Те могат да бъдат фиксиран списък от термини или да се научат от текста. Например, можете да предоставите фиксиран списък от храни в менюто си с вариации (или синоними) на всяка дума, като патладжан и баклажан като вариации на баклажан. LUIS също има предварително изградени обекти, които могат да се използват, като числа и местоположения.

За настройване на таймер можете да имате един обект, използващ предварително изградени обекти за числа за времето, и друг за единиците, като минути и секунди. Всяка единица би имала множество вариации, за да покрие единствено и множествено число - като минута и минути.

След като обектите са дефинирани, създавате интенции. Те се научават от модела въз основа на примерни изречения, които предоставяте (известни като изказвания). Например, за интенция настрой таймер, можете да предоставите следните изречения:

  • настрой 1-секунден таймер
  • настрой таймер за 1 минута и 12 секунди
  • настрой таймер за 3 минути
  • настрой 9-минутен и 30-секунден таймер

След това казвате на LUIS кои части от тези изречения съответстват на обектите:

Изречението "настрой таймер за 1 минута и 12 секунди", разделено на обекти

Изречението настрой таймер за 1 минута и 12 секунди има интенция настрой таймер. То също има 2 обекта с 2 стойности всеки:

време единица
1 минута 1 минута
12 секунди 12 секунда

За да обучите добър модел, ви е необходим набор от различни примерни изречения, които да покриват многото начини, по които някой може да поиска едно и също нещо.

💁 Както при всеки AI модел, колкото повече и по-точни данни използвате за обучение, толкова по-добър ще бъде моделът.

Помислете за различните начини, по които може да поискате едно и също нещо и да очаквате човек да ви разбере.

Задача - добавяне на обекти към моделите за разбиране на езика

За таймера трябва да добавите 2 обекта - един за единицата време (минути или секунди) и един за броя минути или секунди.

Можете да намерите инструкции за използване на портала LUIS в Quickstart: Build your app in LUIS portal документация на Microsoft.

  1. От портала LUIS изберете таба Entities и добавете предварително изградения обект number, като изберете бутона Add prebuilt entity, след което изберете number от списъка.

  2. Създайте нов обект за единицата време, като използвате бутона Create. Назовете обекта time unit и задайте типа на List. Добавете стойности за минута и секунда към списъка Normalized values, добавяйки единствено и множествено число към списъка synonyms. Натиснете return след добавяне на всеки синоним, за да го добавите към списъка.

    Нормализирана стойност Синоними
    минута минута, минути
    секунда секунда, секунди

Задача - добавяне на интенции към моделите за разбиране на езика

  1. От таба Intents изберете бутона Create, за да създадете нова интенция. Назовете тази интенция set timer.

  2. В примерите въведете различни начини за настройване на таймер, използвайки както минути, секунди, така и комбинация от двете. Примерите могат да бъдат:

    • настрой 1-секунден таймер
    • настрой 4-минутен таймер
    • настрой четириминутен и шестсекунден таймер
    • настрой 9-минутен и 30-секунден таймер
    • настрой таймер за 1 минута и 12 секунди
    • настрой таймер за 3 минути
    • настрой таймер за 3 минути и 1 секунда
    • настрой таймер за три минути и една секунда
    • настрой таймер за 1 минута и 1 секунда
    • настрой таймер за 30 секунди
    • настрой таймер за 1 секунда

    Смесете числа като думи и цифри, за да може моделът да се научи да обработва и двете.

  3. Докато въвеждате всеки пример, LUIS ще започне да разпознава обекти и ще ги подчертава и етикетира.

    Примерите с подчертани числа и единици време от LUIS

Задача - обучение и тестване на модела

  1. След като обектите и интенциите са конфигурирани, можете да обучите модела, като използвате бутона Train в горното меню. Изберете този бутон и моделът ще се обучи за няколко секунди. Бутонът ще бъде неактивен по време на обучението и ще се активира отново, когато приключи.

  2. Изберете бутона Test от горното меню, за да тествате модела за разбиране на езика. Въведете текст като настрой таймер за 5 минути и 4 секунди и натиснете return. Изречението ще се появи в поле под текстовото поле, в което сте го въвели, а под него ще се покаже топ интенцията или интенцията, която е разпозната с най-висока вероятност. Това трябва да бъде set timer. Името на интенцията ще бъде последвано от вероятността, че разпознатата интенция е правилната.

  3. Изберете опцията Inspect, за да видите разбивка на резултатите. Ще видите топ интенцията с нейната процентна вероятност, заедно със списъци на разпознатите обекти.

  4. Затворете панела Test, когато приключите с тестването.

Задача - публикуване на модела

За да използвате този модел в кода, трябва да го публикувате. При публикуване от LUIS можете да публикувате или в тестова среда за тестване, или в продукционна среда за пълно издание. В този урок тестовата среда е достатъчна.

  1. От портала LUIS изберете бутона Publish от горното меню.

  2. Уверете се, че е избрана Staging slot, след което изберете Done. Ще видите известие, когато приложението е публикувано.

  3. Можете да тествате това, използвайки curl. За да създадете командата curl, ще ви трябват три стойности - endpoint, идентификатор на приложението (App ID) и API ключ. Те могат да бъдат достъпни от таба MANAGE, който може да бъде избран от горното меню.

    1. От секцията Settings копирайте App ID.
  4. От секцията Azure Resources изберете Authoring Resource и копирайте Primary Key и Endpoint URL.

  5. Изпълнете следната команда curl в командния ред или терминала:

    curl "<endpoint url>/luis/prediction/v3.0/apps/<app id>/slots/staging/predict" \
          --request GET \
          --get \
          --data "subscription-key=<primary key>" \
          --data "verbose=false" \
          --data "show-all-intents=true" \
          --data-urlencode "query=<sentence>"
    

    Заменете <endpoint url> с Endpoint URL от секцията Azure Resources.

    Заменете <app id> с App ID от секцията Settings.

    Заменете <primary key> с Primary Key от секцията Azure Resources.

    Заменете <sentence> с изречението, което искате да тествате.

  6. Резултатът от този повик ще бъде JSON документ, който описва заявката, основното намерение и списък с обекти, разделени по тип.

    {
        "query": "set a timer for 45 minutes and 12 seconds",
        "prediction": {
            "topIntent": "set timer",
            "intents": {
                "set timer": {
                    "score": 0.97031575
                },
                "None": {
                    "score": 0.02205793
                }
            },
            "entities": {
                "number": [
                    45,
                    12
                ],
                "time-unit": [
                    [
                        "minute"
                    ],
                    [
                        "second"
                    ]
                ]
            }
        }
    }
    

    JSON-ът по-горе е резултат от заявка с set a timer for 45 minutes and 12 seconds:

    • set timer беше основното намерение с вероятност от 97%.
    • Бяха открити два обекта от тип number: 45 и 12.
    • Бяха открити два обекта от тип time-unit: minute и second.

Използване на модела за разбиране на езика

След като бъде публикуван, LUIS моделът може да бъде извикан от код. В предишни уроци използвахте IoT Hub за комуникация с облачни услуги, изпращане на телеметрия и слушане на команди. Това е много асинхронно - след като телеметрията бъде изпратена, кодът ви не чака отговор, и ако облачната услуга не работи, няма да знаете.

За интелигентен таймер искаме незабавен отговор, за да можем да уведомим потребителя, че таймерът е настроен, или да го предупредим, че облачните услуги не са достъпни. За целта IoT устройството ни ще извика уеб крайна точка директно, вместо да разчита на IoT Hub.

Вместо да извиквате LUIS директно от IoT устройството, можете да използвате безсървъсен код с различен тип тригер - HTTP тригер. Това позволява на вашето приложение за функции да слуша REST заявки и да отговаря на тях. Тази функция ще бъде REST крайна точка, която устройството ви може да извика.

💁 Въпреки че можете да извиквате LUIS директно от вашето IoT устройство, е по-добре да използвате нещо като безсървъсен код. По този начин, когато искате да промените LUIS приложението, което извиквате, например когато обучите по-добър модел или обучите модел на различен език, трябва да актуализирате само облачния код, а не да разгръщате код на потенциално хиляди или милиони IoT устройства.

Задача - създаване на приложение за безсървъсни функции

  1. Създайте Azure Functions приложение, наречено smart-timer-trigger, и го отворете във VS Code.

  2. Добавете HTTP тригер към това приложение, наречен speech-trigger, използвайки следната команда от терминала на VS Code:

    func new --name text-to-timer --template "HTTP trigger"
    

    Това ще създаде HTTP тригер, наречен text-to-timer.

  3. Тествайте HTTP тригера, като стартирате приложението за функции. Когато се стартира, ще видите крайна точка, изброена в изхода:

    Functions:
    
            text-to-timer: [GET,POST] http://localhost:7071/api/text-to-timer
    

    Тествайте това, като заредите http://localhost:7071/api/text-to-timer URL в браузъра си.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    

Задача - използване на модела за разбиране на езика

  1. SDK за LUIS е достъпен чрез Pip пакет. Добавете следния ред към файла requirements.txt, за да добавите зависимостта към този пакет:

    azure-cognitiveservices-language-luis
    
  2. Уверете се, че терминалът на VS Code има активирана виртуална среда, и изпълнете следната команда, за да инсталирате Pip пакетите:

    pip install -r requirements.txt
    

    💁 Ако получите грешки, може да се наложи да актуализирате pip със следната команда:

    pip install --upgrade pip
    
  3. Добавете нови записи към файла local.settings.json за вашия LUIS API Key, Endpoint URL и App ID от MANAGE таба на LUIS портала:

    "LUIS_KEY": "<primary key>",
    "LUIS_ENDPOINT_URL": "<endpoint url>",
    "LUIS_APP_ID": "<app id>"
    

    Заменете <endpoint url> с Endpoint URL от секцията Azure Resources на MANAGE таба. Това ще бъде https://<location>.api.cognitive.microsoft.com/.

    Заменете <app id> с App ID от секцията Settings на MANAGE таба.

    Заменете <primary key> с Primary Key от секцията Azure Resources на MANAGE таба.

  4. Добавете следните импорти към файла __init__.py:

    import json
    import os
    from azure.cognitiveservices.language.luis.runtime import LUISRuntimeClient
    from msrest.authentication import CognitiveServicesCredentials
    

    Това импортира някои системни библиотеки, както и библиотеките за взаимодействие с LUIS.

  5. Изтрийте съдържанието на метода main и добавете следния код:

    luis_key = os.environ['LUIS_KEY']
    endpoint_url = os.environ['LUIS_ENDPOINT_URL']
    app_id = os.environ['LUIS_APP_ID']
    
    credentials = CognitiveServicesCredentials(luis_key)
    client = LUISRuntimeClient(endpoint=endpoint_url, credentials=credentials)
    

    Това зарежда стойностите, които сте добавили към файла local.settings.json за вашето LUIS приложение, създава обект за идентификационни данни с вашия API ключ, след което създава LUIS клиентски обект за взаимодействие с вашето LUIS приложение.

  6. Този HTTP тригер ще бъде извикан, като текстът за разбиране се предава като JSON, със свойството text. Следният код извлича стойността от тялото на HTTP заявката и я записва в конзолата. Добавете този код към функцията main:

    req_body = req.get_json()
    text = req_body['text']
    logging.info(f'Request - {text}')
    
  7. Прогнозите се заявяват от LUIS чрез изпращане на заявка за прогноза - JSON документ, съдържащ текста за прогнозиране. Създайте това със следния код:

    prediction_request = { 'query' : text }
    
  8. Тази заявка може да бъде изпратена до LUIS, използвайки staging слота, на който вашето приложение е публикувано:

    prediction_response = client.prediction.get_slot_prediction(app_id, 'Staging', prediction_request)
    
  9. Отговорът на прогнозата съдържа основното намерение - намерението с най-висок резултат от прогнозата, заедно с обектите. Ако основното намерение е set timer, тогава обектите могат да бъдат прочетени, за да се получи необходимото време за таймера:

    if prediction_response.prediction.top_intent == 'set timer':
        numbers = prediction_response.prediction.entities['number']
        time_units = prediction_response.prediction.entities['time unit']
        total_seconds = 0
    

    Обектите от тип number ще бъдат масив от числа. Например, ако кажете "Set a four minute 17 second timer.", тогава масивът number ще съдържа 2 цели числа - 4 и 17.

    Обектите от тип time unit ще бъдат масив от масиви от низове, като всяка времева единица е масив от низове вътре в масива. Например, ако кажете "Set a four minute 17 second timer.", тогава масивът time unit ще съдържа 2 масива с единични стойности - ['minute'] и ['second'].

    JSON версията на тези обекти за "Set a four minute 17 second timer." е:

    {
        "number": [4, 17],
        "time unit": [
            ["minute"],
            ["second"]
        ]
    }
    

    Този код също така дефинира брояч за общото време за таймера в секунди. Това ще бъде попълнено със стойностите от обектите.

  10. Обектите не са свързани, но можем да направим някои предположения за тях. Те ще бъдат в реда, в който са изговорени, така че позицията в масива може да се използва, за да се определи кое число съответства на коя времева единица. Например:

    • "Set a 30 second timer" - това ще има едно число, 30, и една времева единица, second, така че единственото число ще съответства на единствената времева единица.
    • "Set a 2 minute and 30 second timer" - това ще има две числа, 2 и 30, и две времеви единици, minute и second, така че първото число ще бъде за първата времева единица (2 минути), а второто число за втората времева единица (30 секунди).

    Следният код получава броя на елементите в обектите от тип number и използва това, за да извлече първия елемент от всеки масив, след това втория и така нататък. Добавете това вътре в блока if.

    for i in range(0, len(numbers)):
        number = numbers[i]
        time_unit = time_units[i][0]
    

    За "Set a four minute 17 second timer." това ще се изпълни два пъти, давайки следните стойности:

    брой цикли number time_unit
    0 4 minute
    1 17 second
  11. Вътре в този цикъл използвайте числото и времевата единица, за да изчислите общото време за таймера, добавяйки 60 секунди за всяка минута и броя секунди за всяка секунда.

    if time_unit == 'minute':
        total_seconds += number * 60
    else:
        total_seconds += number
    
  12. Извън този цикъл през обектите, запишете общото време за таймера:

    logging.info(f'Timer required for {total_seconds} seconds')
    
  13. Броят секунди трябва да бъде върнат от функцията като HTTP отговор. В края на блока if добавете следното:

    payload = {
        'seconds': total_seconds
    }
    return func.HttpResponse(json.dumps(payload), status_code=200)
    

    Този код създава полезен товар, съдържащ общия брой секунди за таймера, конвертира го в JSON низ и го връща като HTTP резултат със статус код 200, което означава, че повикването е успешно.

  14. Накрая, извън блока if, обработете случая, когато намерението не е разпознато, като върнете код за грешка:

    return func.HttpResponse(status_code=404)
    

    404 е статус кодът за not found.

  15. Стартирайте приложението за функции и го тествайте с curl.

    curl --request POST 'http://localhost:7071/api/text-to-timer' \
         --header 'Content-Type: application/json' \
         --include \
         --data '{"text":"<text>"}'
    

    Заменете <text> с текста на вашата заявка, например set a 2 minutes 27 second timer.

    Ще видите следния изход от приложението за функции:

    Functions:
    
            text-to-timer: [GET,POST] http://localhost:7071/api/text-to-timer
    
    For detailed output, run func with --verbose flag.
    [2021-06-26T19:45:14.502Z] Worker process started and initialized.
    [2021-06-26T19:45:19.338Z] Host lock lease acquired by instance ID '000000000000000000000000951CAE4E'.
    [2021-06-26T19:45:52.059Z] Executing 'Functions.text-to-timer' (Reason='This function was programmatically called via the host APIs.', Id=f68bfb90-30e4-47a5-99da-126b66218e81)
    [2021-06-26T19:45:53.577Z] Timer required for 147 seconds
    [2021-06-26T19:45:53.746Z] Executed 'Functions.text-to-timer' (Succeeded, Id=f68bfb90-30e4-47a5-99da-126b66218e81, Duration=1750ms)
    

    Повикването към curl ще върне следното:

    HTTP/1.1 200 OK
    Date: Tue, 29 Jun 2021 01:14:11 GMT
    Content-Type: text/plain; charset=utf-8
    Server: Kestrel
    Transfer-Encoding: chunked
    
    {"seconds": 147}
    

    Броят секунди за таймера е в стойността "seconds".

💁 Можете да намерите този код в папката code/functions.

Задача - направете функцията си достъпна за вашето IoT устройство

  1. За да може вашето IoT устройство да извика вашата REST крайна точка, то ще трябва да знае URL адреса. Когато го достъпихте по-рано, използвахте localhost, което е пряк път за достъп до REST крайни точки на вашия локален компютър. За да позволите на вашето IoT устройство да получи достъп, трябва или да публикувате в облака, или да получите вашия IP адрес за локален достъп.

    ⚠️ Ако използвате Wio Terminal, е по-лесно да стартирате приложението за функции локално, тъй като ще има зависимост от библиотеки, което означава, че не можете да разположите приложението за функции по същия начин, както сте правили преди. Стартирайте приложението за функции локално и го достъпете чрез IP адреса на вашия компютър. Ако все пак искате да го разположите в облака, информация ще бъде предоставена в по-късен урок за начина, по който да направите това.

    • Публикувайте приложението за функции - следвайте инструкциите в предишни уроци, за да публикувате вашето приложение за функции в облака. След като бъде публикувано, URL адресът ще бъде https://<APP_NAME>.azurewebsites.net/api/text-to-timer, където <APP_NAME> ще бъде името на вашето приложение за функции. Уверете се, че сте публикували и локалните настройки.

      Когато работите с HTTP тригери, те са защитени по подразбиране с ключ за приложение за функции. За да получите този ключ, изпълнете следната команда:

      az functionapp keys list --resource-group smart-timer \
                               --name <APP_NAME>                               
      

      Копирайте стойността на записа default от секцията functionKeys.

      {
        "functionKeys": {
          "default": "sQO1LQaeK9N1qYD6SXeb/TctCmwQEkToLJU6Dw8TthNeUH8VA45hlA=="
        },
        "masterKey": "RSKOAIlyvvQEQt9dfpabJT018scaLpQu9p1poHIMCxx5LYrIQZyQ/g==",
        "systemKeys": {}
      }
      

      Този ключ трябва да бъде добавен като параметър на заявката към URL адреса, така че крайният URL адрес ще бъде https://<APP_NAME>.azurewebsites.net/api/text-to-timer?code=<FUNCTION_KEY>, където <APP_NAME> ще бъде името на вашето приложение за функции, и <FUNCTION_KEY> ще бъде вашият ключ за функция.

      💁 Можете да промените типа на авторизация на HTTP тригера, използвайки настройката authlevel в файла function.json. Можете да прочетете повече за това в секцията за конфигурация на документацията за HTTP тригери на Azure Functions на Microsoft docs.

    • Стартирайте приложението за функции локално и го достъпете чрез IP адреса - можете да получите IP адреса на вашия компютър в локалната мрежа и да го използвате, за да изградите URL адреса.

      Намерете вашия IP адрес:

      След като получите вашия IP адрес, ще можете да достъпите функцията на http://. <IP_ADDRESS> :7071/api/text-to-timer, където <IP_ADDRESS>ще бъде вашият IP адрес, напримерhttp://192.168.1.10:7071/api/text-to-timer`.

      💁 Имайте предвид, че това използва порт 7071, така че след IP адреса ще трябва да добавите :7071.

      💁 Това ще работи само ако вашето IoT устройство е в същата мрежа като вашия компютър.

  2. Тествайте крайната точка, като я достъпите с помощта на curl.


🚀 Предизвикателство

Има много начини да поискате едно и също нещо, като например настройване на таймер. Помислете за различни начини да направите това и ги използвайте като примери във вашето LUIS приложение. Тествайте ги, за да видите колко добре вашият модел може да се справи с множество начини за заявка на таймер.

Тест след лекцията

Тест след лекцията

Преглед и самостоятелно обучение

Задача

Отмени таймера


Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.