Sdílet prostřednictvím


Použití modelů AI Builder v Power Apps

S použitím Power Fx, open-sourcových vzorců s malým množstvím kódování můžete do své aplikace Power App přidat výkonnější a flexibilnější integrace modelů umělé inteligence. Vzorce predikce modelu AI lze integrovat s libovolnými ovládacími prvky v aplikaci plátna. Můžete například zjistit jazyk textu v ovládacím prvku pro zadávání textu a výstup výsledků do ovládacího prvku štítku, jak je vidět v části Použití modelu s ovládacími prvky dále.

Požadavky

Pro použití Power Fx v modelech AI Builder musíte mít:

Výběr modelu v aplikacích plátna

Chcete-li používat model AI s Power Fx, budete muset vytvořit aplikaci plátna, vybrat ovládací prvek a přiřadit výrazy vlastnostem ovládacího prvku.

Poznámka:

Seznam modelů AI Builder, které můžete používat, najdete v části Modely AI a obchodní scénáře. Můžete také používat modely vestavěné ve strojovém učení Microsoft Azure s funkcí Přineste si vlastní model.

  1. Vytvoření aplikace. Další informace: Vytvoření prázdné aplikace plátna od nuly.

  2. Vyberte položku Data>Přidat data>Modely AI.

    Screenshot výběru modelu.

  3. Vyberte jeden nebo více modelů, které chcete přidat.

    Pokud svůj model v seznamu nevidíte, možná nemáte oprávnění jej používat v Power Apps. Požádejte správce o vyřešení tohoto problému.

Použití modelu s ovládacími prvky

Nyní, když jste přidali model AI do své aplikace plátna, pojďme se podívat, jak zavolat model AI Builder z ovládacího prvku.

V následujícím příkladu vytvoříme aplikaci, která dokáže rozpoznat jazyk zadaný uživatelem v aplikaci.

  1. Vytvoření aplikace. Další informace: Vytvoření prázdné aplikace plátna od nuly.

  2. Vyberte položku Data>Přidat data>Modely AI.

  3. Vyhledejte a vyberte model AI Detekce jazyka.

    Screenshot modelu rozpoznávání jazyka.

    Poznámka:

    Model je nutné při přesunu aplikace mezi prostředími ručně znovu přidat do aplikace v novém prostředí.

  4. V levém podokně vyberte + a potom vyberte ovládací prvek Text input.

  5. Opakováním předchozího kroku přidejte ovládací prvek Text label.

  6. Přejmenujte textový popisek na Language (Jazyk).

  7. Přidejte další textový popisek vedle štítku „Jazyk“.

    Ovládací prvky aplikace včetně textu a obou ovládacích prvků popisků.

  8. Vyberte textový popisek přidaný v předchozím kroku.

  9. Zadejte následující vzorec do řádku vzorců pro vlastnost Text textového popisku.

    'Language detection'.Predict(TextInput1.Text).Language
    

    Popisek se změní na kód jazyka podle vašeho národního prostředí. V tomto příkladu en (angličtina).

    Vzorec jazyka změní text popisku.

  10. Zobrazte náhled aplikace výběrem tlačítka Přehrát v pravém horním rohu obrazovky.

    Zobrazte náhled aplikace.

  11. Do textového pole zadejte bonjour. Všimněte si, že jazyk pro francouzštinu (fr) se zobrazí pod textovým polem.

    Příklad detekce francouzského jazyka.

  12. Podobně vyzkoušejte text v jiném jazyce. Například zadání guten tag změní detekovaný jazyk na de jako němčina.

Osvědčené postupy

  • Zkuste spustit model predikce z jednotlivých akcí, jako je např. OnClick pomocí tlačítka místo akce OnChange na textovém vstupu k zajištění efektivního využití kreditů AI Builder.

  • Chcete-li ušetřit čas a prostředky, uložte výsledek volání modelu, abyste jej mohli použít na více místech. Výstup můžete uložit do globální proměnné. Po uložení výsledku modelu můžete použít jazyk i jinde ve vaší aplikaci a zobrazit identifikovaný jazyk a jeho skóre spolehlivosti ve dvou různých popiscích.

    Set(lang, 'Language detection'.Predict("bonjour").Language)
    

Vstup a výstup podle typu modelu

Tato část obsahuje vstupy a výstupy pro vlastní a předem sestavené modely podle typu modelu.

Vlastní modely

Typ modelu Syntaxe Výstup
Klasifikace kategorií 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) {AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}}
Extrakce entity 'Custom entity extraction model name’.Predict(Text: String,Language?:String(Optional)) {Entities:[{Type: "name",Value: "Bill", StartIndex: 22, Length: 4, Confidence: .996, }, { Type: "name", Value: "Gwen", StartIndex: 6, Length: 4, Confidence: .821, }]}
Rozpoznávání objektů 'Custom object detection model name'.Predict(Image: Image) { Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]}

Předem vytvořené modely

Poznámka:

Názvy předem vytvořených modelů se zobrazují v národním prostředí vašeho prostředí. Následující příklady ukazují názvy modelů pro angličtinu (en).

Typ modelu Syntaxe Výstup
Čtečka vizitek ‘Business card reader’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Klasifikace kategorií 'Category classification'.Predict( Text: String,Language?: Optional String, ) { AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }}
Čtečka dokladů totožnosti ‘Identity document reader’.Predict( Document: Base64 encoded image ) { Context: { Type: String, TypeConfidence: Number }, Fields: { FieldName: { FieldType: "text", Confidence: Number, Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Zpracování faktur ‘Invoice processing’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text" | "date" | "number", Confidence: Number,Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }, Tables: { Items: { Rows: { FieldName: { FieldType: "text" | "date" | "number", Confidence: Number, Key: { Name: String, }, Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }[] } }}
Extrakce klíčových frází 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) { Phrases: String[]}
Detekce jazyka 'Language Detection'.Predict(Text: String) { Language: String, Confidence: Number}
Zpracování potvrzení ‘Receipt processing’.Predict( Document: Base64 encoded image) { Context: { Type: String, TypeConfidence: Number }, Fields: { FieldName: { FieldType: "text" | "date" | "number", Confidence: Number, Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }, Tables: {Items: {Rows: {FieldName: { FieldType: "text" | "date" | "number", Confidence: Number, Key: { Name: String, }, Value: { Text: String, [Date: Date] | [Number: Number], BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number } } } }[] } } }
Analýza mínění 'Sentiment analysis'.Predict( Text: String, Language?: Optional String ) { Document: { AllSentiments: [ { Name: "Positive", Confidence: Number }, { Name: "Neutral", Confidence: Number }, { Name: "Negative", Confidence: Number } ], TopSentiment: { Name: "Positive" | "Neutral" | "Negative", Confidence: Number } } Sentences: { StartIndex: Number, Length: Number, AllSentiments: [ { Name: "Positive", Confidence: Number }, { Name: "Neutral", Confidence: Number }, { Name: "Negative", Confidence: Number } ], TopSentiment: { Name: "Positive" | "Neutral" | "Negative", Confidence: Number } }[]}
Rozpoznávání textu 'Text recognition'.Predict( Document: Base64 encoded image) {Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]}
Překlad textu 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) { Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} }

Příklady

Každý model je vyvolán pomocí slovesa predict (predikovat). Například model pro rozpoznávání jazyka jazyka bere text jako vstup a vrací tabulku možných jazyků seřazenou podle skóre daného jazyka. Toto skóre ukazuje, jak spolehlivý model je s ohledem na jeho predikci.

Vstup Výstup
'Language detection'.Predict("bonjour") { Language: “fr”, Confidence: 1}
‘Text Recognition’.Predict(Image1.Image) { Pages: [ {Page: 1, Lines: [ { Text: "Contoso account", BoundingBox: { Left: .15, Top: .05, Width: .8, Height: .10 }, Confidence: .97 }, { Text: "Premium service", BoundingBox: { Left: .15, Top: .20, Width: .8, Height: .10 }, Confidence: .96 }, { Text: "Paid in full", BoundingBox: { Left: .15, Top: .35, Width: .8, Height: .10 }, Confidence: .99 } } ] }