Udostępnij za pośrednictwem


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.

Wymagania

Aby korzystać z Power Fx w modelach AI Builder, musisz mieć:

Wybieranie modelu w aplikacjach kanwy

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.

  1. Utwórz aplikację. Więcej informacji: Tworzenie pustej aplikacji kanwy od początku.

  2. Wybierz kartę Dane>Dodaj dane>Modele AI.

    Zrzut ekranu przedstawiający sposób wybierania modelu.

  3. 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.

Użyj modelu w kontrolkach

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.

  1. Utwórz aplikację. Więcej informacji: Tworzenie pustej aplikacji kanwy od początku.

  2. Wybierz kartę Dane>Dodaj dane>Modele AI.

  3. Wyszukaj i wybierz model AI Wykrywanie języka.

    Zrzut ekranu modelu wykrywania języka.

    Uwaga

    Po przeniesieniu aplikacji między środowiskami będziesz musiał ponownie ręcznie dodać model do aplikacji w nowym środowisku.

  4. Wybierz + z lewego panelu, a następnie wybierz Wprowadzanie tekstu.

  5. Powtórz poprzedni krok, aby dodać kontrolkę Etykieta tekstowa.

  6. Zmień nazwę etykiety tekstowej na Język.

  7. Dodaj kolejną etykietę tekstową obok etykiety "Język".

    Elementy sterujące aplikacji, w tym tekst i obie etykiety.

  8. Wybierz etykietę tekstową dodaną w poprzednim kroku.

  9. 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).

    Formuła językowa zmienia tekst etykiety.

  10. Zapoznaj się z wersją zapoznawczą aplikacji, wybierając przycisk Odtwarzaj w prawym górnym rogu ekranu.

    Podgląd aplikacji.

  11. W polu tekstowym wpisz bonjour. Zauważ, że poniżej pola tekstowego pojawia się język francuski (fr).

    Przykład wykrywania języka francuskiego.

  12. Podobnie, wypróbuj teksty w innym języku. Na przykład wpisanie guten tag zmienia wykryty język na de dla języka niemieckiego.

Najlepsze rozwiązania

  • 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)
    

Wejście i wyjście według typu modelu

Ta sekcja zawiera dane wejściowe i wyjściowe dla modeli niestandardowych i wstępnie utworzonych według typu modelu.

Modele niestandardowe

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 }}[]}

Wstępnie utworzone modele

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} }

Przykłady

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 } } ] }

Zobacz też