구조화된 데이터에 대한 쿼리 생성 - Amazon Bedrock

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

구조화된 데이터에 대한 쿼리 생성

구조화된 데이터 스토어를 지식 기반에 연결할 때 지식 기반은 쿼리되는 데이터 소스의 구조에 따라 사용자가 제공한 자연어 쿼리를 SQL 쿼리로 변환하여 쿼리할 수 있습니다. 를 사용하는 경우:

  • Retrieve: 응답은 SQL 쿼리 실행의 결과를 반환합니다.

  • RetrieveAndGenerate: 생성된 응답은 SQL 쿼리 실행 결과를 기반으로 합니다.

  • GenerateQuery: Amazon Bedrock 지식 기반은 쿼리 변환을 검색 프로세스에서 분리합니다. 이 API 작업을 사용하여 쿼리를 SQL로 변환할 수 있습니다.

GenerateQuery API 사용

GenerateQuery API 작업의 응답을 후속 Retrieve 또는 RetrieveAndGenerate 작업과 함께 사용하거나 다른 워크플로에 삽입할 수 있습니다. GenerateQuery를 사용하면 지식 기반 데이터 소스의 구조를 고려하여 쿼리를 SQL 쿼리로 효율적으로 변환할 수 있습니다.

자연어 쿼리를 SQL 쿼리로 전환하려면 Agents for Amazon Bedrock 런타임 엔드포인트를 사용하여 GenerateQuery 요청을 제출합니다. GenerateQuery 요청에는 다음 필드가 포함됩니다.

  • queryGenerationInput -를 TEXT로 지정type하고 text 필드에 쿼리를 포함합니다.

    참고

    쿼리는 영어로 작성해야 합니다.

  • transformationConfiguration -를 TEXT_TO_SQL로 지정합니다mode. textToSqlConfiguration 필드에서를 KNOWLEDGE_BASE로 지정합니다type. 그런 다음 지식 기반의 ARN을 지정합니다.

응답은 queries 필드에 GeneratedQuery 객체가 포함된 배열을 반환합니다. 객체에는 sql 필드의 쿼리에 대한 SQL 쿼리가 포함되어 있습니다.

주요 고려 사항

다음은 구조화된 데이터를 사용하여 쿼리를 생성할 때 고려해야 할 몇 가지 주요 사항입니다.

  • 리전 간 추론 및 구조화된 데이터 검색

    구조화된 데이터 검색은 리전 간 추론을 사용하여 지리 AWS 리전 내에서 최적의를 선택하여 추론 요청을 처리합니다. 이로 인해 추가 요금이 발생하지 않으며 사용 가능한 리소스와 모델 가용성을 극대화하여 고객 경험이 개선됩니다.

    교차 추론 요청은 데이터가 원래 상주 AWS 리전 하는 지리의 일부인 내에 보관됩니다. 데이터는 소스 리전 내에 저장되지만 입력 프롬프트와 출력 결과가이 리전 외부로 이동할 수 있습니다. 모든 데이터는 Amazon의 보안 네트워크를 통해 암호화되어 전송됩니다.

    자세한 내용은 교차 리전 추론을 통한 처리량 증가 단원을 참조하십시오.

  • 생성된 SQL 쿼리의 정확도

    생성된 SQL 쿼리의 정확도는 컨텍스트, 테이블 스키마 및 사용자 쿼리의 의도에 따라 달라질 수 있습니다. 생성된 쿼리를 평가하여 워크로드에서 사용하기 전에 사용 사례에 적합한지 확인합니다.

  • 검색된 결과 수

    응답을 생성할 때 다음과 같은 제한 사항이 적용됩니다.

    • InvokeAgent, RetrieveAndGenerateRetrieveAndGenerateStream API 작업을 사용하는 경우 응답을 생성할 때 검색된 결과 10개만 사용됩니다.

    • InvokeAgent API를 사용할 때 검색된 결과의 행이 10개를 초과하는 경우 응답을 생성하기 위해 검색된 총 행 수가 에이전트에 전달되지 않습니다. 대신 RetrieveAndGenerate API를 사용하는 경우 최종 응답을 생성하기 위한 프롬프트에 총 행 수가 포함됩니다.

  • GenerateQuery API 할당량

    GenerateQuery API의 할당량은 초당 요청 2개입니다.

역할에게 생성된 쿼리에 액세스할 수 있는 권한 부여

구조화된 데이터 소스에 연결된 지식 기반의 경우 생성된 쿼리에 대해 몇 가지 추가 작업을 수행하려면 GenerateQuery API 작업을 수행할 수 있는 권한을 부여해야 합니다. IAM 역할이 구조화된 데이터 스토어에 연결된 지식 기반을 쿼리하도록 허용하려면 역할에 다음 정책을 연결합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetKB", "Effect": "Allow", "Action": [ "bedrock:GetKnowledgeBase" ], "Resource": [ "arn:${Partition}:bedrock:${Region}:${Account}:knowledge-base/${KnowledgeBaseId}" ] }, { "Sid": "GenerateQueryAccess", "Effect": "Allow", "Action": [ "bedrock:GenerateQuery", "sqlworkbench:GetSqlRecommendations" ], "Resource": "*" }, { "Sid": "Retrieve", "Effect": "Allow", "Action": [ "bedrock:Retrieve", ] "Resource": [ "arn:${Partition}:bedrock:${Region}:${Account}:knowledge-base/${KnowledgeBaseId}" ] }, { "Sid": "RetrieveAndGenerate", "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate", ] "Resource": [ "*" ] } ] }

사용 사례에 따라 필요하지 않은 문을 제거할 수 있습니다.

  • GetKBGenerateQuery 문은 GenerateQuery를 호출하여 사용자 쿼리와 연결된 데이터 소스를 고려하는 SQL 쿼리를 생성하는 데 필요합니다.

  • Retrieve 문은 구조화된 데이터 스토어에서 데이터를 검색Retrieve하기 위해를 호출하는 데 필요합니다.

  • RetrieveAndGenerate 문은를 호출RetrieveAndGenerate하여 구조화된 데이터 스토어에서 데이터를 검색하고 데이터를 기반으로 응답을 생성하는 데 필요합니다.