本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
向索引中添加常见问题 (FAQs)
您可以使用控制台或将常见问题 (FAQs) 直接添加到索引中CreateFaqAPI。FAQs向索引添加是一种异步操作。您将的数据放在FAQ存储 Amazon Simple Storage Service 桶中的文件中。你可以使用CSV或JSON文件作为你的FAQ以下内容的输入:
-
基CSV本-每行包含问题、答案和可选来源的CSV文件URI。
-
自定义 CSV-包含问题、答案和自定义字段/属性的标题的CSV文件,您可以使用这些字段/属性对答案进行分解、显示或排序。FAQ您还可以定义访问控制字段,将FAQ响应限制为允许查看FAQ响应的特定用户和群组。
-
JSON— 一个包含问题、答案和自定义字段/属性的JSON文件,您可以使用这些字段/属性对答案进行分解、显示或排序。FAQ您还可以定义访问控制字段,将FAQ响应限制为允许查看FAQ响应的特定用户和群组。
例如,以下是一个基本CSV文件,它提供了有关华盛顿州斯波坎USA和密苏里州山景城免费诊所问题的答案。USA
How many free clinics are in Spokane WA?, 13
How many free clinics are there in Mountain View Missouri?, 7
注意
该FAQ文件必须是 UTF -8 编码的文件。
为FAQ文件创建索引字段
使用自定义CSV或JSON文件进行输入时,您可以为FAQ问题声明自定义字段。例如,您可以创建一个自定义字段,为每个FAQ问题分配一个业务部门。例如,FAQ当响应中返回时,您可以使用部门作为分面,将搜索范围缩小到 “HR” 或 “财务”。
自定义字段必须映射到索引字段。在控制台中,您可以使用分面定义页面来创建索引字段。使用时API,必须先使用创建索引字段UpdateIndexAPI。
FAQ文件中的字段/属性类型必须与关联索引字段的类型相匹配。例如,“部门”字段是一个 STRING_LIST
类型字段。因此,您必须在FAQ文件中以字符串列表的形式提供部门字段的值。您可以使用控制台中的 Facet 定义页面或使用来检查索引字段的类型。DescribeIndexAPI
创建映射到自定义属性的索引字段时,您可以将其标记为可显示、可分面或可排序。无法将自定义属性设置为可搜索。
除了自定义属性外,您还可以在自定义CSV或JSON文件中使用 Amazon Kendra 保留或常用字段。有关更多信息,请参阅文档属性或字段。
基本CSV文件
当您想使用简单的结构时,请使用基本CSV文件FAQs。在基本CSV文件中,每行都有两个或三个字段:一个问题、一个答案和一个指向包含更多信息的文档的可选来源URI。
文件内容必须遵循逗号分隔值 () CSV 文件的 RFC 4180 通用格式和MIME类型
以下是基本CSV格式的FAQ文件。
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
自定义CSV文件
如果要为问题添加自定义字段/属性,请FAQ使用自定义CSV文件。对于自定义CSV文件,您可以使用CSV文件中的标题行来定义其他属性。
该CSV文件必须包含以下两个必填字段:
-
_question
- 常见问题 -
_answer
- 常见问题的答案
您的文件可以包含 Amazon Kendra 保留字段和自定义字段。以下是自定义CSV文件的示例。
_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
自定义文件的内容必须遵循逗号分隔值 () CSV 文件的 RFC 4180 通用格式和MIME类型
下面列出了自定义字段的类型:
-
日期-ISO 8601 编码的日期和时间值。
例如,2012-03-25T12:30:10 + 01:00 是 2012 年 3 月 25 日中欧时区下午 12:30(加 10 秒)的 ISO 8601 日期时间格式。
-
Long - 数字,例如,
1234
。 -
String - 字符串值。如果字符串包含逗号,请用双引号(")将整个值括起来(例如,
"custom attribute, and more"
)。 -
String list - 字符串值的列表。列出使用引号(")括起来的逗号分隔值列表(例如,
"item1, item2, item3"
)。如果列表仅包含一个条目,则可以省略引号(例如,item1
)。
自定义CSV文件可以包含用户访问控制字段。您可以使用这些字段来限制某些用户和群组的FAQ访问权限。要根据用户上下文进行筛选,用户必须在查询中提供用户和组信息。否则,将返回FAQs所有相关内容。有关更多信息,请参阅用户上下文筛选。
以下列出了以下用户上下文筛选器FAQs:
-
_acl_user_allow
— 允许列表中的用户可以在查询响应FAQ中看到。FAQ不会返回给其他用户。 -
_acl_user_deny
— 拒绝列表中的用户无法在查询响应FAQ中看到。当FAQ它与查询相关时,会将其返回给所有其他用户。 -
_acl_group_allow
— 属于允许组成员的用户可以在查询响应FAQ中看到。FAQ不会向属于其他群组成员的用户返回。 -
_acl_group_deny
— 属于被拒绝群组成员的用户无法在查询响应FAQ中看到。当FAQ它与查询相关时,会将其返回给其他组。
在用引号括起来的逗号分隔列表中提供允许和拒绝列表的值(例如,"user1,user2,user3"
)。您可以将用户或组包含在允许列表或拒绝列表中,但不能将同一用户或组同时包括在允许列表或拒绝列表中。如果将用户或组包含在两者中,则会收到错误。
以下是包含用户上下文信息的自定义CSV文件示例。
_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
JSON文件
您可以使用JSON文件为索引提供问题、答案和字段。您可以将任何 Amazon Kendra 保留字段或自定义字段添加到FAQ。
以下是该JSON文件的架构。
{ "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
] }
以下示例JSON文件显示了两个FAQ文档。其中一个文档只包含所需的问题和答案。另一个文档还包含其他字段和用户上下文或访问权限控制信息。
{ "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" } ] } ] }
下面列出了自定义字段的类型:
-
日期-具有 ISO 8601 编码的日期和时间值的JSON字符串值。例如,2012-03-25T12:30:10 + 01:00 是 2012 年 3 月 25 日中欧时区下午 12:30(加 10 秒)的 ISO 8601 日期时间格式。
-
Long-JSON 数字值,例如。
1234
-
JSON字符串-字符串值(例如,
"custom attribute"
)。 -
字符串列表-字符串值JSON数组(例如,
["item1,item2,item3"]
)。
JSON文件可以包含用户访问控制字段。您可以使用这些字段来限制某些用户和群组的FAQ访问权限。要根据用户上下文进行筛选,用户必须在查询中提供用户和组信息。否则,将返回FAQs所有相关内容。有关更多信息,请参阅用户上下文筛选。
您可以将用户或组包含在允许列表或拒绝列表中,但不能将同一用户或组同时包括在允许列表或拒绝列表中。如果将用户或组包含在两者中,则会收到错误。
以下是包含用户访问控制的示例JSONFAQ。
"AccessControlList": [ { "Name": "group or user name", "Type": "GROUP | USER", "Access": "ALLOW | DENY" },
additional user context
]
使用你的FAQ文件
将FAQ输入文件存储在 S3 存储桶中后,您可以使用控制台或CreateFaq
API将问题和答案放入索引中。如果要更新FAQ,请删除FAQ并重新创建。您可以使用删除FAQ。DeleteFaq
API
您必须提供一个有权访问包含您的源文件的 S3 存储桶的 IAM 角色。您可以在控制台或 RoleArn
参数中指定该角色。以下是向索引中添加FAQ文件的示例。
FAQ英语以外其他语言的文件
您可以使用支持的语言对 FAQ a进行索引。 Amazon Kendra 如果您未指定语言,则默认使用英语进行索引FAQs。您可以在调用CreateFaq操作时指定语言代码,也可以将的语言代码作为字段包含FAQ在FAQ元数据中。如果 a 的元数据中FAQ没有在元数据字段中指定的语言代码,FAQ则使用调用该CreateFAQ
操作时指定的语言代码为其编制索引。要在控制台中使用支持的语言为FAQ文档编制索引,请转至FAQs并选择添加FAQ。您可以从语言下拉列表中选择语言。