Dùng mô hình AI Builder trong Power Apps

Với việc sử dụng Power Fx, các công thức ít viết mã mã nguồn mở, bạn có thể thêm các tích hợp mô hình AI mạnh mẽ và linh hoạt hơn vào Power App của mình. Các công thức dự đoán của mô hình AI có thể được tích hợp với bất kỳ điều khiển nào trong ứng dụng canvas. Ví dụ: bạn có thể phát hiện ngôn ngữ của văn bản trong điều khiển nhập văn bản và xuất kết quả sang điều khiển nhãn như có thể thấy trong phần Sử dụng mô hình có điều khiển bên dưới.

Yêu cầu

Để sử dụng Power Fx trong AI Builder mô hình, bạn phải có:

Chọn mô hình trong ứng dụng canvas

Để sử dụng mô hình AI với Power Fx, bạn sẽ cần tạo ứng dụng canvas, chọn điều khiển và gán biểu thức cho thuộc tính điều khiển.

Lưu ý

Để biết danh sách AI Builder các mô hình bạn có thể sử dụng, hãy xem Các mô hình AI và kịch bản kinh doanh. Bạn cũng có thể sử dụng các mô hình được tích hợp sẵn Microsoft Azure máy học với tính năng mang theo mô hình của riêng bạn .

  1. Tạo ứng dụng. Thông tin thêm: Tạo ứng dụng canvas trống từ đầu.

  2. Chọn Dữ liệu>Thêm dữ liệu>Mô hình AI.

    Ảnh chụp màn hình về cách chọn mô hình của bạn.

  3. Chọn một hoặc nhiều mô hình để thêm.

    Nếu không thấy mô hình của mình trong danh sách thì có thể bạn không có quyền sử dụng mô hình đó trong Power Apps. Hãy liên hệ với quản trị viên của bạn để giải quyết vấn đề này.

Sử dụng mô hình có điều khiển

Bây giờ bạn đã thêm mô hình AI vào ứng dụng canvas của mình, hãy xem cách gọi một mô hình AI Builder từ một điều khiển.

Trong ví dụ sau, chúng tôi sẽ xây dựng một ứng dụng có thể phát hiện ngôn ngữ do người dùng nhập vào ứng dụng.

  1. Tạo ứng dụng. Thông tin thêm: Tạo ứng dụng canvas trống từ đầu.

  2. Chọn Dữ liệu>Thêm dữ liệu>Mô hình AI.

  3. Tìm kiếm và chọn Phát hiện ngôn ngữ Mô hình AI.

    Ảnh chụp màn hình của mô hình phát hiện ngôn ngữ.

    Lưu ý

    Bạn sẽ phải thêm lại mô hình vào ứng dụng theo cách thủ công trong môi trường mới khi di chuyển ứng dụng qua các môi trường.

  4. Chọn + từ ngăn bên trái, sau đó chọn điều khiển Nhập văn bản .

  5. Lặp lại bước trước đó để thêm điều khiển Nhãn văn bản .

  6. Đổi tên nhãn văn bản thành Ngôn ngữ.

  7. Thêm một nhãn văn bản khác bên cạnh nhãn "Ngôn ngữ".

    Điều khiển ứng dụng bao gồm điều khiển văn bản và cả điều khiển nhãn.

  8. Chọn nhãn văn bản đã thêm vào bước trước đó.

  9. Nhập công thức sau vào thanh công thức cho thuộc tính Text của nhãn văn bản.

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

    Nhãn thay đổi thành mã ngôn ngữ dựa trên ngôn ngữ của bạn. Đối với ví dụ này, en (Tiếng Anh).

    Công thức ngôn ngữ thay đổi văn bản nhãn.

  10. Bản xem trước ứng dụng bằng cách chọn nút Phát từ góc trên bên phải màn hình.

    Xem trước ứng dụng.

  11. Trong hộp văn bản, nhập bonjour. Lưu ý rằng ngôn ngữ của tiếng Pháp (fr) xuất hiện bên dưới hộp văn bản.

    Ví dụ về phát hiện ngôn ngữ tiếng Pháp.

  12. Tương tự, hãy thử văn bản ngôn ngữ khác. Ví dụ: nhập guten tag sẽ thay đổi ngôn ngữ được phát hiện thành de cho tiếng Đức.

Thực tiễn tốt nhất

  • Hãy thử kích hoạt mô hình dự đoán từ các hành động đơn lẻ, chẳng hạn như OnClick bằng cách sử dụng nút thay vì hành động OnChange trên văn bản đầu vào để đảm bảo sử dụng hiệu quả các khoản tín dụng AI Builder .

  • Để tiết kiệm thời gian và tài nguyên, hãy lưu kết quả của lệnh gọi mô hình để bạn có thể sử dụng nó ở nhiều nơi. Bạn có thể lưu kết quả đầu ra vào một biến toàn cục. Sau khi lưu kết quả mô hình, bạn có thể sử dụng ngôn ngữ ở nơi khác trong ứng dụng của mình để hiển thị ngôn ngữ đã xác định và điểm tin cậy của ngôn ngữ đó ở hai nhãn khác nhau.

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

Đầu vào và đầu ra theo loại mô hình

Phần này cung cấp đầu vào và đầu ra cho các mô hình tùy chỉnh và dựng sẵn theo loại mô hình.

Mô hình tùy chỉnh

Loại mô hình Cú pháp Kết quả
Phân loại danh mục 'Custom text classification model name'.Predict(Text: String, Language?: Optional String) {AllClasses: {Name: String, Confidence: Number}[],TopClass: {Name: String,Confidence: Number}}
Trích xuất thực thể '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, }]}
Phát hiện đối tượng 'Custom object detection model name'.Predict(Image: Image) { Objects: { Name: String, Confidence: Number, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }}[]}

Mô hình dựng sẵn

Lưu ý

Tên mô hình dựng sẵn được hiển thị bằng ngôn ngữ môi trường của bạn. Các ví dụ sau đây hiển thị tên mẫu máy cho ngôn ngữ tiếng Anh (en).

Loại mô hình Cú pháp Kết quả
Trình đọc danh thiếp ‘Business card reader’.Predict( Document: Base64 encoded image ) { Fields: { FieldName: { FieldType: "text", Value: { Text: String, BoundingBox: { Top: Number, Left: Number, Height: Number, Width: Number }}}}}
Phân loại danh mục 'Category classification'.Predict( Text: String,Language?: Optional String, ) { AllClasses: { Name: String, Confidence: Number }[], TopClass: { Name: String, Confidence: Number }}
Trình đọc giấy tờ tùy thân ‘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 }}}}}
Xử lý hóa đơn ‘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 } } } }[] } }}
Trích xuất cụm từ khóa 'Key phrase extraction'.Predict(Text: String, Language?: Optional String)) { Phrases: String[]}
Phát hiện ngôn ngữ 'Language Detection'.Predict(Text: String) { Language: String, Confidence: Number}
Xử lý biên nhận ‘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 } } } }[] } } }
Phân tích cảm tình '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 } }[]}
Nhận dạng văn bản 'Text recognition'.Predict( Document: Base64 encoded image) {Pages: {Page: Number,Lines: { Text: String, BoundingBox: { Left: Number, Top: Number, Width: Number, Height: Number }, Confidence: Number }[] }[]}
Dịch văn bản 'Text translation'.Predict( Text: String, TranslateTo?: String, TranslateFrom?: String) { Text: String, // Translated text DetectedLanguage?: String, DetectedLanguageConfidence: Number} }

Ví dụ

Mọi mô hình đều được gọi bằng cách sử dụng động từ dự đoán. Ví dụ: mô hình phát hiện ngôn ngữ lấy văn bản làm đầu vào và trả về một bảng gồm các ngôn ngữ có thể, được sắp xếp theo điểm của ngôn ngữ đó. Điểm số cho biết mức độ tin cậy của mô hình với dự đoán của nó.

Nhập dữ liệu Kết quả
'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 } } ] }