컨텍스트 세트 개요

QueryData를 사용하면 대화형 언어를 사용하여 데이터베이스의 데이터와 상호작용하고 데이터 에이전트를 빌드할 수 있습니다. QueryData는 데이터베이스에 대한 고유한 정보가 포함된 코드 모음인 컨텍스트 집합을 사용하여 데이터베이스의 쿼리를 작성합니다. 이 컨텍스트를 통해 QueryData는 자연어 질문을 대상 사용 사례에 대한 정확한 쿼리로 변환할 수 있습니다.

QueryData를 사용해야 하는 경우

QueryData는 다음과 같은 애플리케이션에 적합합니다.

  • 고객 서비스 자동화: '내 주문은 어디에 있나요?' 또는 '내 현재 잔액은 얼마인가요?'와 같은 대량 문의를 처리합니다.
  • 전자상거래 쇼핑 도우미: '100달러 미만의 조깅화를 보여 줘'와 같은 자연어 쿼리를 사용하여 사용자가 대규모 제품 카탈로그를 탐색하도록 지원합니다.
  • 현장 운영 도구: 모바일 직원이 재고 수준, 부품 가용성 또는 서비스 티켓 세부정보를 실시간으로 쿼리할 수 있도록 허용합니다.

QueryData 작동 방식

효과적인 에이전트 애플리케이션을 빌드하려면 QueryData가 데이터 조직 및 비즈니스 로직을 이해해야 합니다. 이 정보는 컨텍스트 집합의 형태로 제공됩니다.

각 컨텍스트 유형의 JSON 객체가 포함된 파일에서 컨텍스트를 정의합니다. Gemini CLI를 사용하여 이러한 컨텍스트 파일을 작성합니다. 그런 다음 콘솔에서 만든 컨텍스트 집합에 컨텍스트 파일을 업로드합니다. Google Cloud이 프로세스를 통해 QueryData는 데이터베이스의 특정 스키마와 애플리케이션의 비즈니스 로직을 학습할 수 있습니다.

컨텍스트 파일은 다음과 유사합니다.

에이전트 컨텍스트 파일은 다음과 유사합니다.

{
  "templates": [
    {
      "nl_query": "Count prague loan accounts",
      "sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = 'Prague'",
      "intent": "How many accounts associated with loans are located in the Prague region?",
      "manifest": "How many accounts associated with loans are located in a given city?",
      "parameterized": {
        "parameterized_intent": "How many accounts associated with loans are located in $1",
        "parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
      }
    }
  ],
  "facets": [
    {
      "sql_snippet": "T.\"A11\" BETWEEN 6000 AND 10000",
      "intent": "Average salary between 6000 and 10000",
      "manifest": "Average salary between a given number and a given number",
      "parameterized": {
         "parameterized_intent": "Average salary between $1 and $2",
         "parameterized_sql_snippet": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ]
}

최종 사용자가 자연어 질문을 하면 QueryData는 컨텍스트를 큐레이팅하는 개발자가 감사한 템플릿 및 상품 속성에 질문을 일치시키는 것을 우선시합니다. QueryData가 일치하는 항목을 식별하면 선택한 쿼리 템플릿과 상품 속성을 사용하여 데이터베이스 쿼리를 합성합니다. 그런 다음 컨텍스트 집합 로직이 데이터베이스에 대해 해당 쿼리를 실행하여 정확한 결과를 반환합니다.

권장되는 단계는 컨텍스트 내에서 값 검색을 정의하는 것입니다. 값 검색을 사용하면 에이전트가 값 문구를 데이터베이스 열에 저장된 특정 값에 매핑할 수 있습니다. 이렇게 하면 LLM이 실제 데이터에 그라운딩되어 용어가 District 이름인지 City인지와 같은 모호성을 해결하는 데 도움이 됩니다.

에이전트가 일치하는 템플릿을 찾지 못하면 값 검색을 사용하여 자연어 문구를 데이터베이스 열에 저장된 특정 값에 매핑합니다. 이렇게 하면 LLM이 실제 데이터에 그라운딩되어 용어가 District, Name 또는 City인지와 같은 모호성을 해결하는 데 도움이 됩니다.

QueryData 엔드포인트는 Conversational Analytics API에서 애플리케이션과의 프로그래매틱 통합을 허용하여 자연어 질문에서 SQL 쿼리 생성을 지원하는 에이전트 도구입니다. 대화형 애플리케이션에서 QueryData 엔드포인트는 대화 기록과 컨텍스트를 관리하는 프레임워크 내에서 사용해야 합니다.엄격한 행 수준 보안을 유지하면서 항목 해결을 적용하려면 매개변수화된 보안 뷰 (PSV)를 사용하면 됩니다. 자세한 내용은 매개변수화된 보안 뷰를 사용하여 애플리케이션 데이터에 대한 액세스 보호 및 제어를 참조하세요.

다음 단계