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:
Licence AI Builder (zkušební nebo placená). Další informace naleznete v části Licence AI Builder.
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.
Vytvoření aplikace. Další informace: Vytvoření prázdné aplikace plátna od nuly.
Vyberte položku Data>Přidat data>Modely AI.
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.
Vytvoření aplikace. Další informace: Vytvoření prázdné aplikace plátna od nuly.
Vyberte položku Data>Přidat data>Modely AI.
Vyhledejte a vyberte model AI Detekce 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í.
V levém podokně vyberte + a potom vyberte ovládací prvek Text input.
Opakováním předchozího kroku přidejte ovládací prvek Text label.
Přejmenujte textový popisek na Language (Jazyk).
Přidejte další textový popisek vedle štítku „Jazyk“.
Vyberte textový popisek přidaný v předchozím kroku.
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).
Zobrazte náhled aplikace výběrem tlačítka Přehrát v pravém horním rohu obrazovky.
Do textového pole zadejte
bonjour
. Všimněte si, že jazyk pro francouzštinu (fr) se zobrazí pod textovým polem.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 } } ] } |