Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Integrazione di Amazon Q nell'esperienza di domande e risposte generative di Amazon Quick Sight
| Destinatari: sviluppatori di Amazon Quick Suite |
Nelle sezioni seguenti, puoi trovare informazioni dettagliate su come configurare un'esperienza di domande e risposte generative integrata che utilizzi funzionalità NLQ avanzate fornite da. LLMs L'esperienza Domande e risposte generative è il sostituto consigliato della barra di ricerca Q incorporata e offre agli utenti un'esperienza di BI aggiornata.
Argomenti
Integrazione di Amazon Q nell'esperienza di domande e risposte generative di Amazon Quick Sight per utenti registrati
Nelle sezioni seguenti, puoi trovare informazioni dettagliate su come configurare un'esperienza di domande e risposte generative integrata per gli utenti registrati di Amazon Quick Sight.
Argomenti
Fase 1: Configurazione delle autorizzazioni
Nella sezione seguente, puoi scoprire come configurare autorizzazioni per l'applicazione di backend o server Web per incorporare l'esperienza Domande e risposte generative. Questa attività richiede l'accesso amministrativo a AWS Identity and Access Management (IAM).
Ogni utente che accede a un'esperienza di domande e risposte generative assume un ruolo che gli conferisce l'accesso e le autorizzazioni di Amazon Quick Sight. Per far ciò, crea un ruolo IAM nell' Account AWS. Associa una policy IAM al ruolo per fornire le autorizzazioni a qualsiasi utente che lo assume. Il ruolo IAM deve fornire le autorizzazioni per recuperare l'incorporamento per un pool di utenti specifico. URLs
Con l'aiuto del carattere jolly *, puoi concedere le autorizzazioni per generare un URL per tutti gli utenti in uno spazio dei nomi specifico. Oppure puoi concedere le autorizzazioni per generare un URL per un sottoinsieme di utenti in spazi dei nomi specifici. Per questo, aggiungi quicksight:GenerateEmbedUrlForRegisteredUser.
Puoi creare una condizione nella tua policy IAM che limiti i domini che gli sviluppatori possono elencare nel parametro AllowedDomains di un'operazione API GenerateEmbedUrlForRegisteredUser. Il parametro AllowedDomains è un parametro facoltativo. Offre agli sviluppatori la possibilità di sovrascrivere i domini statici configurati nel menu Manage Amazon Quick Sight e di elencare invece fino a tre domini o sottodomini che possono accedere a un URL generato. Questo URL viene quindi incorporato nel sito web di uno sviluppatore. Solo i domini elencati nel parametro possono accedere all'esperienza Domande e risposte generative incorporata. Senza questa condizione, gli sviluppatori possono elencare nel parametro AllowedDomains qualsiasi dominio su Internet.
Per limitare i domini che gli sviluppatori possono utilizzare con questo parametro, aggiungi una condizione AllowedEmbeddingDomains alla tua policy IAM. Per ulteriori informazioni sul AllowedDomains parametro, consulta GenerateEmbedUrlForRegisteredUserAmazon Quick Sight API Reference.
Queste autorizzazioni sono fornite dalla seguente policy di esempio.
Inoltre, se stai creando utenti alle prime armi che saranno lettori di Amazon Quick Sight, assicurati di aggiungere l'quicksight:RegisterUserautorizzazione nella policy.
La seguente politica di esempio fornisce l'autorizzazione a recuperare un URL di incorporamento per gli utenti alle prime armi che devono essere lettori di Amazon Quick Sight.
Infine, è necessario che all'identità IAM dell'applicazione sia associata una policy di attendibilità per consentire l'accesso al ruolo appena creato. Ciò significa che quando un utente accede alla tua applicazione, quest'ultima può assumere il ruolo per conto dell'utente ed eseguire il provisioning dell'utente in Amazon Quick Sight.
Di seguito è mostrata una policy di attendibilità di esempio.
Per ulteriori informazioni sulle policy di attendibilità per OpenID Connect o l'autenticazione SAML, consulta le sezioni seguenti della Guida per l'utente di IAM:
Fase 2: Generazione dell'URL con il codice di autenticazione allegato
Nella sezione seguente, è possibile scoprire come autenticare l'utente e ottenere l'URL dell'argomento Q incorporabile nel server delle applicazioni. Se prevedi di incorporare l'esperienza di domande e risposte generative per i tipi di identità IAM o Amazon Quick Sight, condividi l'argomento Q con gli utenti.
Quando un utente accede all'applicazione, l'applicazione assume il ruolo IAM per conto dell'utente. Quindi l'app aggiunge l'utente ad Amazon Quick Sight, se quell'utente non esiste già. In seguito, sarà necessario passare un identificatore come l'ID della sessione del ruolo univoco.
L'esecuzione dei passaggi descritti garantisce che ogni visualizzatore dell'argomento Q sia fornito in modo univoco in Amazon Quick Sight. Applica inoltre le impostazioni per utente, ad esempio la sicurezza a livello di riga e le impostazioni predefinite dinamiche per i parametri. La sicurezza a livello di riga basata su tag può essere utilizzata per l'incorporamento della barra Q da parte di utenti anonimi.
Gli esempi seguenti eseguono l'autenticazione IAM per conto dell'utente. Questo codice viene eseguito sul server delle applicazioni.
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.RegisteredUserGenerativeQnAEmbeddingConfiguration; /** * Class to call QuickSight AWS SDK to get url for embedding Generative Q&A experience. */ public class RegisteredUserGenerativeQnAEmbeddingSample { private final AmazonQuickSight quickSightClient; public RegisteredUserGenerativeQnAEmbeddingSample() { this.quickSightClient = AmazonQuickSightClientBuilder .standard() .withRegion(Regions.US_EAST_1.getName()) .withCredentials(new AWS CredentialsProvider() { @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 List<String> allowedDomains, // Runtime allowed domain for embedding 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() .withGenerativeQnA(new RegisteredUserGenerativeQnAEmbeddingConfiguration().withInitialTopicId(topicId)); final GenerateEmbedUrlForRegisteredUserRequest generateEmbedUrlForRegisteredUserRequest = new GenerateEmbedUrlForRegisteredUserRequest(); generateEmbedUrlForRegisteredUserRequest.setAwsAccountId(accountId); generateEmbedUrlForRegisteredUserRequest.setUserArn(userArn); generateEmbedUrlForRegisteredUserRequest.setAllowedDomains(allowedDomains); generateEmbedUrlForRegisteredUserRequest.setExperienceConfiguration(experienceConfiguration); final GenerateEmbedUrlForRegisteredUserResult generateEmbedUrlForRegisteredUserResult = quickSightClient.generateEmbedUrlForRegisteredUser(generateEmbedUrlForRegisteredUserRequest); return generateEmbedUrlForRegisteredUserResult.getEmbedUrl(); } }
Nota
La generazione di URL incorporati APIs non può essere richiamata direttamente dai browser. Fai invece riferimento all'esempio Node.JS.
import json import boto3 from botocore.exceptions import ClientError sts = boto3.client('sts') # Function to generate embedded URL # accountId: AWS account ID # topicId: Topic ID to embed # userArn: arn of registered user # allowedDomains: Runtime allowed domain for embedding # roleArn: IAM user role to use for embedding # sessionName: session name for the roleArn assume role def getEmbeddingURL(accountId, topicId, userArn, allowedDomains, roleArn, sessionName): try: assumedRole = sts.assume_role( RoleArn = roleArn, RoleSessionName = sessionName, ) except ClientError as e: return "Error assuming role: " + str(e) else: assumedRoleSession = boto3.Session( aws_access_key_id = assumedRole['Credentials']['AccessKeyId'], aws_secret_access_key = assumedRole['Credentials']['SecretAccessKey'], aws_session_token = assumedRole['Credentials']['SessionToken'], ) try: quicksightClient = assumedRoleSession.client('quicksight', region_name='us-west-2') response = quicksightClient.generate_embed_url_for_registered_user( AwsAccountId=accountId, ExperienceConfiguration = { 'GenerativeQnA': { 'InitialTopicId': topicId } }, UserArn = userArn, AllowedDomains = allowedDomains, SessionLifetimeInMinutes = 600 ) return { 'statusCode': 200, 'headers': {"Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type"}, 'body': json.dumps(response), 'isBase64Encoded': bool('false') } except ClientError as e: return "Error generating embedding url: " + str(e)
L'esempio seguente mostra JavaScript (Node.js) che è possibile utilizzare sul server dell'app per generare l'URL per la dashboard incorporata. È possibile utilizzare questo URL nel sito web o nell'applicazione per visualizzare il pannello di controllo.
const AWS = require('aws-sdk'); const https = require('https'); var quicksightClient = new AWS.Service({ region: 'us-east-1' }); quicksightClient.generateEmbedUrlForRegisteredUser({ 'AwsAccountId': '111122223333', 'ExperienceConfiguration': { 'GenerativeQnA': { 'InitialTopicId': 'U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f' } }, 'UserArn': 'REGISTERED_USER_ARN', 'AllowedDomains': allowedDomains, 'SessionLifetimeInMinutes': 100 }, function(err, data) { console.log('Errors: '); console.log(err); console.log('Response: '); console.log(data); });
L'esempio seguente mostra il codice .NET/C# che è possibile utilizzare nel server delle applicazioni per ottenere l'URL per la barra di ricerca Q incorporata. È possibile utilizzare questo URL nel sito web o nell'applicazione per visualizzare la barra di ricerca Q.
using System; using Amazon.QuickSight; using Amazon.QuickSight.Model; namespace GenerateGenerativeQnAEmbedUrlForRegisteredUser { class Program { static void Main(string[] args) { var quicksightClient = new AmazonQuickSightClient( AccessKey, SecretAccessKey, SessionToken, Amazon.RegionEndpoint.USEast1); try { RegisteredUserGenerativeQnAEmbeddingConfiguration registeredUserGenerativeQnAEmbeddingConfiguration = new RegisteredUserGenerativeQnAEmbeddingConfiguration { InitialTopicId = "U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f" }; RegisteredUserEmbeddingExperienceConfiguration registeredUserEmbeddingExperienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration { GenerativeQnA = registeredUserGenerativeQnAEmbeddingConfiguration }; Console.WriteLine( quicksightClient.GenerateEmbedUrlForRegisteredUserAsync(new GenerateEmbedUrlForRegisteredUserRequest { AwsAccountId = "111122223333", ExperienceConfiguration = registeredUserEmbeddingExperienceConfiguration, UserArn = "REGISTERED_USER_ARN", AllowedDomains = allowedDomains, SessionLifetimeInMinutes = 100 }).Result.EmbedUrl ); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
Per assumere il ruolo, scegliete una delle seguenti operazioni API AWS Security Token Service (AWS STS):
-
AssumeRole— Utilizzate questa operazione quando utilizzate un'identità IAM per assumere il ruolo.
-
AssumeRoleWithWebIdentity— Utilizzate questa operazione quando utilizzate un provider di identità web per autenticare l'utente.
-
AssumeRoleWithSaml— Utilizza questa operazione quando utilizzi SAML per autenticare i tuoi utenti.
L'esempio seguente mostra il comando dell'interfaccia a riga di comando per impostare il ruolo IAM. Il ruolo deve avere le autorizzazioni abilitate per quicksight:GenerateEmbedUrlForRegisteredUser. Se stai adottando un just-in-time approccio per aggiungere utenti quando utilizzano un argomento nella barra di ricerca Q, anche per il ruolo è necessario abilitare le autorizzazioni. quicksight:RegisterUser
aws sts assume-role \ --role-arn "arn:aws:iam::111122223333:role/embedding_quicksight_q_generative_qna_role" \ --role-session-namejohn.doe@example.com
L'operazione assume-role restituisce tre parametri di output: la chiave di accesso, la chiave segreta e il token della sessione.
Nota
Se si verifica un errore ExpiredToken durante la chiamata all'operazione AssumeRole, vuol dire che il SESSION TOKEN precedente è ancora presente nelle variabili di ambiente. Cancellala impostando le seguenti variabili:
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_CHIAVE_ACCESSO
-
AWS_SESSION_GETTONE
L'esempio seguente mostra come impostare questi tre parametri nell'interfaccia a riga di comando. Per un computer Microsoft Windows, utilizza set invece di export.
export AWS_ACCESS_KEY_ID = "access_key_from_assume_role" export AWS_SECRET_ACCESS_KEY = "secret_key_from_assume_role" export AWS_SESSION_TOKEN = "session_token_from_assume_role"
L'esecuzione di questi comandi imposta l'ID della sessione del ruolo dell'utente che visita la pagina del tuo sito web suembedding_quicksight_q_search_bar_role/john.doe@example.com. L'ID della sessione del ruolo è costituito dal nome del ruolo di role-arn e dal valore role-session-name. L'utilizzo dell'ID della sessione del ruolo univoco per ciascun utente garantisce che le autorizzazioni appropriate siano impostate per ogni utente. Impedisce inoltre il throttling dell'accesso degli utenti. La limitazione è una funzionalità di sicurezza che impedisce allo stesso utente di accedere ad Amazon Quick Sight da più postazioni.
L'ID della sessione del ruolo diventa anche il nome utente in Amazon Quick Sight. Puoi utilizzare questo modello per fornire i tuoi utenti in Amazon Quick Sight in anticipo o per effettuare il provisioning la prima volta che accedono all'esperienza di domande e risposte generative.
L'esempio seguente mostra il comando dell'interfaccia a riga di comando che è possibile utilizzare per effettuare il provisioning di un utente. Per ulteriori informazioni RegisterUsere altre operazioni dell'API Amazon Quick Sight, consulta il riferimento all'API Amazon Quick Sight. DescribeUser
aws quicksight register-user \ --aws-account-id111122223333\ --namespacedefault\ --identity-typeIAM\ --iam-arn "arn:aws:iam::111122223333:role/embedding_quicksight_q_generative_qna_role" \ --user-roleREADER\ --user-namejhnd\ --session-name "john.doe@example.com" \ --emailjohn.doe@example.com\ --regionus-east-1\ --custom-permissions-nameTeamA1
Se l'utente viene autenticato tramite Microsoft AD, non è necessario utilizzare RegisterUser per configurarlo. Dovrebbero invece essere abbonati automaticamente la prima volta che accedono ad Amazon Quick Sight. Per gli utenti Microsoft AD, puoi utilizzare DescribeUser per ottenere il nome della risorsa Amazon (ARN) dell'utente.
La prima volta che un utente accede ad Amazon Quick Sight, puoi anche aggiungere questo utente al gruppo con cui è condivisa la dashboard. L'esempio seguente mostra il comando dell'interfaccia a riga di comando per aggiungere un utente a un gruppo.
aws quicksight create-group-membership \ --aws-account-id111122223333\ --namespacedefault\ --group-namefinanceusers\ --member-name "embedding_quicksight_q_generative_qna_role/john.doe@example.com"
Ora hai un utente della tua app che è anche utente di Amazon Quick Sight e che ha accesso alla dashboard.
Infine, per ottenere un URL provvisto di firma per il pannello di controllo, chiama generate-embed-url-for-registered-user dal server delle applicazioni. Questo restituisce l'URL del pannello di controllo incorporato. L'esempio seguente mostra come generare l'URL per una dashboard incorporata utilizzando una chiamata lato server per utenti autenticati tramite AWS Managed Microsoft AD o Single Sign-On (IAM Identity Center).
aws quicksight generate-embed-url-for-anonymous-user \ --aws-account-id111122223333\ --namespacedefault-or-something-else\ --authorized-resource-arns '["topic-arn-topicId1","topic-arn-topicId2"]' \ --allowed-domains '["domain1","domain2"]' \ --experience-configuration 'GenerativeQnA={InitialTopicId="topicId1"}' \ --session-tags '["Key":tag-key-1,"Value":tag-value-1,{"Key":tag-key-1,"Value":tag-value-1}]' \ --session-lifetime-in-minutes15
Per ulteriori informazioni sull'utilizzo di questa operazione, consulta GenerateEmbedUrlForRegisteredUser. Puoi utilizzare questa API e altre operazioni nel tuo codice.
Passaggio 3: Incorporare l'URL dell'esperienza Domande e risposte generative
Nella sezione seguente, puoi scoprire come incorporare l'URL dell'esperienza Domande e risposte generative nella pagina del sito web o dell'applicazione. Puoi farlo con l'SDK di incorporamento di Amazon Quick Sight
-
Posiziona l'esperienza Domande e risposte generative su una pagina HTML.
-
Personalizza il layout e l'aspetto dell'esperienza incorporata per adattarla alle esigenze delle tue applicazioni.
-
Gestisci stati di errore con messaggi personalizzati per l'applicazione.
Chiama l'operazione API GenerateEmbedUrlForRegisteredUser per generare l'URL da incorporare nell'applicazione. Questo URL è valido per 5 minuti, mentre la sessione risultante è valida per 10 ore. L'operazione API fornisce l'URL con un valore auth_code che consente una sessione di single sign-on.
Di seguito viene mostrata una risposta di esempio da 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://quicksightdomain/embedding/12345/q/search...", "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713" }
Incorpora l'esperienza di domande e risposte generative nella tua pagina web utilizzando l'SDK di incorporamento Amazon Quick Sight o aggiungendo questo
Assicurati che il dominio su cui ospitare l'esperienza di domande e risposte generative incorporata sia nell'elenco dei domini consentiti, l'elenco dei domini approvati per il tuo abbonamento Amazon Quick Sight. Questo requisito protegge i tuoi dati impedendo ai domini non approvati di ospitare pannelli di controllo incorporati. Per ulteriori informazioni sull'aggiunta di domini per un'esperienza Domande e risposte generative incorporata, consulta Gestione dei domini.
Puoi utilizzare Amazon Quick Sight Embedding SDK per personalizzare il layout e l'aspetto dell'esperienza di domande e risposte generative incorporata in base alla tua applicazione. Utilizza la proprietà panelType per configurare lo stato di destinazione dell'esperienza Domande e risposte generative quando viene visualizzata nella tua applicazione. Imposta la proprietà panelType su 'FULL' per visualizzare l'intero pannello dell'esperienza Domande e risposte generative. Questo pannello è simile all'esperienza degli utenti di Amazon Quick Sight nella console Amazon Quick Sight. L'altezza della cornice del pannello non viene modificata in base all'interazione dell'utente e rispetta il valore impostato nella proprietà frameOptions.height. L'immagine seguente mostra il pannello dell'esperienza di domande e risposte generative che viene renderizzato quando imposti il valore panelType su 'FULL'.
Imposta la proprietà panelType su 'SEARCH_BAR' per rendere l'esperienza di domande e risposte generative come barra di ricerca. Questa barra di ricerca è simile al modo in cui viene visualizzata la barra di ricerca Q quando è incorporata in un'applicazione. La barra di ricerca di Domande e risposte generative si espande in un pannello più grande che mostra le opzioni di selezione degli argomenti, l'elenco dei suggerimenti di domande, il pannello delle risposte o la bacheca.
L'altezza minima predefinita della barra di ricerca di Domande e risposte generative viene visualizzata al caricamento delle risorse incorporate. Si consiglia di impostare il valore frameOptions.height su "38px" per ottimizzare l'esperienza della barra di ricerca. Utilizza la proprietà focusedHeight per impostare la dimensione ottimale del menu a discesa per la selezione degli argomenti e dell'elenco di suggerimenti per le domande. Utilizza la proprietà expandedHeight per impostare la dimensione ottimale del pannello delle risposte e della bacheca. Se sceglie l'opzione 'SEARCH_BAR', si consiglia di assegnare al container padre lo stile position; lo stile absolute è per evitare spostamenti indesiderati del contenuto nell'applicazione. L'immagine seguente mostra la barra di ricerca dell'esperienza di domande e risposte generative che viene renderizzato quando imposti il valore panelType su 'SEARCH_BAR'.
Dopo aver configurato la panelType proprietà, utilizza l'SDK di incorporamento Amazon Quick Sight per personalizzare le seguenti proprietà dell'esperienza di domande e risposte generative.
-
Il titolo del pannello Domande e risposte generative (si applica solo all'opzione
panelType: FULL). -
Il testo del segnaposto della barra di ricerca.
-
Se la selezione dell'argomento è consentita.
-
Se i nomi degli argomenti sono visualizzati o nascosti.
-
Se l'icona di Amazon Q è visualizzata o nascosta (si applica solo all'opzione
panelType: FULL). -
Se la bacheca è visualizzata o nascosta.
-
Se gli utenti possono ingrandire il pannello Domande e risposte generative a tutto schermo.
-
Il tema del pannello Domande e risposte generative. È possibile passare un ARN del tema personalizzato nell'SDK per modificare l'aspetto del contenuto del riquadro. I temi iniziali di Amazon Quick Sight non sono supportati per i pannelli di BI generativa incorporati. Per utilizzare un tema iniziale di Amazon Quick Sight, salvalo come tema personalizzato in Amazon Quick Sight.
Quando usi Amazon Quick Sight Embedding SDK, l'esperienza di domande e risposte generative sulla tua pagina viene ridimensionata dinamicamente in base allo stato. Utilizzando Amazon Quick Sight Embedding SDK, puoi anche controllare i parametri all'interno dell'esperienza di domande e risposte generative e ricevere callback in termini di completamento del caricamento della pagina, modifiche di stato ed errori.
Il seguente esempio illustra come utilizzare l'URL generato. Questo codice viene generato sul server delle applicazioni.
<!DOCTYPE html> <html> <head> <title>Generative Q&A Embedding Example</title> <script src="https://unpkg.com/amazon-quicksight-embedding-sdk@2.7.0/dist/quicksight-embedding-js-sdk.min.js"></script> <script type="text/javascript"> const embedGenerativeQnA = async() => { const {createEmbeddingContext} = QuickSightEmbedding; const embeddingContext = await createEmbeddingContext({ onChange: (changeEvent, metadata) => { console.log('Context received a change', changeEvent, metadata); }, }); const frameOptions = { url: "<YOUR_EMBED_URL>", // replace this value with the url generated via embedding API container: '#experience-container', height: "700px", width: "1000px", onChange: (changeEvent, metadata) => { switch (changeEvent.eventName) { case 'FRAME_MOUNTED': { console.log("Do something when the experience frame is mounted."); break; } case 'FRAME_LOADED': { console.log("Do something when the experience frame is loaded."); break; } } }, }; const contentOptions = { // Optional panel settings. Default behavior is equivalent to {panelType: 'FULL'} panelOptions: { panelType: 'FULL', title: 'custom title', // Optional showQIcon: false, // Optional, Default: true }, // Use SEARCH_BAR panel type for the landing state to be similar to embedQSearchBar // with generative capability enabled topics /* panelOptions: { panelType: 'SEARCH_BAR', focusedHeight: '250px', expandedHeight: '500px', }, */ showTopicName: false, // Optional, Default: true showPinboard: false, // Optional, Default: true allowTopicSelection: false, // Optional, Default: true allowFullscreen: false, // Optional, Default: true searchPlaceholderText: "custom search placeholder", // Optional themeOptions: { // Optional themeArn: 'arn:aws:quicksight:<Region>:<AWS-Account-ID>:theme/<Theme-ID>' } onMessage: async (messageEvent, experienceMetadata) => { switch (messageEvent.eventName) { case 'Q_SEARCH_OPENED': { // called when pinboard is shown / visuals are rendered console.log("Do something when SEARCH_BAR type panel is expanded"); break; } case 'Q_SEARCH_FOCUSED': { // called when question suggestions or topic selection dropdown are shown console.log("Do something when SEARCH_BAR type panel is focused"); break; } case 'Q_SEARCH_CLOSED': { // called when shrinked to initial bar height console.log("Do something when SEARCH_BAR type panel is collapsed"); break; } case 'Q_PANEL_ENTERED_FULLSCREEN': { console.log("Do something when panel enters full screen mode"); break; } case 'Q_PANEL_EXITED_FULLSCREEN': { console.log("Do something when panel exits full screen mode"); break; } case 'CONTENT_LOADED': { console.log("Do something after experience is loaded"); break; } case 'ERROR_OCCURRED': { console.log("Do something when experience fails to load"); break; } } } }; const embeddedGenerativeQnExperience = await embeddingContext.embedGenerativeQnA(frameOptions, contentOptions); }; </script> </head> <body onload="embedGenerativeQnA()"> <div id="experience-container"></div> </body> </html>
Affinché questo esempio funzioni, assicurati di utilizzare l'SDK Amazon Quick Sight Embedding per caricare l'esperienza di domande e risposte generative incorporata sul tuo sito web. JavaScript Per ottenere la tua copia, procedi in uno dei seguenti modi:
-
Scarica l'SDK di incorporamento Amazon Quick Sight da.
GitHub Questo repository è gestito da un gruppo di sviluppatori Amazon Quick Sight. -
Scarica l'ultima versione dell'SDK di incorporamento da. https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
-
Se lo utilizzi
npmper JavaScript le dipendenze, scaricalo e installalo eseguendo il comando seguente.npm install amazon-quicksight-embedding-sdk
Funzionalità facoltative incorporate per l'esperienza di domande e risposte generative
Le seguenti funzionalità facoltative sono disponibili per l'esperienza Domande e risposte generative incorporata utilizzando l'SDK di incorporamento.
Invocare le azioni della barra di ricerca di Domande e risposte generative
-
Imposta una domanda: questa funzionalità invia una domanda all'esperienza Domande e risposte generative e interroga immediatamente la domanda.
embeddedGenerativeQnExperience.setQuestion('show me monthly revenue'); -
Chiudi il pannello delle risposte (si applica all'opzione della barra di ricerca Domande e risposte generative): questa funzionalità chiude il pannello delle risposte e riporta l'iframe allo stato originale della barra di ricerca.
embeddedGenerativeQnExperience.close();
Per ulteriori informazioni, consulta l'SDK di incorporamento di Amazon Quick Sight
Integrazione di Amazon Q nell'esperienza di domande e risposte generative di Quick Suite per utenti anonimi (non registrati)
| Destinatari: sviluppatori di Amazon Quick Suite |
Nelle sezioni seguenti sono riportate le informazioni dettagliate su come configurare un'esperienza Domande e risposte generative incorporata per gli utenti anonimi (non registrati).
Argomenti
Fase 1: Configurazione delle autorizzazioni
Nella sezione seguente, puoi scoprire come configurare autorizzazioni per l'applicazione di backend o server Web per incorporare l'esperienza Domande e risposte generative. Questa attività richiede l'accesso amministrativo a AWS Identity and Access Management (IAM).
Ogni utente che accede a un'esperienza di domande e risposte generative assume un ruolo che gli conferisce l'accesso e le autorizzazioni di Amazon Quick Sight. Per far ciò, crea un ruolo IAM nell' Account AWS. Associa una policy IAM al ruolo per fornire le autorizzazioni a qualsiasi utente che lo assume. Il ruolo IAM deve fornire le autorizzazioni per recuperare l'incorporamento per un pool di utenti specifico. URLs
Con l'aiuto del carattere jolly *, puoi concedere le autorizzazioni per generare un URL per tutti gli utenti in uno spazio dei nomi specifico. Oppure puoi concedere le autorizzazioni per generare un URL per un sottoinsieme di utenti in spazi dei nomi specifici. Per questo, aggiungi quicksight:GenerateEmbedUrlForAnonymousUser.
Puoi creare una condizione nella tua policy IAM che limiti i domini che gli sviluppatori possono elencare nel parametro AllowedDomains di un'operazione API GenerateEmbedUrlForAnonymousUser. Il parametro AllowedDomains è un parametro facoltativo. Offre agli sviluppatori la possibilità di sovrascrivere i domini statici configurati nel menu Manage Amazon Quick Sight e di elencare invece fino a tre domini o sottodomini che possono accedere a un URL generato. Questo URL viene quindi incorporato nel sito web di uno sviluppatore. Solo i domini elencati nel parametro possono accedere alla barra di ricerca Q incorporata. Senza questa condizione, gli sviluppatori possono elencare nel parametro AllowedDomains qualsiasi dominio su Internet.
Per limitare i domini che gli sviluppatori possono utilizzare con questo parametro, aggiungi una condizione AllowedEmbeddingDomains alla tua policy IAM. Per ulteriori informazioni sul AllowedDomains parametro, consulta GenerateEmbedUrlForAnonymousUserAmazon Quick Sight API Reference.
È necessario che all'identità IAM dell'applicazione sia associata una policy di attendibilità per consentire l'accesso al ruolo appena creato. Ciò significa che, quando un utente accede all'applicazione, l'applicazione può assumere quel ruolo per conto dell'utente per caricare l'esperienza Domande e risposte generative. Di seguito è mostrata una policy di attendibilità di esempio.
Per ulteriori informazioni sulle policy di attendibilità, consulta Credenziali di sicurezza provvisorie in IAM nella Guida per l'utente di IAM.
Fase 2: Generazione dell'URL con il codice di autenticazione allegato
Nella sezione seguente, è possibile scoprire come autenticare l'utente e ottenere l'URL dell'argomento Q incorporabile nel server delle applicazioni.
Quando un utente accede all'applicazione, l'applicazione assume il ruolo IAM per conto dell'utente. Quindi l'app aggiunge l'utente ad Amazon Quick Sight, se quell'utente non esiste già. In seguito, sarà necessario passare un identificatore come l'ID della sessione del ruolo univoco.
import java.util.List; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.regions.Regions; import com.amazonaws.services.quicksight.AmazonQuickSight; import com.amazonaws.services.quicksight.AmazonQuickSightClientBuilder; import com.amazonaws.services.quicksight.model.AnonymousUserGenerativeQnAEmbeddingConfiguration; import com.amazonaws.services.quicksight.model.AnonymousUserEmbeddingExperienceConfiguration; import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForAnonymousUserRequest; import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForAnonymousUserResult; import com.amazonaws.services.quicksight.model.SessionTag; /** * Class to call QuickSight AWS SDK to generate embed url for anonymous user. */ public class GenerateEmbedUrlForAnonymousUserExample { private final AmazonQuickSight quickSightClient; public GenerateEmbedUrlForAnonymousUserExample() { 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 GenerateEmbedUrlForAnonymousUser( final String accountId, // YOUR AWS ACCOUNT ID final String initialTopicId, // Q TOPIC ID TO WHICH THE CONSTRUCTED URL POINTS AND EXPERIENCE PREPOPULATES INITIALLY final String namespace, // ANONYMOUS EMBEDDING REQUIRES SPECIFYING A VALID NAMESPACE FOR WHICH YOU WANT THE EMBEDDING URL final List<String> authorizedResourceArns, // Q TOPIC ARN LIST TO EMBED final List<String> allowedDomains, // RUNTIME ALLOWED DOMAINS FOR EMBEDDING final List<SessionTag> sessionTags // SESSION TAGS USED FOR ROW-LEVEL SECURITY ) throws Exception { AnonymousUserEmbeddingExperienceConfiguration experienceConfiguration = new AnonymousUserEmbeddingExperienceConfiguration(); AnonymousUserGenerativeQnAEmbeddingConfiguration generativeQnAConfiguration = new AnonymousUserGenerativeQnAEmbeddingConfiguration(); generativeQnAConfiguration.setInitialTopicId(initialTopicId); experienceConfiguration.setGenerativeQnA(generativeQnAConfiguration); GenerateEmbedUrlForAnonymousUserRequest generateEmbedUrlForAnonymousUserRequest = new GenerateEmbedUrlForAnonymousUserRequest() .withAwsAccountId(accountId) .withNamespace(namespace) .withAuthorizedResourceArns(authorizedResourceArns) .withExperienceConfiguration(experienceConfiguration) .withSessionTags(sessionTags) .withSessionLifetimeInMinutes(600L); // OPTIONAL: VALUE CAN BE [15-600]. DEFAULT: 600 .withAllowedDomains(allowedDomains); GenerateEmbedUrlForAnonymousUserResult result = quickSightClient.generateEmbedUrlForAnonymousUser(generateEmbedUrlForAnonymousUserRequest); return result.getEmbedUrl(); } }
Nota
La generazione di URL da APIs incorporare non può essere richiamata direttamente dai browser. Fai invece riferimento all'esempio Node.JS.
import json import boto3 from botocore.exceptions import ClientError import time # Create QuickSight and STS clients quicksightClient = boto3.client('quicksight',region_name='us-west-2') sts = boto3.client('sts') # Function to generate embedded URL for anonymous user # accountId: YOUR AWS ACCOUNT ID # topicId: Topic ID to embed # quicksightNamespace: VALID NAMESPACE WHERE YOU WANT TO DO NOAUTH EMBEDDING # authorizedResourceArns: TOPIC ARN LIST TO EMBED # allowedDomains: RUNTIME ALLOWED DOMAINS FOR EMBEDDING # sessionTags: SESSION TAGS USED FOR ROW-LEVEL SECURITY def generateEmbedUrlForAnonymousUser(accountId, quicksightNamespace, authorizedResourceArns, allowedDomains, sessionTags): try: response = quicksightClient.generate_embed_url_for_anonymous_user( AwsAccountId = accountId, Namespace = quicksightNamespace, AuthorizedResourceArns = authorizedResourceArns, AllowedDomains = allowedDomains, ExperienceConfiguration = { 'GenerativeQnA': { 'InitialTopicId': topicId } }, SessionTags = sessionTags, SessionLifetimeInMinutes = 600 ) return { 'statusCode': 200, 'headers': {"Access-Control-Allow-Origin": "*", "Access-Control-Allow-Headers": "Content-Type"}, 'body': json.dumps(response), 'isBase64Encoded': bool('false') } except ClientError as e: print(e) return "Error generating embeddedURL: " + str(e)
L'esempio seguente mostra JavaScript (Node.js) che è possibile utilizzare sul server dell'app per generare l'URL per la dashboard incorporata. È possibile utilizzare questo URL nel sito web o nell'applicazione per visualizzare il pannello di controllo.
const AWS = require('aws-sdk'); const https = require('https'); var quicksightClient = new AWS.Service({ region: 'us-east-1', }); quicksightClient.generateEmbedUrlForAnonymousUser({ 'AwsAccountId': '111122223333', 'Namespace': 'DEFAULT' 'AuthorizedResourceArns': '["topic-arn-topicId1","topic-arn-topicId2"]', 'AllowedDomains': allowedDomains, 'ExperienceConfiguration': { 'GenerativeQnA': { 'InitialTopicId': 'U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f' } }, 'SessionTags': '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]', 'SessionLifetimeInMinutes': 15 }, function(err, data) { console.log('Errors: '); console.log(err); console.log('Response: '); console.log(data); });
L'esempio seguente mostra il codice .NET/C# che è possibile utilizzare nel server delle applicazioni per ottenere l'URL per la barra di ricerca Q incorporata. È possibile utilizzare questo URL nel sito web o nell'applicazione per visualizzare la barra di ricerca Q.
using System; using Amazon.QuickSight; using Amazon.QuickSight.Model; namespace GenerateGenerativeQnAEmbedUrlForAnonymousUser { class Program { static void Main(string[] args) { var quicksightClient = new AmazonQuickSightClient( AccessKey, SecretAccessKey, SessionToken, Amazon.RegionEndpoint.USEast1); try { AnonymousUserGenerativeQnAEmbeddingConfiguration anonymousUserGenerativeQnAEmbeddingConfiguration = new AnonymousUserGenerativeQnAEmbeddingConfiguration { InitialTopicId = "U4zJMVZ2n2stZflc8Ou3iKySEb3BEV6f" }; AnonymousUserEmbeddingExperienceConfiguration anonymousUserEmbeddingExperienceConfiguration = new AnonymousUserEmbeddingExperienceConfiguration { GenerativeQnA = anonymousUserGenerativeQnAEmbeddingConfiguration }; Console.WriteLine( quicksightClient.GenerateEmbedUrlForAnonymousUserAsync(new GenerateEmbedUrlForAnonymousUserRequest { AwsAccountId = "111122223333", Namespace = "DEFAULT", AuthorizedResourceArns '["topic-arn-topicId1","topic-arn-topicId2"]', AllowedDomains = allowedDomains, ExperienceConfiguration = anonymousUserEmbeddingExperienceConfiguration, SessionTags = '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]', SessionLifetimeInMinutes = 15, }).Result.EmbedUrl ); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }
Per assumere il ruolo, scegliete una delle seguenti operazioni API AWS Security Token Service (AWS STS):
-
AssumeRole— Utilizzate questa operazione quando utilizzate un'identità IAM per assumere il ruolo.
-
AssumeRoleWithWebIdentity— Utilizzate questa operazione quando utilizzate un provider di identità web per autenticare l'utente.
-
AssumeRoleWithSaml— Utilizza questa operazione quando utilizzi SAML per autenticare i tuoi utenti.
L'esempio seguente mostra il comando dell'interfaccia a riga di comando per impostare il ruolo IAM. Il ruolo deve avere le autorizzazioni abilitate per quicksight:GenerateEmbedUrlForAnonymousUser.
aws sts assume-role \ --role-arn "arn:aws:iam::111122223333:role/embedding_quicksight_generative_qna_role" \ --role-session-nameanonymous caller
L'operazione assume-role restituisce tre parametri di output: la chiave di accesso, la chiave segreta e il token della sessione.
Nota
Se si verifica un errore ExpiredToken durante la chiamata all'operazione AssumeRole, vuol dire che il SESSION TOKEN precedente è ancora presente nelle variabili di ambiente. Cancellala impostando le seguenti variabili:
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_CHIAVE_ACCESSO
-
AWS_SESSION_GETTONE
L'esempio seguente mostra come impostare questi tre parametri nell'interfaccia a riga di comando. Per un computer Microsoft Windows, utilizza set invece di export.
export AWS_ACCESS_KEY_ID = "access_key_from_assume_role" export AWS_SECRET_ACCESS_KEY = "secret_key_from_assume_role" export AWS_SESSION_TOKEN = "session_token_from_assume_role"
L'esecuzione di questi comandi imposta l'ID della sessione del ruolo dell'utente che visita la pagina del tuo sito web suembedding_quicksight_q_search_bar_role/QuickSightEmbeddingAnonymousPolicy. L'ID della sessione del ruolo è costituito dal nome del ruolo di role-arn e dal valore role-session-name. L'utilizzo dell'ID della sessione del ruolo univoco per ciascun utente garantisce che le autorizzazioni appropriate siano impostate per ogni utente. Impedisce inoltre il throttling dell'accesso degli utenti. La limitazione è una funzionalità di sicurezza che impedisce allo stesso utente di accedere ad Amazon Quick Sight da più postazioni. Inoltre, mantiene ogni sessione separata e distinta. Se utilizzi una serie di server Web, ad esempio per il bilanciamento del carico, e una sessione viene ricollegata a un server diverso, viene avviata una nuova sessione.
Per ottenere un URL firmato per il pannello di controllo, chiama generate-embed-url-for-anynymous-user dal server delle applicazioni. Questo restituisce l'URL del pannello di controllo incorporato. L'esempio seguente mostra come generare l'URL per un pannello di controllo incorporato utilizzando una chiamata lato server per gli utenti che effettuano visite anonime al portale Web o all'applicazione.
aws quicksight generate-embed-url-for-anonymous-user \ --aws-account-id111122223333\ --namespacedefault-or-something-else\ --authorized-resource-arns '["topic-arn-topicId","topic-arn-topicId2"]' \ --allowed-domains '["domain1","domain2"]' \ --experience-configuration 'GenerativeQnA={InitialTopicId="topicId1"}' \ --session-tags '["Key": tag-key-1,"Value": tag-value-1,{"Key": tag-key-1,"Value": tag-value-1}]' \ --session-lifetime-in-minutes15
Per ulteriori informazioni sull'utilizzo di questa operazione, consulta GenerateEmbedUrlForAnonymousUser. Puoi utilizzare questa API e altre operazioni nel tuo codice.
Passaggio 3: Incorporare l'URL dell'esperienza Domande e risposte generative
Nella sezione seguente, puoi scoprire come incorporare l'URL dell'esperienza Domande e risposte generative nella pagina del sito web o dell'applicazione. Puoi farlo con l'SDK di incorporamento di Amazon Quick Sight
-
Posiziona l'esperienza Domande e risposte generative su una pagina HTML.
-
Personalizza il layout e l'aspetto dell'esperienza incorporata per adattarla alle esigenze delle tue applicazioni.
-
Gestisci stati di errore con messaggi personalizzati per l'applicazione.
Chiama l'operazione API GenerateEmbedUrlForAnonymousUser per generare l'URL da incorporare nell'applicazione. Questo URL è valido per 5 minuti, mentre la sessione risultante è valida per 10 ore. L'operazione API fornisce l'URL con un valore auth_code che consente una sessione di single sign-on.
Di seguito viene mostrata una risposta di esempio da generate-embed-url-for-anonymous-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://quicksightdomain/embedding/12345/q/search...", "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713" }
Incorpora l'esperienza di domande e risposte generative nella tua pagina web con l'SDK di incorporamento Amazon Quick Sight o aggiungendo questo
Assicurati che il dominio per ospitare l'esperienza di domande e risposte generative sia nell'elenco dei domini consentiti, l'elenco dei domini approvati per il tuo abbonamento Amazon Quick Sight. Questo requisito protegge i tuoi dati impedendo ai domini non approvati di ospitare l'esperienza Domande e risposte generative incorporata. Per ulteriori informazioni sull'aggiunta di domini per un'esperienza Domande e risposte generative incorporata, consulta Gestione dei domini.
Puoi utilizzare Amazon Quick Sight Embedding SDK per personalizzare il layout e l'aspetto dell'esperienza di domande e risposte generative incorporata in base alla tua applicazione. Utilizza la proprietà panelType per configurare lo stato di destinazione dell'esperienza Domande e risposte generative quando viene visualizzata nella tua applicazione. Imposta la proprietà panelType su 'FULL' per visualizzare l'intero pannello dell'esperienza Domande e risposte generative. Questo pannello è simile all'esperienza degli utenti di Amazon Quick Sight nella console Amazon Quick Sight. L'altezza della cornice del pannello non viene modificata in base all'interazione dell'utente e rispetta il valore impostato nella proprietà frameOptions.height. L'immagine seguente mostra il pannello dell'esperienza di domande e risposte generative che viene renderizzato quando imposti il valore panelType su 'FULL'.
Imposta la proprietà panelType su 'SEARCH_BAR' per rendere l'esperienza di domande e risposte generative come barra di ricerca. Questa barra di ricerca è simile al modo in cui viene visualizzata la barra di ricerca Q quando è incorporata in un'applicazione. La barra di ricerca di Domande e risposte generative si espande in un pannello più grande che mostra le opzioni di selezione degli argomenti, l'elenco dei suggerimenti di domande, il pannello delle risposte o la bacheca.
L'altezza minima predefinita della barra di ricerca di Domande e risposte generative viene visualizzata al caricamento delle risorse incorporate. Si consiglia di impostare il valore frameOptions.height su "38px" per ottimizzare l'esperienza della barra di ricerca. Utilizza la proprietà focusedHeight per impostare la dimensione ottimale del menu a discesa per la selezione degli argomenti e dell'elenco di suggerimenti per le domande. Utilizza la proprietà expandedHeight per impostare la dimensione ottimale del pannello delle risposte e della bacheca. Se sceglie l'opzione 'SEARCH_BAR', si consiglia di assegnare al container padre lo stile position; lo stile absolute è per evitare spostamenti indesiderati del contenuto nell'applicazione. L'immagine seguente mostra la barra di ricerca dell'esperienza di domande e risposte generative che viene renderizzato quando imposti il valore panelType su 'SEARCH_BAR'.
Dopo aver configurato la panelType proprietà, utilizza l'SDK di incorporamento Amazon Quick Sight per personalizzare le seguenti proprietà dell'esperienza di domande e risposte generative.
-
Il titolo del pannello Domande e risposte generative (si applica solo all'opzione
panelType: FULL). -
Il testo del segnaposto della barra di ricerca.
-
Se la selezione dell'argomento è consentita.
-
Se i nomi degli argomenti sono visualizzati o nascosti.
-
Se l'icona di Amazon Q è visualizzata o nascosta (si applica solo all'opzione
panelType: FULL). -
Se la bacheca è visualizzata o nascosta.
-
Se gli utenti possono ingrandire il pannello Domande e risposte generative a tutto schermo.
-
Il tema del pannello Domande e risposte generative. È possibile passare un ARN del tema personalizzato nell'SDK per modificare l'aspetto del contenuto del riquadro. I temi iniziali di Amazon Quick Sight non sono supportati per i pannelli di BI generativa incorporati. Per utilizzare un tema iniziale di Amazon Quick Sight, salvalo come tema personalizzato in Amazon Quick Sight.
Quando usi Amazon Quick Sight Embedding SDK, l'esperienza di domande e risposte generative sulla tua pagina viene ridimensionata dinamicamente in base allo stato. Con Amazon Quick Sight Embedding SDK, puoi anche controllare i parametri nell'ambito dell'esperienza di domande e risposte generative e ricevere richiami in termini di completamento del caricamento della pagina, modifiche di stato ed errori.
Il seguente esempio illustra come utilizzare l'URL generato. Questo codice viene generato sul server delle applicazioni.
<!DOCTYPE html> <html> <head> <title>Generative Q&A Embedding Example</title> <script src="https://unpkg.com/amazon-quicksight-embedding-sdk@2.7.0/dist/quicksight-embedding-js-sdk.min.js"></script> <script type="text/javascript"> const embedGenerativeQnA = async() => { const {createEmbeddingContext} = QuickSightEmbedding; const embeddingContext = await createEmbeddingContext({ onChange: (changeEvent, metadata) => { console.log('Context received a change', changeEvent, metadata); }, }); const frameOptions = { url: "<YOUR_EMBED_URL>", // replace this value with the url generated via embedding API container: '#experience-container', height: "700px", width: "1000px", onChange: (changeEvent, metadata) => { switch (changeEvent.eventName) { case 'FRAME_MOUNTED': { console.log("Do something when the experience frame is mounted."); break; } case 'FRAME_LOADED': { console.log("Do something when the experience frame is loaded."); break; } } }, }; const contentOptions = { // Optional panel settings. Default behavior is equivalent to {panelType: 'FULL'} panelOptions: { panelType: 'FULL', title: 'custom title', // Optional showQIcon: false, // Optional, Default: true }, // Use SEARCH_BAR panel type for the landing state to be similar to embedQSearchBar // with generative capability enabled topics /* panelOptions: { panelType: 'SEARCH_BAR', focusedHeight: '250px', expandedHeight: '500px', }, */ showTopicName: false, // Optional, Default: true showPinboard: false, // Optional, Default: true allowTopicSelection: false, // Optional, Default: true allowFullscreen: false, // Optional, Default: true searchPlaceholderText: "custom search placeholder", // Optional themeOptions: { // Optional themeArn: 'arn:aws:quicksight:<Region>:<AWS-Account-ID>:theme/<Theme-ID>' } onMessage: async (messageEvent, experienceMetadata) => { switch (messageEvent.eventName) { case 'Q_SEARCH_OPENED': { // called when pinboard is shown / visuals are rendered console.log("Do something when SEARCH_BAR type panel is expanded"); break; } case 'Q_SEARCH_FOCUSED': { // called when question suggestions or topic selection dropdown are shown console.log("Do something when SEARCH_BAR type panel is focused"); break; } case 'Q_SEARCH_CLOSED': { // called when shrinked to initial bar height console.log("Do something when SEARCH_BAR type panel is collapsed"); break; } case 'Q_PANEL_ENTERED_FULLSCREEN': { console.log("Do something when panel enters full screen mode"); break; } case 'Q_PANEL_EXITED_FULLSCREEN': { console.log("Do something when panel exits full screen mode"); break; } case 'CONTENT_LOADED': { console.log("Do something after experience is loaded"); break; } case 'ERROR_OCCURRED': { console.log("Do something when experience fails to load"); break; } } } }; const embeddedGenerativeQnExperience = await embeddingContext.embedGenerativeQnA(frameOptions, contentOptions); }; </script> </head> <body onload="embedGenerativeQnA()"> <div id="experience-container"></div> </body> </html>
Affinché questo esempio funzioni, assicurati di utilizzare l'SDK Amazon Quick Sight Embedding per caricare l'esperienza di domande e risposte generative incorporata sul tuo sito web. JavaScript Per ottenere la tua copia, procedi in uno dei seguenti modi:
-
Scarica l'SDK di incorporamento Amazon Quick Sight da.
GitHub Questo repository è gestito da un gruppo di sviluppatori Amazon Quick Sight. -
Scarica l'ultima versione dell'SDK di incorporamento da. https://www.npmjs.com/package/amazon-quicksight-embedding-sdk
-
Se lo utilizzi
npmper JavaScript le dipendenze, scaricalo e installalo eseguendo il comando seguente.npm install amazon-quicksight-embedding-sdk
Funzionalità facoltative incorporate per l'esperienza di domande e risposte generative
Le seguenti funzionalità facoltative sono disponibili per l'esperienza Domande e risposte generative incorporata utilizzando l'SDK di incorporamento.
Invocare le azioni della barra di ricerca di Domande e risposte generative
-
Imposta una domanda: questa funzionalità invia una domanda all'esperienza Domande e risposte generative e interroga immediatamente la domanda.
embeddedGenerativeQnExperience.setQuestion('show me monthly revenue'); -
Chiudi il pannello delle risposte (si applica all'opzione della barra di ricerca Domande e risposte generative): questa funzionalità chiude il pannello delle risposte e riporta l'iframe allo stato originale della barra di ricerca.
embeddedGenerativeQnExperience.close();
Per ulteriori informazioni, consulta l'SDK di incorporamento di Amazon Quick Sight