Logo Zephyrnet

Cho phép người dùng đặt câu hỏi về dữ liệu bằng ngôn ngữ tự nhiên trong các ứng dụng của bạn bằng cách nhúng Amazon QuickSight Q

Ngày:

Amazon QuickSight Q là một khả năng dựa trên máy học mới trong Amazon QuickSight cho phép người dùng đặt các câu hỏi kinh doanh bằng ngôn ngữ tự nhiên và nhận câu trả lời với hình ảnh trực quan có liên quan ngay lập tức để hiểu rõ hơn từ dữ liệu. QuickSight Q không phụ thuộc vào các trang tổng quan hoặc báo cáo dựng sẵn để trả lời câu hỏi, điều này loại bỏ nhu cầu về các nhóm thông minh kinh doanh (BI) để tạo hoặc cập nhật trang tổng quan mỗi khi có câu hỏi kinh doanh mới. Người dùng có thể đặt câu hỏi và nhận câu trả lời trực quan trong vài giây trực tiếp từ bên trong QuickSight hoặc từ các ứng dụng web và cổng thông tin. Trong bài đăng này, chúng tôi xem xét cách bạn có thể nhúng Q vào các ứng dụng web hoặc cổng thông tin của mình.

Tổng quan về giải pháp

Bây giờ bạn có thể nhúng Q vào ứng dụng của mình mà không cần bất kỳ phát triển tùy chỉnh nào. Q là một dịch vụ BI gốc đám mây được quản lý hoàn toàn mà bạn có thể dễ dàng nhúng mà không yêu cầu chuyên môn trong nhóm của bạn để phát triển và duy trì khả năng này. Bạn có thể dễ dàng dân chủ hóa dữ liệu của mình và mở rộng thông tin chi tiết của mình cho cơ sở người dùng đang tăng lên, đồng thời đảm bảo bạn chỉ trả tiền cho việc sử dụng với mô hình đặt giá trả cho mỗi câu hỏi duy nhất của Q.

Các ứng dụng có thể xác thực người dùng với bất kỳ nhà cung cấp danh tính nào được lựa chọn (chẳng hạn như Active Directory, Nhận thức về Amazonhoặc bất kỳ nhà cung cấp SSO liên kết nào dựa trên SAML mà tổ chức của bạn sử dụng) và thay mặt người dùng để có quyền truy cập vào thanh câu hỏi Q. Điều này có nghĩa là mọi người dùng đều nhận được trải nghiệm trả lời câu hỏi an toàn, được cá nhân hóa trong khi không yêu cầu xác thực QuickSight dành riêng cho người dùng. Điều này cho phép một trải nghiệm mới để cung cấp thông tin chi tiết trong ứng dụng của bạn với công việc trả trước tối thiểu và cho phép bạn tập trung vào chức năng ứng dụng cốt lõi của mình! Nhúng QuickSight Q có sẵn trong QuickSight Enterprise Edition và Các khu vực được Q hỗ trợ.

Để tạo điều kiện cho trải nghiệm nhúng dễ dàng, AWS cũng đã ra mắt SDK nhúng QuickSight của Amazon (JavaScript) và một tập hợp phong phú các chức năng dành riêng cho Q. SDK nhúng QuickSight cho phép bạn tích hợp Q một cách hiệu quả vào các trang ứng dụng của mình, đặt chủ đề mặc định, cho phép chọn chủ đề, đặt chủ đề và kiểm soát hành vi của thanh tìm kiếm Q. Điều này giúp bạn triển khai Q cho người dùng của mình nhanh hơn.

Để nhúng Q vào ứng dụng của bạn, bạn phải hoàn thành các bước cấp cao sau:

  1. Thiết lập quyền để tạo Q URL được nhúng.
  2. Tạo một URL với mã xác thực được đính kèm.
  3. Nhúng URL thanh tìm kiếm Q.

Thiết lập quyền để tạo Q URL được nhúng

Trong bước này, bạn thiết lập quyền cho ứng dụng phụ trợ hoặc máy chủ web của mình để nhúng thanh tìm kiếm Q. Tác vụ này yêu cầu quyền truy cập quản trị vào Quản lý truy cập và nhận dạng AWS (TÔI LÀ). Mỗi người dùng truy cập vào thanh tìm kiếm Q đảm nhận một vai trò cung cấp cho họ quyền QuickSight để truy xuất URL được nhúng Q.

Để làm được điều này, hãy tạo vai trò IAM trong tài khoản AWS của bạn. Liên kết chính sách IAM với vai trò cung cấp quyền cho bất kỳ người dùng nào chấp nhận điều đó. Vai trò IAM cần cung cấp quyền truy xuất URL nhúng cho nhóm người dùng cụ thể. Với sự trợ giúp của ký tự đại diện *, bạn có thể cấp quyền tạo URL cho tất cả người dùng trong một không gian tên cụ thể. Hoặc bạn có thể cấp quyền tạo URL cho một nhóm nhỏ người dùng trong các không gian tên cụ thể. Đối với điều này, bạn thêm quicksight:GenerateEmbedUrlForRegisteredUser.

Chính sách mẫu sau cung cấp các quyền này:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForRegisteredUser" ], "Resource": "arn:partition:quicksight:region:accountId:user/namespace/userName" } ]
}

Ngoài ra, nếu bạn đang tạo người dùng lần đầu sẽ là người đọc QuickSight, hãy đảm bảo thêm quicksight:RegisterUser sự cho phép trong chính sách.

Chính sách mẫu sau cung cấp quyền truy xuất URL nhúng cho người dùng lần đầu tiên sẽ là người đọc QuickSight:

{ "Version": "2012-10-17", "Statement": [ { "Action": "quicksight:RegisterUser", "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": [ "quicksight:GenerateEmbedUrlForRegisteredUser" ], "Resource": [ "arn:partition:quicksight:region:accountId:user/namespace/userName" ] } ]
}

Cuối cùng, danh tính IAM của ứng dụng của bạn phải có chính sách tin cậy được liên kết với nó để cho phép truy cập vào vai trò mà bạn vừa tạo. Điều này có nghĩa là khi người dùng truy cập ứng dụng của bạn, ứng dụng của bạn sẽ thay mặt người dùng đảm nhận vai trò và cung cấp cho người dùng đó trong QuickSight.

Ví dụ sau sử dụng một vai trò được gọi là embedding_quicksight_q_search_bar_role, có chính sách mẫu đứng trước là tài nguyên của nó:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::11112222333:role/embedding_quicksight_q_search_bar_role" }
}

Tạo một URL với mã xác thực được đính kèm

Trong bước này, bạn xác thực người dùng của mình và nhận URL chủ đề Q có thể nhúng trên máy chủ ứng dụng của bạn. Nếu bạn định nhúng thanh Q cho các loại nhận dạng IAM hoặc QuickSight, hãy chia sẻ chủ đề Q với người dùng. Khi người dùng truy cập vào ứng dụng của bạn, ứng dụng sẽ đảm nhận vai trò IAM của người dùng. Nếu người dùng đó là người mới, ứng dụng sẽ thêm người dùng vào QuickSight, sau đó chuyển một số nhận dạng làm ID phiên vai trò duy nhất.

Các bước này đảm bảo rằng mỗi người xem chủ đề Q được cung cấp duy nhất trong QuickSight. Nó cũng thực thi cài đặt cho mỗi người dùng, chẳng hạn như bảo mật cấp hàng và mặc định động cho các tham số.

Mã ví dụ sau thay mặt người dùng thực hiện xác thực IAM. Mã này chạy trên máy chủ ứng dụng của bạn:

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.quicksight.AmazonQuickSight;
import com.amazonaws.services.quicksight.AmazonQuickSightClientBuilder;
import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForRegisteredUserRequest;
import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForRegisteredUserResult;
import com.amazonaws.services.quicksight.model.RegisteredUserEmbeddingExperienceConfiguration;
import com.amazonaws.services.quicksight.model.RegisteredUserQSearchBarEmbeddingConfiguration; /** * Class to call QuickSight AWS SDK to get url for embedding the Q search bar. */
public class RegisteredUserQSearchBarEmbeddingConfiguration { private final AmazonQuickSight quickSightClient; public RegisteredUserQSearchBarEmbeddingConfiguration() { this.quickSightClient = AmazonQuickSightClientBuilder .standard() .withRegion(Regions.US_EAST_1.getName()) .withCredentials(new AWSCredentialsProvider() { @Override public AWSCredentials getCredentials() { // provide actual IAM access key and secret key here return new BasicAWSCredentials("access-key", "secret-key"); } @Override public void refresh() {} } ) .build(); } public String getQuicksightEmbedUrl( final String accountId, // AWS Account ID final String topicId, // Topic ID to embed final String userArn // Registered user arn to use for embedding. Refer to Get Embed Url section in developer portal to find how to get user arn for a QuickSight user. ) throws Exception { final RegisteredUserEmbeddingExperienceConfiguration experienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration() .withQSearchBar(new RegisteredUserQSearchBarEmbeddingConfiguration().withInitialTopicId(topicId)); final GenerateEmbedUrlForRegisteredUserRequest generateEmbedUrlForRegisteredUserRequest = new GenerateEmbedUrlForRegisteredUserRequest(); generateEmbedUrlForRegisteredUserRequest.setAwsAccountId(accountId); generateEmbedUrlForRegisteredUserRequest.setUserArn(userArn); generateEmbedUrlForRegisteredUserRequest.setExperienceConfiguration(QSearchBar); final GenerateEmbedUrlForRegisteredUserResult generateEmbedUrlForRegisteredUserResult = quickSightClient.generateEmbedUrlForRegisteredUser(generateEmbedUrlForRegisteredUserRequest); return generateEmbedUrlForRegisteredUserResult.getEmbedUrl(); }
}

Để tạo URL mà bạn có thể nhúng vào ứng dụng của mình, hãy gọi GenerateEmbedUrlForRegisteredUser Hoạt động API. URL này có hiệu lực trong 5 phút và phiên kết quả có giá trị trong tối đa 10 giờ. Bạn có thể định cấu hình hiệu lực của phiên bằng cách đặt sessionLifetimeinMinutes tham số cho GenerateEmbedURL API. Hoạt động API cung cấp URL với một auth_code giá trị cho phép một lần đăng nhập trên phiên. Đoạn mã sau hiển thị một phản hồi mẫu từ generate-embed-url-for-registered-user:

//The URL returned is over 900 characters. For this example, we've shortened the string for
//readability and added ellipsis to indicate that it's incomplete.
{ "Status": "200", "EmbedUrl": "https: //dashboards.example.com/embed/620bef10822743fab329fb3751187d2d...", "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713"
} 

Nhúng URL của thanh tìm kiếm Q

Trong bước này, bạn nhúng URL của thanh tìm kiếm Q vào trang web hoặc trang ứng dụng của mình. Bạn có thể thực hiện việc này với SDK nhúng QuickSight, cho phép bạn thực hiện những việc sau:

  • Đặt thanh tìm kiếm Q trên trang HTML
  • Chuyển các tham số vào thanh tìm kiếm Q
  • Xử lý các trạng thái lỗi với các thông báo được tùy chỉnh cho ứng dụng của bạn

Nhúng thanh tìm kiếm Q vào trang web của bạn bằng cách sử dụng SDK nhúng QuickSight hoặc bằng cách thêm URL này vào iFrame. Nếu bạn đặt số chiều cao và chiều rộng cố định (tính bằng pixel), QuickSight sẽ sử dụng những số đó và không thay đổi hình ảnh của bạn khi cửa sổ của bạn thay đổi kích thước. Nếu bạn đặt chiều cao và chiều rộng theo phần trăm tương đối, QuickSight cung cấp bố cục đáp ứng được sửa đổi khi kích thước cửa sổ của bạn thay đổi. Khi bạn sử dụng SDK nhúng QuickSight, thanh tìm kiếm Q trên trang của bạn được thay đổi kích thước động dựa trên trạng thái. Bằng cách sử dụng QuickSight Embedding SDK, bạn cũng có thể kiểm soát các thông số trong thanh tìm kiếm Q và nhận các lệnh gọi lại về hoàn thành tải trang và lỗi.

Mã ví dụ sau đây cho thấy cách sử dụng URL đã tạo. Mã này được tạo trên máy chủ ứng dụng của bạn:

<!DOCTYPE html> <html> <head> <title>QuickSight Q Search Bar Embedding</title> <script src="https://unpkg.com/amazon-quicksight-embedding-sdk@1.18.0/dist/quicksight-embedding-js-sdk.min.js"></script> <script type="text/javascript"> var session function onError(payload) { console.log("Do something when the session fails loading"); } function onOpen() { console.log("Do something when the Q search bar opens"); } function onClose() { console.log("Do something when the Q search bar closes"); } function embedQSearchBar() { var containerDiv = document.getElementById("embeddingContainer"); var options = { url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/dashboardId?isauthcode=true&identityprovider=quicksight&code=authcode", // replace this dummy url with the one generated via embedding API container: containerDiv, width: "1000px", locale: "en-US", qSearchBarOptions: { expandCallback: onOpen, collapseCallback: onClose, iconDisabled: false, topicNameDisabled: false, themeId: 'theme12345', allowTopicSelection: true } }; session = QuickSightEmbedding.embedQSearchBar(options); session.on("error", onError); } function onCountryChange(obj) { session.setParameters({country: obj.value}); } </script> </head> <body onload="embedQSearchBar()"> <div id="embeddingContainer"></div> </body> </html>

Để ví dụ này hoạt động, hãy đảm bảo sử dụng SDK nhúng QuickSight để tải trang tổng quan được nhúng trên trang web của bạn bằng JavaScript. Bạn có thể tải SDK theo những cách sau:

  • Tải xuống SDK nhúng QuickSight từ GitHub. Kho này được duy trì bởi một nhóm các nhà phát triển QuickSight.
  • Tải xuống phiên bản SDK nhúng QuickSight mới nhất từ npmjs.com.
  • Nếu bạn sử dụng npm cho các phụ thuộc JavaScript, hãy tải xuống và cài đặt nó bằng cách chạy lệnh sau:
    npm install amazon-quicksight-embedding-sdk

Ảnh chụp màn hình sau đây là một ví dụ về thanh câu hỏi Q được nhúng và bảng điều khiển QuickSight để hỗ trợ các câu hỏi ngôn ngữ tự nhiên và phân tích dữ liệu thử nghiệm lâm sàng dược phẩm. Bạn có thể thử chủ đề này và các chủ đề khác như vậy trong một ứng dụng nhúng bản demo.

Tổng kết

Doanh nghiệp có thể cho phép người dùng đặt câu hỏi về dữ liệu bằng tiếng Anh đơn giản trong ứng dụng của họ bằng cách nhúng thanh câu hỏi QuickSight Q. Việc nhúng Q vào ứng dụng của bạn rất đơn giản và không yêu cầu nhóm của bạn phát triển tùy chỉnh.

Bắt đầu với một dùng thử miễn phí QuickSight Q.


Về các tác giả

Deepak Murthy là Giám đốc Sản phẩm Cấp cao của Amazon QuickSight, dịch vụ BI được quản lý hoàn toàn, dựa trên đám mây của AWS. Deepak bắt đầu sự nghiệp của mình với Staples, phát triển các giải pháp kho dữ liệu doanh nghiệp. Sau đó, ông là kiến ​​trúc sư của các giải pháp phân tích và kho dữ liệu tại Wells Fargo, AMC và Blackhawk Network. Deepak vui mừng về tiềm năng của phân tích tự phục vụ và cải thiện khả năng truy cập dữ liệu bằng cách cho phép tương tác ngôn ngữ tự nhiên mới với dữ liệu và mong muốn giúp khách hàng tận dụng những cải tiến phân tích mới nhất này.

Rob Foley là Kỹ sư phát triển phần mềm cho Amazon QuickSight, dịch vụ BI được quản lý hoàn toàn, dựa trên đám mây của AWS. Rob bắt đầu sự nghiệp của mình với AWS và đã là thành viên của nhóm QuickSight trong hơn 1.5 năm. Anh ấy có kinh nghiệm phát triển trong nhiều loại dịch vụ và ngăn xếp, chủ yếu làm việc trên các ứng dụng lấy dữ liệu làm trung tâm như Q.

tại chỗ_img

Tin tức mới nhất

tại chỗ_img