인덱스에 자주 묻는 질문(FAQ) 추가 - Amazon Kendra

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인덱스에 자주 묻는 질문(FAQ) 추가

콘솔 또는 API를 사용하여 자주 묻는 질문 (FAQ) 을 색인에 직접 추가할 수 있습니다. CreateFaq FAQ를 인덱스에 추가하는 것은 비동기식 작업입니다. FAQ 데이터는 버킷에 저장하는 파일에 저장합니다. Amazon Simple Storage Service CSV 또는 JSON 파일을 FAQ 입력으로 사용할 수 있습니다.

  • 기본 CSV - 각 행에 질문, 답변 및 선택적 소스 URI가 포함된 CSV 파일입니다.

  • 사용자 지정 CSV - FAQ 응답을 패싯, 표시 또는 정렬하는 데 사용할 수 있는 사용자 지정 필드/속성에 대한 질문, 답변 및 헤더가 포함된 CSV 파일입니다. 액세스 제어 필드를 정의하여 FAQ 응답을 볼 수 있는 특정 사용자 및 그룹으로 FAQ 응답을 제한할 수도 있습니다.

  • JSON - 질문, 답변, 사용자 지정 필드/속성을 포함하는 JSON 파일로, FAQ 응답을 패싯, 표시 또는 정렬하는 데 사용할 수 있습니다. 액세스 제어 필드를 정의하여 FAQ 응답을 볼 수 있는 특정 사용자 및 그룹으로 FAQ 응답을 제한할 수도 있습니다.

예를 들어, 다음은 미국 워싱턴주 스포캔과 미국 미주리주 마운틴뷰에 있는 무료 진료소에 대한 질문에 대한 답변을 제공하는 기본 CSV 파일입니다.

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를 사용할 때는 먼저 API를 사용하여 인덱스 필드를 만들어야 합니다. UpdateIndex

FAQ 파일의 필드/속성 유형은 관련 인덱스 필드의 유형과 일치해야 합니다. 예를 들어, “부서” 필드는 STRING_LIST 유형 필드입니다. 따라서 FAQ 파일에 부서 필드 값을 문자열 목록으로 제공해야 합니다. 콘솔의 Facet 정의 페이지를 사용하거나 DescribeIndexAPI를 사용하여 인덱스 필드의 유형을 확인할 수 있습니다.

사용자 지정 속성에 매핑되는 인덱스 필드를 만들 때 해당 필드를 표시 가능, 패싯 가능 또는 정렬 가능으로 표시할 수 있습니다. 사용자 지정 속성을 검색 가능하게 만들 수는 없습니다.

사용자 지정 속성 외에도 사용자 지정 CSV 또는 JSON 파일에서 Amazon Kendra 예약된 필드 또는 공통 필드를 사용할 수 있습니다. 자세한 내용은 문서 속성 또는 필드를 참조하세요.

기본 CSV 파일

FAQ에 간단한 구조를 사용하려는 경우 기본 CSV 파일을 사용하세요. 기본 CSV 파일의 각 행에는 질문, 답변, 추가 정보가 포함된 문서를 가리키는 선택적 소스 URI 등 2개 또는 3개의 필드가 있습니다.

파일의 내용은 RFC 4180 CSV(쉼표로 구분된 값) 파일의 공통 형식 및 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

사용자 지정 파일의 내용은 RFC 4180 CSV(쉼표로 구분된 값) 파일의 공통 형식 및 MIME 유형을 따라야 합니다.

다음은 사용자 지정 필드 유형 목록입니다.

  • 날짜 - ISO 8601로 인코딩된 날짜와 시간 값입니다.

    예를 들어, 2012-03-25T12:30:10+01:00은 중부 유럽 시간대로 2012년 3월 25일 오후 12시 30분 10초에 대한 ISO 8601 날짜/시간 형식입니다.

  • Long - 숫자(예: 1234).

  • 문자열 - 문자열 값. 문자열에 쉼표가 포함된 경우 전체 값을 큰따옴표 (“) 로 묶으세요(예: "custom attribute, and more").

  • 문자열 목록 - 문자열 값의 목록입니다. 따옴표(“)로 묶인 쉼표로 구분된 목록으로 값을 나열합니다(예: "item1, item2, item3"). 목록에 항목이 하나뿐인 경우 따옴표를 생략할 수 있습니다(예: item1).

사용자 지정 CSV 파일에는 사용자 액세스 제어 필드가 포함될 수 있습니다. 이 필드를 사용하여 FAQ에 대한 액세스를 특정 사용자 및 그룹으로 제한할 수 있습니다. 사용자 컨텍스트를 기준으로 필터링하려면 사용자가 쿼리에 사용자 및 그룹 정보를 제공해야 합니다. 그렇지 않으면 모든 관련 FAQ가 반환됩니다. 자세한 내용은 사용자 컨텍스트 필터링을 참조하세요.

다음은 FAQ의 사용자 컨텍스트 필터 목록입니다.

  • _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에 대한 액세스를 특정 사용자 및 그룹으로 제한할 수 있습니다. 사용자 컨텍스트를 기준으로 필터링하려면 사용자가 쿼리에 사용자 및 그룹 정보를 제공해야 합니다. 그렇지 않으면 모든 관련 FAQ가 반환됩니다. 자세한 내용은 사용자 컨텍스트 필터링을 참조하세요.

사용자나 그룹을 허용 목록 또는 거부 목록에 포함할 수 있지만, 동일한 사용자를 둘 모두에 포함할 수는 없습니다(개인은 허용되지만 그룹은 거부되는 경우). 둘 모두에 사용자나 그룹을 포함하면 오류가 발생합니다.

다음은 JSON FAQ에 대한 사용자 액세스 제어를 포함하는 예입니다.

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

FAQ 파일 사용

FAQ 입력 파일을 S3 버킷에 저장한 후 콘솔 또는 CreateFaq API를 사용하여 질문과 답변을 인덱스에 추가합니다. FAQ를 업데이트하려면 FAQ를 삭제하고 다시 생성하세요. DeleteFaq API를 사용하여 FAQ를 삭제합니다.

원본 파일이 포함된 S3 버킷에 액세스할 수 있는 IAM 역할을 제공해야 합니다. 콘솔 또는 RoleArn 파라미터에 역할을 지정합니다. 다음은 FAQ 파일을 인덱스에 추가하는 예입니다.

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("an-aws-kendra-test-bucket") .key("FreeClinicsUSA.csv") .build()) .build(); CreateFaqResponse response = kendra.createFaq(createFaqRequest); System.out.println(String.format("The result of creating FAQ: %s", response)); } }

영어 이외의 언어로 된 FAQ 파일

지원되는 언어로 FAQ를 인덱싱할 수 있습니다. Amazon Kendra 언어를 지정하지 않은 경우 기본적으로 FAQ를 영어로 인덱싱합니다. CreateFaq오퍼레이션을 호출할 때 언어 코드를 지정하거나 FAQ 메타데이터에 FAQ의 언어 코드를 필드로 포함할 수 있습니다. 메타데이터 필드에 지정된 FAQ의 메타데이터에 언어 코드가 없는 경우 CreateFAQ 작업을 호출할 때 지정된 언어 코드를 사용하여 FAQ를 인덱싱합니다. 콘솔에서 지원되는 언어로 FAQ 문서를 인덱싱하려면 FAQ로 이동하여 FAQ 추가를 선택합니다. 언어 드롭다운에서 언어를 선택합니다.