Použití služeb Cognitive Services v PowerAppsUse Cognitive Services in PowerApps

Tento článek vám ukáže, jak vytvořit základní aplikaci, která analyzuje text pomocí rozhraní API pro analýzu textu ve službě Cognitive Services.This article shows you how to build a basic app that uses the Microsoft Cognitive Services Text Analytics API to analyze text. Ukážeme vám, jak rozhraní API pro analýzu textu nastavit a jak se k němu připojit pomocí konektoru pro analýzu textu.We'll show you how to set up the Text Analytics API, and connect to it with the Text Analytics connector. Nakonec vám ukážeme, jak vytvořit aplikaci, která toto rozhraní API volá.Then we'll show you how to create an app that calls the API.

Poznámka

Pokud s vytvářením aplikací v PowerApps začínáte, bylo by vhodné si před tímto článkem přečíst téma Vytvoření zcela nové aplikace.If you are new to building apps in PowerApps, we recommend reading Create an app from scratch before diving into this article.

Úvod ke službám Microsoft Cognitive ServicesIntroduction to Microsoft Cognitive Services

Microsoft Cognitive Services jsou sadou rozhraní API, sad SDK a služeb, díky které budou vaše aplikace inteligentnější, poutavější a dostupnější.Microsoft Cognitive Services are a set of APIs, SDKs, and services available to make your applications more intelligent, engaging, and discoverable. Tyto služby umožňují do aplikací jednoduše přidávat inteligentní funkce, jako je například rozpoznávání emocí a videa, rozpoznávání obrazu a řeči a pochopení řeči a jazyka.These services enable you to easily add intelligent features – such as emotion and video detection; facial, speech and vision recognition; and speech and language understanding – into your applications.

V tomto článku se zaměříme na pochopení jazyka, na práci s rozhraním API pro analýzu textu.We'll focus on "language understanding" for this article, working with the Text Analytics API. Toto rozhraní API umožňuje rozpoznat pocity, klíčové fráze, témata a jazyk z textu.This API enables you to detect sentiment, key phrases, topics, and language from your text. Pojďme začít tím, že si vyzkoušíme ukázku rozhraní API a zaregistrujeme se do verze Preview.Let's get started by trying out a demo of the API, then signing up for a preview version.

Zkouška rozhraní API pro analýzu textuTry out the Text Analytics API

Rozhraní API má online ukázku, ve které se můžete podívat, jak to funguje, a prohlédnout si formát JSON, který služba vrací.The API has an online demo – you can see how it works, and look at the JSON that the service returns.

  1. Přejděte na stránku Rozhraní API pro analýzu textu (Preview).Go to the Text Analytics API page.

  2. V části Prohlédnout v akci použijte ukázkový text nebo zadejte svůj vlastní.In the See it in action section, use the example text, or enter your own text. Pak klikněte nebo klepněte na Analyzovat.Then click or tap Analyze.

    Ukázka rozhraní API pro analýzu textu

  3. Stránka zobrazí formátované výsledky na kartě Analyzovaný text kartě a odezvu JSON na kartě JSON. JSON je způsob prezentace dat, v tomto případě jde o data vrácená rozhraním API pro analýzu textu.The page shows formatted results on the Analyzed text tab, and the JSON response on the JSON tab. JSON is a way to represent data - in this case, data returned by the Text Analytics API.

Registrace do rozhraní API pro analýzu textuSign up for the Text Analytics API

Rozhraní API je dostupné jako bezplatná verze Preview a je přidruženo předplatnému Azure.The API is available as a free preview, and it is associated with an Azure subscription. Rozhraní API můžete spravovat prostřednictvím webu Azure Portal.You manage the API through the Azure portal.

  1. Pokud předplatné Azure ještě nemáte, zaregistrujte si bezplatné předplatné.If you don't already have an Azure subscription, sign up for a free subscription.

  2. Přihlaste se k účtu Azure.Sign in to your Azure account.

  3. Na webu Azure Portal přejděte do okna pro vytvoření Cognitive Services.Go to the Create Cognitive Services blade in the Azure portal.

  4. Zadejte informace o rozhraní API pro analýzu textu jako na následujícím obrázku.Enter information for the Text Analytics API, like in the following image. Vyberte cenovou úroveň F0 (zdarma).Select the F0 (free) pricing tier.

    Vytvoření rozhraní API pro analýzu textu

  5. V levém dolním rohu klikněte nebo klepněte na Vytvořit.In the lower-left corner, click or tap Create.

  6. Na řídicím panelu klikněte nebo klepněte na rozhraní API, které jste právě vytvořili.On the Dashboard, click or tap the API that you just created.

    Řídicí panel Azure

  7. Klikněte nebo klepněte na Klíče.Click or tap Keys.

    Nabídka Azure

  8. Zkopírujte jeden z klíčů na pravé straně obrazovky.Copy one of the keys on the right of the screen. Tento klíč použijete později při vytváření připojení k rozhraní API.You use this key later when you create a connection to the API.

    Klíče rozhraní API

Vytvoření aplikaceBuild the app

Když teď máte rozhraní API pro analýzu textu vytvořené a spuštěné, připojíte se k němu z PowerApps a vytvoříte aplikaci, která bude toto rozhraní API volat.Now that you have the Text Analytics API up and running, you connect to it from PowerApps, and build an app that calls the API. Toto je aplikace s jednou obrazovkou, která poskytuje podobné funkce jako ukázka na stránce rozhraní API pro analýzu textu.This is a single screen app that provides functionality similar to the demo on the Text Analytics API page. Pusťme se do práce!Let's get started on building this!

Vytvoření aplikace a přidání připojeníCreate the app and add a connection

Nejprve vytvoříte prázdnou aplikaci pro telefon a přidáte připojení pomocí konektoru Analýza textu.First, you create a blank phone app and add a connection with the Text Analytics connector. Pokud potřebujete více informací o těchto úlohách, podívejte se na články Vytvoření zcela nové aplikace a Správa připojení v PowerApps.If you need more information about these tasks, see Create an app from scratch and Manage your connections in PowerApps.

  1. Na webu web.powerapps.com zvolte Začít od začátku > Ikona aplikace pro telefon (telefon) > Vytvořit tuto aplikaci.In web.powerapps.com, choose Start from blank > Phone app icon (phone) > Make this app.

    Začít od začátku

  2. V prostředním podokně aplikace PowerApps Studio zvolte Připojit k datům.In the middle pane of the PowerApps Studio, choose connect to data.

  3. Na panelu Data klikněte nebo klepněte na Nové připojení > Analýza textu.On the Data panel, click or tap New connection > Text Analytics.

  4. Klíč zkopírujte do pole Klíč účtu, potom klikněte nebo klepněte na Vytvořit.Copy your key into Account Key, then click or tap Create.

    Konektor pro analýzu textu

Přidání ovládacích prvků do aplikaceAdd controls to the app

Dalším krokem při vytváření aplikace je přidání všech ovládacích prvků.The next step in creating the app is to add all the controls. Při vytváření aplikací obvykle přidávám vzorce do ovládacích prvků průběžně, v tomto případě se ale zaměříme nejprve na ovládací prvky, několik vzorců pak přidáme v další části.Normally when I build apps, I add formulas to the controls as I go, but in this case we'll focus on the controls first, then add a few formulas in the next section. Následující obrázek zobrazuje aplikaci se všemi ovládacími prvky.The following image shows the app with all the controls.

Dokončená aplikace

Pro vytvoření této obrazovky použijte následující postup.Follow the steps below to create this screen. Pokud má ovládací prvek určený název, použije se tento název ve vzorci v další části.If a control name is specified, that name is used in a formula in the next section.

  1. Na kartě Domů klikněte nebo klepněte na Nová obrazovka a pak na Posouvatelná obrazovka.On the Home tab, click or tap New Screen, then Scrollable screen.

  2. Na obrazovce Screen2 vyberte [Název] a změňte ho na Text Analysis.On Screen2, select [Title] and change it to Text Analysis.

  3. Přidejte ovládací prvek Popisek pro úvodní text.Add a Label control for the introductory text.

  4. Přidejte ovládací prvek Textové zadání, abyste mohli zadat text, který se má analyzovat.Add a Text input control, so you can enter text to analyze. Pojmenujte ovládací prvek tiTextToAnalyze.Name the control tiTextToAnalyze. Aplikace by měla vypadat jako na následujícím obrázku.The app should now look like the following image.

    Aplikace s názvem, titulkem a textovým zadáním

  5. Přidejte tři ovládací prvky Zaškrtávací políčko, abyste mohli vybrat, které operace rozhraní API se mají provést.Add three Check box controls, so you can choose which API operations to perform. Ovládací prvky pojmenujte chkLanguage, chkPhrases a chkSentiment.Name the controls chkLanguage, chkPhrases, and chkSentiment.

  6. Přidejte tlačítko, abyste po výběru operace k provedení mohli volat rozhraní API.Add a button, so you can call the API after selecting which operations to perform. Aplikace by měla vypadat jako na následujícím obrázku.The app should now look like the following image.

    Aplikace se zaškrtávacími políčky a tlačítkem

  7. Přidejte tři ovládací prvky Popisek.Add three Label controls. První dva budou obsahovat výsledky volání rozhraní API pro jazyk a pocity, třetí je tu pouze pro představení v galerii v dolní části obrazovky.The first two hold results from the language and sentiment API calls; the third is just an introduction for the gallery at the bottom of the screen.

  8. Přidejte ovládací prvek Prázdná svislá galerie a pak do galerie přidejte ovládací prvek Popisek.Add a Blank vertical gallery control, then add a Label control to the gallery. Galerie bude obsahovat výsledky z volání rozhraní API pro klíčové fráze.The gallery holds results from the key phrases API call. Aplikace by měla vypadat jako na následujícím obrázku.The app should now look like the following image.

    Aplikace s popisky a galerií

  9. V levém podokně vyberte Screen1 > tři tečky (...) > Odstranit (tuto obrazovku v aplikaci nepotřebujete).In the left pane, select Screen1 > ellipsis (. . .) > Delete (you don't need this screen for the app).

Aplikaci zachováváme jednoduchou, abychom se mohli zaměřit na volání rozhraní API pro analýzu textu. Můžete ale přidávat různé věci, třeba logiku pro zobrazování a skrytí ovládacích prvků na základě zaškrtnutých políček, zpracování chyby v případě, kdy uživatel nevybere žádnou možnost, atd.We're keeping this app simple to focus on calling the Text Analytics API, but you could add things - like logic to show and hide controls based on the check boxes selected, error handling if the user doesn't select any options, and so on.

Přidání logiky pro volání správného rozhraní APIAdd logic to make the right API calls

Máte tedy dobře vypadající aplikaci, která ale ještě nic neumí.OK, you have a nice-looking app, but it doesn't do anything yet. Za chvíli to napravíte.You'll fix that in a moment. Než se ale začneme zabývat drobnostmi, pojďme se podívat na principy, kterými se aplikace řídí:But before we dive into the details, let's understand the pattern that the app follows:

  1. Aplikace volá konkrétní rozhraní API na základě políček zaškrtnutých v aplikaci.The app makes specific API calls based on the check boxes selected in the app. Když kliknete nebo klepnete na Analyzovat text, aplikace provede jedno, dvě nebo tři volání rozhraní API.When you click or tap Analyze text, the app makes 1, 2, or 3 API calls.

  2. Aplikace ukládá data, která rozhraní API vrátí, do tří různých kolekcí: languageCollect, sentimentCollect a phrasesCollect.The app stores data that the API returns in three different collections: languageCollect, sentimentCollect, and phrasesCollect.

  3. Na základě obsahu těchto tří kolekcí aplikace aktualizuje vlastnost Text pro dva popisky a vlastnost Items pro galerii.The app updates the Text property for two of the labels, and the Items property for the gallery, based on what's in the three collections.

Pojďme tedy přidat vzorec pro vlastnost OnSelect tlačítka.With that background, let's add the formula for the OnSelect property of the button. A tady přichází na řadu všechna ta kouzla.This is where all the magic happens.

If(chkLanguage.Value=true,

        ClearCollect(languageCollect, TextAnalytics.DetectLanguage({numberOfLanguagesToDetect:1, text:tiTextToAnalyze.Text}).detectedLanguages.name)

);

If(chkPhrases.Value=true,

        ClearCollect(phrasesCollect, TextAnalytics.KeyPhrases({language:"en", text:tiTextToAnalyze.Text}).keyPhrases)

);

If(chkSentiment.Value=true,

        ClearCollect(sentimentCollect, TextAnalytics.DetectSentiment({language:"en", text:tiTextToAnalyze.Text}).score)

)

Děje se toho více, proto si to pojďme rozdělit:There's a bit going on here, so let's break it down:

  • Příkaz If je jednoduchý, pokud je konkrétní políčko zaškrtnuté, provede volání rozhraní API pro danou operaci.The If statements are straightforward – if a specific check box is selected, make the API call for that operation.

  • V rámci každého volání je potřeba určit příslušné parametry:Within each call, specify the appropriate parameters:

    • U všech tří volání určíte jako vstupní text tiTextToAnalyze.Text.In all three calls, you specify tiTextToAnalyze.Text as the input text.

    • V operaci DetectLanguage() se numberOfLanguagesToDetect pevně zakóduje jako 1. Tento parametr byste ale mohli předat na základě nějaké logiky v aplikaci.In DetectLanguage(), numberOfLanguagesToDetect is hard-coded as 1, but you could pass this parameter based on some logic in the app.

    • V operacích KeyPhrases() a DetectSentiment() se jazyk pevně zakóduje jako „en“. Tento parametr byste ale mohli předat na základě nějaké logiky v aplikaci.In KeyPhrases() and DetectSentiment(),language is hard-coded as "en", but you could pass this parameter based on some logic in the app. Mohli byste například nejprve rozpoznat jazyk a pak tento parametr nastavit podle toho, co vrátí operace DetectLanguage().For example, you could detect the language first, then set this parameter based on what DetectLanguage() returns.

  • Pro každé provedené volání se výsledky přidají do příslušné kolekce:For each call that is made, add the results to the appropriate collection:

    • Pro kolekci languageCollect přidejte name jazyka, který byl v textu identifikován.For languageCollect, add the name of the language that was identified in the text.

    • Pro kolekci phrasesCollect přidejte keyPhrases identifikované v textu.For phrasesCollect, add the keyPhrases that were identified in the text.

    • Pro kolekci sentimentCollect přidejte skóre pocitu pro text. Má hodnotu 0-1, kde 1 je 100% pozitivní.For sentimentCollect, add the sentiment score for the text, which is a value of 0-1, with 1 being 100% positive.

Zobrazení výsledků volání rozhraní APIDisplay the results of the API calls

Pokud chcete zobrazit výsledky volání rozhraní API, odkazujte na příslušnou kolekci v každém ovládacím prvku:To display the results of the API calls, reference the appropriate collection in each control:

  1. Vlastnost Text popisku jazyka nastavte na: "The language detected is " & First(languageCollect).name.Set the Text property of the language label to: "The language detected is " & First(languageCollect).name.

    Funkce First() vrátí první (a v tomto případě jediný) záznam v kolekci languageCollect a aplikace zobrazí name (jediné pole) přidružené tomuto záznamu.The First() function returns the first (and in this case only) record in languageCollect, and the app displays the name (the only field) associated with that record.

  2. Vlastnost Text popisku pocitu nastavte na: "The sentiment score is " & Round(First(sentimentCollect.Value).Value, 3)\*100 & "% positive.".Set the Text property of the sentiment label to: "The sentiment score is " & Round(First(sentimentCollect.Value).Value, 3)\*100 & "% positive.".

    Tento vzorec také používá funkci First(), získá Value (0-1) z prvního a jediného záznamu a pak ji naformátuje jako procento.This formula also uses the First() function, gets the Value (0-1) from the first and only record, then formats it as a percentage.

  3. Vlastnost Items galerie klíčových frází nastavte na: phrasesCollect.Set the Items property of the key phrases gallery to: phrasesCollect.

    Teď pracujete s galerií, proto nepotřebujete funkci First() k extrakci jedné hodnoty.You're now working with a gallery so you don't need the First() function to extract a single value. Odkazujete na kolekci a galerie zobrazí klíčové fráze jako seznam.You reference the collection, and the gallery displays the key phrases as a list.

Spuštění aplikaceRun the app

Teď, když je aplikace dokončená, ji spusťte a podívejte se, jak funguje: Klikněte nebo klepněte na tlačítko pro spuštění v pravém horním rohu.Now that the app is finished, run it to see how it works: click or tap the run button in the upper right corner Spuštění aplikace.. Na následujícím obrázku jsou vybrané všechny tři možnosti a text je stejný jako výchozí text na stránce rozhraní API pro analýzu textu.In the following image, all three options are selected, and the text is the same as the default text on the Text Analytics API page.

Dokončená aplikace s daty

Pokud srovnáte výstup této aplikace se stránkou rozhraní API pro analýzu textu (uvedenou na začátku tohoto článku), zjistíte, že výsledky jsou stejné.If you compare the output of this app to the Text Analytics API page at the beginning of this article, you see that the results are the same.

Věříme, že teď už rozhraní API pro analýzu textu rozumíte trošku lépe a že se vám líbilo, jak jsme ho do aplikace začlenili.We hope you now understand a little more about the Text Analytics API, and you've enjoyed seeing how to incorporate it into an app. Dejte nám vědět, jestli se máme v našich článcích zaměřit i na další služby Cognitive Services (nebo obecně na jiné služby).Let us know if there are other Cognitive Services (or other services in general) that you would like us to focus on in our articles. Jako vždy nám prosím své názory a dotazy napište do komentářů.As always, please leave feedback and any questions in the comments.