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ó:
Truy cập vào một Microsoft Power Platform môi trường có cơ sở dữ liệu.
AI Builder giấy phép (dùng thử hoặc trả phí). Để tìm hiểu thêm, hãy chuyển tới AI Builder cấp phép.
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 .
Tạo ứng dụng. Thông tin thêm: Tạo ứng dụng canvas trống từ đầu.
Chọn Dữ liệu>Thêm dữ liệu>Mô hình AI.
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.
Tạo ứng dụng. Thông tin thêm: Tạo ứng dụng canvas trống từ đầu.
Chọn Dữ liệu>Thêm dữ liệu>Mô hình AI.
Tìm kiếm và chọn Phát hiện ngôn ngữ Mô hình AI.
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.
Chọn + từ ngăn bên trái, sau đó chọn điều khiển Nhập văn bản .
Lặp lại bước trước đó để thêm điều khiển Nhãn văn bản .
Đổi tên nhãn văn bản thành Ngôn ngữ.
Thêm một nhãn văn bản khác bên cạnh nhãn "Ngôn ngữ".
Chọn nhãn văn bản đã thêm vào bước trước đó.
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).
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.
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.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 } } ] } |