Ajouter des questions fréquemment posées (FAQs) à un index - Amazon Kendra

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ajouter des questions fréquemment posées (FAQs) à un index

Note

La prise en charge des fonctionnalités varie en fonction du type d'index et de la recherche API utilisés. Pour savoir si cette fonctionnalité est prise en charge pour le type d'index et la recherche que API vous utilisez, consultez la section Types d'index.

Vous pouvez ajouter des questions fréquemment posées (FAQs) directement à votre index à l'aide de la console ou du CreateFaqAPI. L'ajout FAQs à un index est une opération asynchrone. Vous placez les données correspondantes FAQ dans un fichier que vous stockez dans un Amazon Simple Storage Service bucket. Vous pouvez utiliser CSV nos JSON fichiers comme entrée pour FAQ :

  • CSVBasic : CSV fichier dans lequel chaque ligne contient une question, une réponse et une source facultativeURI.

  • Personnalisé CSV : CSV fichier contenant des questions, des réponses et des en-têtes pour des champs/attributs personnalisés que vous pouvez utiliser pour facetter, afficher ou trier les réponses. FAQ Vous pouvez également définir des champs de contrôle d'accès pour limiter la FAQ réponse à certains utilisateurs et groupes autorisés à voir la FAQ réponse.

  • JSON—Un JSON fichier contenant des questions, des réponses et des champs/attributs personnalisés que vous pouvez utiliser pour facetter, afficher ou trier les réponses. FAQ Vous pouvez également définir des champs de contrôle d'accès pour limiter la FAQ réponse à certains utilisateurs et groupes autorisés à voir la FAQ réponse.

Par exemple, ce qui suit est un CSV fichier de base qui fournit des réponses aux questions sur les cliniques gratuites à Spokane, Washington USA et Mountain View, Missouri,USA.

How many free clinics are in Spokane WA?, 13 How many free clinics are there in Mountain View Missouri?, 7
Note

Le FAQ fichier doit être UTF codé en -8.

Création de champs d'index pour un FAQ fichier

Note

La prise en charge des fonctionnalités varie en fonction du type d'index et de la recherche API utilisés. Pour savoir si cette fonctionnalité est prise en charge pour le type d'index et la recherche que API vous utilisez, consultez la section Types d'index.

Lorsque vous utilisez un fichier personnalisé CSV ou un JSONfichier pour la saisie, vous pouvez déclarer des champs personnalisés pour vos FAQ questions. Par exemple, vous pouvez créer un champ personnalisé qui attribue à chaque FAQ question un département commercial. Lorsque le FAQ mot est renvoyé dans une réponse, vous pouvez utiliser le département comme facette pour affiner la recherche uniquement à « RH » ou « Finances », par exemple.

Un champ personnalisé doit être mappé à un champ d'index. Dans la console, vous utilisez la page de définition des facettes pour créer un champ d'index. Lorsque vous utilisez leAPI, vous devez d'abord créer un champ d'index à l'aide du UpdateIndexAPI.

Le type de champ/attribut du FAQ fichier doit correspondre au type du champ d'index associé. Par exemple, le champ « Département » est un champ STRING_LIST de type. Vous devez donc fournir des valeurs pour le champ département sous forme de liste de chaînes dans votre FAQ fichier. Vous pouvez vérifier le type des champs d'index à l'aide de la page de définition des facettes de la console ou à l'aide du DescribeIndexAPI.

Lorsque vous créez un champ d'index mappé à un attribut personnalisé, vous pouvez le marquer comme affichable, facetable ou triable. Vous ne pouvez pas rendre un attribut personnalisé consultable.

Outre les attributs personnalisés, vous pouvez également utiliser les champs Amazon Kendra réservés ou communs dans un JSON fichier personnaliséCSV. Pour plus d'informations, consultez la section Attributs ou champs du document.

CSVFichier de base

Utilisez un CSV fichier de base lorsque vous souhaitez utiliser une structure simple pour votreFAQs. Dans un CSV fichier de base, chaque ligne comporte deux ou trois champs : une question, une réponse et une source facultative URI pointant vers un document contenant plus d'informations.

Le contenu du fichier doit respecter le format et le MIME type communs RFC 4180 pour les fichiers de valeurs séparées par des virgules () CSV.

Ce qui suit est un FAQ fichier au CSV format de base.

How many free clinics are in Spokane WA?, 13, https://s3.region.company.com/bucket-name/directory/faq.csv How many free clinics are there in Mountain View Missouri?, 7, https://s3.region.company.com/bucket-name/directory/faq.csv

CSVFichier personnalisé

Utilisez un CSV fichier personnalisé lorsque vous souhaitez ajouter des champs/attributs personnalisés à vos FAQ questions. Pour un CSV fichier personnalisé, vous utilisez une ligne d'en-tête dans votre CSV fichier pour définir les attributs supplémentaires.

Le CSV fichier doit contenir les deux champs obligatoires suivants :

  • _question—La question fréquemment posée

  • _answer—La réponse à la question fréquemment posée

Votre fichier peut contenir à la fois des champs Amazon Kendra réservés et des champs personnalisés. Voici un exemple de CSV fichier personnalisé.

_question,_answer,_last_updated_at,custom_string How many free clinics are in Spokane WA?, 13, 2012-03-25T12:30:10+01:00, Note: Some free clinics require you to meet certain criteria in order to use their services How many free clinics are there in Mountain View Missouri?, 7, 2012-03-25T12:30:10+01:00, Note: Some free clinics require you to meet certain criteria in order to use their services

Le contenu du fichier personnalisé doit respecter le format et le MIME type communs RFC 4180 pour les fichiers de valeurs séparées par des virgules () CSV.

La liste suivante répertorie les types de champs personnalisés :

  • Date : valeurs de date et d'ISOheure codées en 8601.

    Par exemple, 2012-03-25T 12:30:10 + 01:00 est le format date-heure ISO 8601 pour le 25 mars 2012 à 12h30 (plus 10 secondes) dans le fuseau horaire d'Europe centrale.

  • Long : nombres, tels que. 1234

  • Chaîne : valeurs de chaîne. Si votre chaîne contient des virgules, placez la valeur entière entre guillemets doubles («) (par exemple,"custom attribute, and more").

  • Liste de chaînes : liste de valeurs de chaîne. Répertoriez les valeurs dans une liste séparée par des virgules et placée entre guillemets («) (par exemple,"item1, item2, item3"). Si la liste ne contient qu'une seule entrée, vous pouvez omettre les guillemets (par exemple,item1).

Un CSV fichier personnalisé peut contenir des champs de contrôle d'accès utilisateur. Vous pouvez utiliser ces champs pour limiter l'accès FAQ à certains utilisateurs et groupes. Pour filtrer en fonction du contexte utilisateur, celui-ci doit fournir des informations sur l'utilisateur et le groupe dans la requête. Dans le cas contraire, tous les éléments pertinents FAQs sont renvoyés. Pour plus d'informations, consultez la section Filtrage du contexte utilisateur.

Vous trouverez ci-dessous la liste des filtres contextuels utilisateur pour FAQs :

  • _acl_user_allow—Les utilisateurs figurant dans la liste des autorisations peuvent les voir FAQ dans la réponse à la requête. Le FAQ n'est pas renvoyé aux autres utilisateurs.

  • _acl_user_deny—Les utilisateurs figurant dans la liste de refus ne peuvent pas le voir FAQ dans la réponse à la requête. Le FAQ est renvoyé à tous les autres utilisateurs lorsqu'il est pertinent pour la requête.

  • _acl_group_allow—Les utilisateurs membres d'un groupe autorisé peuvent le voir FAQ dans la réponse à la requête. Le FAQ n'est pas renvoyé aux utilisateurs membres d'un autre groupe.

  • _acl_group_deny—Les utilisateurs membres d'un groupe refusé ne peuvent pas le voir FAQ dans la réponse à la requête. Le FAQ est renvoyé aux autres groupes lorsqu'il est pertinent pour la requête.

Fournissez les valeurs des listes d'autorisation et de refus dans des listes séparées par des virgules entre guillemets (par exemple,"user1,user2,user3"). Vous pouvez inclure un utilisateur ou un groupe dans une liste d'autorisation ou une liste de refus, mais pas dans les deux cas où le même utilisateur est autorisé individuellement mais également dans le cas d'un groupe refusé. Si vous incluez un utilisateur ou un groupe dans les deux, vous recevez un message d'erreur.

Voici un exemple de CSV fichier personnalisé contenant des informations contextuelles sur l'utilisateur.

_question, _answer, _acl_user_allow, _acl_user_deny, _acl_group_allow, _acl_group_deny How many free clinics are in Spokane WA?, 13, "userID6201,userID7552", "userID1001,userID2020", groupBasicPlusRate, groupPremiumRate

JSONfichier

Vous pouvez utiliser un JSON fichier pour fournir des questions, des réponses et des champs pour votre index. Vous pouvez ajouter n'importe lequel des champs Amazon Kendra réservés ou des champs personnalisés auFAQ.

Le schéma du JSON fichier est le suivant.

{ "SchemaVersion": 1, "FaqDocuments": [ { "Question": string, "Answer": string, "Attributes": { string: object additional attributes }, "AccessControlList": [ { "Name": string, "Type": enum( "GROUP" | "USER" ), "Access": enum( "ALLOW" | "DENY" ) }, additional user context ] }, additional FAQ documents ] }

Le JSON fichier d'exemple suivant montre deux FAQ documents. L'un des documents contient uniquement la question et la réponse requises. L'autre document inclut également des informations supplémentaires sur le champ et le contexte utilisateur ou le contrôle d'accès.

{ "SchemaVersion": 1, "FaqDocuments": [ { "Question": "How many free clinics are in Spokane WA?", "Answer": "13" }, { "Question": "How many free clinics are there in Mountain View Missouri?", "Answer": "7", "Attributes": { "_source_uri": "https://s3.region.company.com/bucket-name/directory/faq.csv", "_category": "Charitable Clinics" }, "AccessControlList": [ { "Name": "user@amazon.com", "Type": "USER", "Access": "ALLOW" }, { "Name": "Admin", "Type": "GROUP", "Access": "ALLOW" } ] } ] }

La liste suivante répertorie les types de champs personnalisés :

  • Date : valeur de JSON chaîne avec des valeurs de date et d'heure ISO codées en 8601. Par exemple, 2012-03-25T 12:30:10 + 01:00 est le format date-heure ISO 8601 pour le 25 mars 2012 à 12h30 (plus 10 secondes) dans le fuseau horaire d'Europe centrale.

  • Long : valeur JSON numérique, telle que1234.

  • Chaîne : valeur de JSON chaîne (par exemple,"custom attribute").

  • Liste de chaînes : JSON tableau de valeurs de chaînes (par exemple,["item1,item2,item3"]).

Un JSON fichier peut contenir des champs de contrôle d'accès utilisateur. Vous pouvez utiliser ces champs pour limiter l'accès FAQ à certains utilisateurs et groupes. Pour filtrer en fonction du contexte utilisateur, celui-ci doit fournir des informations sur l'utilisateur et le groupe dans la requête. Dans le cas contraire, tous les éléments pertinents FAQs sont renvoyés. Pour plus d'informations, consultez la section Filtrage du contexte utilisateur.

Vous pouvez inclure un utilisateur ou un groupe dans une liste d'autorisation ou une liste de refus, mais pas dans les deux cas où le même utilisateur est autorisé individuellement mais également dans le cas d'un groupe refusé. Si vous incluez un utilisateur ou un groupe dans les deux, vous recevez un message d'erreur.

Voici un exemple d'inclusion du contrôle d'accès utilisateur à un JSONFAQ.

"AccessControlList": [ { "Name": "group or user name", "Type": "GROUP | USER", "Access": "ALLOW | DENY" }, additional user context ]

Utilisation de votre FAQ fichier

Après avoir stocké votre fichier FAQ d'entrée dans un compartiment S3, vous utilisez la console ou le CreateFaq API pour placer les questions et réponses dans votre index. Si vous souhaitez mettre à jour unFAQ, supprimez-le FAQ et créez-le à nouveau. Vous utilisez le DeleteFaq API pour supprimer unFAQ.

Vous devez fournir un IAM rôle ayant accès au compartiment S3 qui contient vos fichiers source. Vous spécifiez le rôle dans la console ou dans le RoleArn paramètre. Voici un exemple d'ajout d'un FAQ fichier à un index.

Python
import boto3 kendra = boto3.client("kendra") # Provide the index ID index_id = "index-id" # Provide the IAM role ARN required to index documents in an S3 bucket role_arn = "arn:aws:iam::${accountId}:role/${roleName}" # Provide the S3 bucket path information to the FAQ file faq_path = { "Bucket": "bucket-name", "Key": "FreeClinicsUSA.csv" } response = kendra.create_faq( S3Path = faq_path, Name = "FreeClinicsUSA", IndexId = index_id, RoleArn = role_arn ) print(response)
Java
package com.amazonaws.kendra; import software.amazon.awssdk.services.kendra.KendraClient; import software.amazon.awssdk.services.kendra.model.CreateFaqRequest; import software.amazon.awssdk.services.kendra.model.CreateFaqResponse; import software.amazon.awssdk.services.kendra.model.S3Path; public class AddFaqExample { public static void main(String[] args) { KendraClient kendra = KendraClient.builder().build(); String indexId = "yourIndexId"; String roleArn = "your role for accessing S3 files"; CreateFaqRequest createFaqRequest = CreateFaqRequest .builder() .indexId(indexId) .name("FreeClinicsUSA") .roleArn(roleArn) .s3Path( S3Path .builder() .bucket("amzn-s3-demo-bucket") .key("FreeClinicsUSA.csv") .build()) .build(); CreateFaqResponse response = kendra.createFaq(createFaqRequest); System.out.println(String.format("The result of creating FAQ: %s", response)); } }

FAQfichiers dans des langues autres que l'anglais

Vous pouvez indexer un FAQ dans une langue prise en charge. Amazon Kendra index FAQs en anglais par défaut si vous ne spécifiez aucune langue. Vous spécifiez le code de langue lorsque vous appelez l'CreateFaqopération ou vous pouvez inclure le code de langue de a FAQ dans les FAQ métadonnées sous forme de champ. Si un FAQ n'a pas de code de langue dans ses métadonnées spécifiées dans un champ de métadonnées, FAQ il est indexé à l'aide du code de langue spécifié lorsque vous appelez l'CreateFAQopération. Pour indexer un FAQ document dans une langue prise en charge dans la console, accédez à FAQset sélectionnez Ajouter FAQ. Vous choisissez une langue dans le menu déroulant Langue.