Używanie modeli narzędzia AI Builder w usłudze Power Apps
Korzystając z Power Fx, otwartego źródła formuł o niskim kodzie źródłowym, możesz dodać do swoich Power App potężniejsze i bardziej elastyczne integracje modeli AI. Formuły przewidywania modeli AI można zintegrować z dowolnymi elementami sterującymi w aplikacji canvas. Na przykład możesz wykrywać język tekstu w kontrolce wprowadzania tekstu i przekazywać wyniki do kontrolki etykiet, jak to widać w sekcji Użycie modelu z kontrolkami poniżej.
Aby korzystać z Power Fx w modelach AI Builder, musisz mieć:
Dostęp do Środowiska Microsoft Power Platform z bazą danych .
Licencja AI Builder (próbna lub opłacone). Aby dowiedzieć się więcej, wejdź na stronę Licencjonowanie AI Builder.
Aby korzystać z modelu AI z Power Fx, musisz utworzyć aplikację kanwy, wybrać kontrolkę i przypisać wyrażenia do właściwości sterowania.
Uwaga
Aby uzyskać listę modeli AI Builder, z których można korzystać, przejdź do modelu AI i scenariuszy biznesowych. Możesz także korzystać z modeli wbudowanych w Microsoft Azure Uczenie maszynowe z funkcją przynieś własny model.
Utwórz aplikację. Więcej informacji: Tworzenie pustej aplikacji kanwy od początku.
Wybierz kartę Dane>Dodaj dane>Modele AI.
Wybierz jeden lub więcej modeli do dodania.
Jeśli nie widzisz swojego modelu na tej liście, być może nie masz uprawnień do używania go w programie Power Apps. Skontaktuj się z administratorem, aby rozwiązać ten problem.
Teraz, gdy dodałeś model AI do swojej aplikacji kanwy, zobaczmy, jak wywołać model AI Builder z kontrolki.
W poniższym przykładzie zbudujemy aplikację, która potrafi wykryć język wprowadzony przez użytkownika w aplikacji.
Utwórz aplikację. Więcej informacji: Tworzenie pustej aplikacji kanwy od początku.
Wybierz kartę Dane>Dodaj dane>Modele AI.
Wyszukaj i wybierz model AI Wykrywanie języka.
Uwaga
Po przeniesieniu aplikacji między środowiskami będziesz musiał ponownie ręcznie dodać model do aplikacji w nowym środowisku.
Wybierz + z lewego panelu, a następnie wybierz Wprowadzanie tekstu.
Powtórz poprzedni krok, aby dodać kontrolkę Etykieta tekstowa.
Zmień nazwę etykiety tekstowej na Język.
Dodaj kolejną etykietę tekstową obok etykiety "Język".
Wybierz etykietę tekstową dodaną w poprzednim kroku.
W pasku formuły dla właściwości Tekst etykiety tekstowej wpisz następującą formułę.
'Language detection'.Predict(TextInput1.Text).Language
Etykieta zmienia się na kod języka w zależności od lokalizacji. W tym przykładzie en (angielski).
Zapoznaj się z wersją zapoznawczą aplikacji, wybierając przycisk Odtwarzaj w prawym górnym rogu ekranu.
W polu tekstowym wpisz
bonjour
. Zauważ, że poniżej pola tekstowego pojawia się język francuski (fr).Podobnie, wypróbuj teksty w innym języku. Na przykład wpisanie
guten tag
zmienia wykryty język na de dla języka niemieckiego.
Spróbuj wyzwalać przewidywanie modelu za pomocą pojedynczych akcji, takich jak OnClick przy użyciu przycisku, a nie akcji OnChange przy wprowadzaniu tekstu, aby zapewnić efektywne wykorzystanie kredytów AI Builder.
Aby zaoszczędzić czas i zasoby, zapisz wynik wywołania modelu, aby można go było używać w wielu miejscach. Dane wyjściowe można zapisać w zmiennej globalnej. Po zapisaniu wyników modelu możesz użyć języka w innym miejscu aplikacji, aby pokazać zidentyfikowany język i jego wynik w dwóch różnych etykietach.
Set(lang, 'Language detection'.Predict("bonjour").Language)
Ta sekcja zawiera dane wejściowe i wyjściowe dla modeli niestandardowych i wstępnie utworzonych według typu modelu.
Typ modelu | Składnia | Dane wyjściowe |
---|---|---|
Klasyfikacja kategorii | 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) |
{AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}} |
Wyodrębnianie encji | '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, }]} |
Wykrywanie obiektów | 'Custom object detection model name'.Predict(Image: Image) |
{ Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]} |
Uwaga
Nazwy gotowych modeli są wyświetlane w lokalizacji Twojego środowiska. Poniższe przykłady pokazują nazwy modeli dla języka angielskiego (en).
Typ modelu | Składnia | Dane wyjściowe |
---|---|---|
Czytnik wizytówek | ‘Business card reader’.Predict( Document: Base64 encoded image ) |
{ Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}} |
Klasyfikacja kategorii | 'Category classification'.Predict( Text: String,Language?: Optional String, ) |
{ AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }} |
Czytnik dokumentów tożsamości | ‘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 }}}}} |
Przetwarzanie 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 } } } }[] } }} |
Wyodrębnianie kluczowych fraz | 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) |
{ Phrases: String[]} |
Wykrywanie języka | 'Language Detection'.Predict(Text: String) |
{ Language: String, Confidence: Number} |
Przetwarzanie paragonów | ‘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 } } } }[] } } } |
Analiza opinii | '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 } }[]} |
Rozpoznawanie tekstu | 'Text recognition'.Predict( Document: Base64 encoded image) |
{Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]} |
Tłumaczenie tekstu | 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) |
{ Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} } |
Każdy model jest wywoływany przy użyciu czasownika przewidywania. Na przykład model wykrywania języka przyjmuje tekst jako dane wejściowe i zwraca tabelę możliwych języków uporządkowaną według wyniku tego języka. Wynik wskazuje, jak pewny siebie jest model ze swoim przewidywanie.
Dane wejściowe | Dane wyjściowe |
---|---|
'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 } } ] } |