시맨틱 계층의 쿼리 생성 세그먼트

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 7분
  • 세그먼트는 비즈니스 용어를 특정 쿼리 필터에 매핑하여 의미 체계 계층이 자연어 질문을 정확한 데이터베이스 쿼리로 변환하는 데 도움이 되는 미리 정의된 필터 조건입니다.

    세그먼트는 의미 체계 계층이 올바른 엔터티, 차원 및 값을 선택하는 데 도움이 되는 명확하지 않은 컨텍스트를 제공합니다. 예를 들어, "미해결 긴급 변경 요청 수는 몇 개입니까?"라는 발언에서 세그먼트는 "오픈"이 "활성=참"을 의미하고 "긴급"은 우선순위가 아닌 유형임을 식별합니다.

    사용자가 질문을 하면 쿼리 생성 엔진은 일치하는 세그먼트를 검색하고 LLM 프롬프트에 해당 필터를 포함하므로 모델이 이를 재사용하여 정확한 쿼리를 구성할 수 있습니다.

    세그먼트에는 두 가지 유형이 있습니다.

    자동화된 세그먼트
    보고서, 대시보드, 필터, 모듈 및 표시기 소스에서 시스템에서 생성됩니다. "Incidents.Open"과 같은 기술적인 이름인 경우가 많습니다.
    수동 세그먼트
    수동 세그먼트 구성 테이블을 통해 관리자가 생성합니다. 사용자 친화적인 이름입니다(예: "중요 오픈 인시던트"). 수동 세그먼트는 자동 동기화와 함께 2개의 테이블 데이터 모델을 사용하며 플러그인을 통해 애플리케이션과 함께 제공될 수 있습니다.
    표 1. 비교: 수동 세그먼트와 자동 세그먼트 비교
    수동 세그먼트 자동화된 세그먼트
    작성자 관리자, 업데이트 세트를 통해 제공됨 보고서, 대시보드, 필터, 모듈에서 시스템 생성
    이름 품질 사용자 친화적, 검색에 맞게 조정됨 기술적인 경우가 많습니다(예: "Incidents.Open").
    검색 우선순위 자동화보다 5% 부스트(조정 가능)sn_query_gen.segments.manual_segment_scale_factor 표준 점수 매기기
    LLM 처리 관련이 없는 경우를 제외하고 모든 필터를 유지합니다. 각 필터를 개별적으로 비판
    프롬프트 레이블 user_defined_segment automated_segment
    수명주기 관리자에 의해 완전히 제어됨 소스 기록 활동/사용량에 연결됨
    앱과 함께 제공됨 예(업데이트 세트) 아니요(런타임 시 생성됨)

    세그먼트 작동 방식

    시스템은 AI 검색을 사용하여 사용자의 쿼리와 의미론적으로 유사한 세그먼트를 찾습니다. AI 검색은 세그먼트 테이블의 이름, 설명, 엔터티 및 필터 필드를 인덱싱하여 사용자의 쿼리와 비교하여 관련 세그먼트의 하위 집합을 생성합니다.

    LLM 호출에서 시스템은 이름, 설명, 엔터티 및 필터를 전달합니다. LLM은 세그먼트를 새 쿼리를 생성하기 위한 구성요소로 사용합니다. 예를 들어 사용자가 "샌디에이고에 위치한 미할당 인시던트"라고 질문하고 세그먼트 "미할당 인시던트"가 LLM으로 전달되면 LLM은 세그먼트의 필터를 시작점으로 사용하고 세그먼트 위에 위치 필터 "샌디에고"를 연결합니다.

    표 2. 세그먼트 프로세스 요약
    단계 목적 출력
    1: 입력 사용자의 자연어 쿼리 캡처 원시 쿼리 텍스트
    2: 검색 의미론적으로 유사한 사전 구축된 세그먼트 찾기 관련 세그먼트의 하위 집합
    3: 점수 매기기 의미 체계 유사성 점수에 따라 관련 세그먼트 세트의 순위를 매깁니다. 이제 순위가 매겨지고 정렬된 관련 세그먼트의 하위 집합
    4: 컨텍스트 LLM에 세그먼트 메타데이터 제공 구조화된 세그먼트 데이터
    5: 생성 세그먼트 논리를 새 조건과 결합 실행 가능한 쿼리 완료

    수동 세그먼트의 작동 방식

    수동 세그먼트는 쿼리 시간에 두 가지 역할을 합니다.

    엔터티 검색
    이전 컨텍스트가 없는 최초 쿼리에서 세그먼트 일치는 엔터티 목록에 엔터티를 추가하거나 부스트할 수 있습니다. 수동 세그먼트 이름과 일치하면 후보 목록에 엔터티를 추가하거나 증폭하여 원하는 엔터티를 식별하는 데 도움이 됩니다. 사용자가 "중요 미해결 인시던트 표시"를 요청하고 인시던트 [incident] 테이블에 "중요 미해결 인시던트"라는 수동 세그먼트가 있는 경우 결과에서 인시던 트 엔터티가 부스트됩니다.
    필터 프로비저닝
    일치하는 세그먼트는 LLM 프롬프트 컨텍스트에 맞게 형식이 지정됩니다. LLM은 다음을 봅니다.
    **Related Segments**:
    - **Critical Open Incidents** (user_defined_segment)
      - description : High priority incidents that are open and unresolved
      - entity : incident
      - filter : { conditions : [{"field":"incident.priority","operator":"=","value":"1"}, ...] }
    그런 다음 LLM은 쿼리를 구성할 때 세그먼트의 필터를 완전히 또는 부분적으로 재사용할지 여부를 결정합니다. 수동 세그먼트에는 프롬프트에 user_defined_segment 레이블이 표시되어 LLM이 완전히 관련이 없는 경우가 아닌 한 모든 필터를 유지하도록 지시합니다.

    수동 세그먼트 점수 매기기 부스트

    수동 세그먼트는 우선순위 부스트를 받습니다. 엔진은 관련 세그먼트를 검색할 때 의미론적 유사성(세그먼트의 이름과 설명이 사용자의 질문과 얼마나 밀접하게 일치하는지)에 따라 각 결과의 점수를 매깁니다. 기본적으로 수동 세그먼트는 원시 유사성 점수 위에 5%의 부스트가 적용됩니다.

    부스트 계수는 시스템 속성을 sn_query_gen.segments.manual_segment_scale_factor통해 구성할 수 있습니다. 예를 들어 1.10으로 늘리면 수동 세그먼트가 더 강력하게 상승합니다. 1.0으로 설정하면 부스트가 완전히 제거됩니다.

    실제로 자동화된 세그먼트에는 사용자 발언과 부분적으로 일치하는 이름이 있는 경우가 많습니다. 예를 들어 "미해결 인시던트"라는 보고서는 "중요 미해결 인시던트"라는 수동 세그먼트와 비슷한 점수를 낼 수 있습니다. 부스트를 사용하면 도메인에 맞게 조정된 수동 세그먼트가 둘 다 거의 일치할 때 시스템에서 생성된 세그먼트보다 먼저 표시됩니다.

    세그먼트 점수 매기기 작동 방식

    1. AI 검색 각 후보 세그먼트에 대한 원시 의미론적 유사성 점수(0.0–1.0)를 반환합니다.
    2. 일치 임계치(기본값 0.70) 미만의 세그먼트는 삭제됩니다.
    3. 수동 세그먼트 점수에 배율 인수를 곱합니다(기본값 1.05).
    4. 결과는 부스트 점수별로 정렬되고 결과 제한으로 제한됩니다.

    자동 세그먼트 소스

    시스템은 일정에 따라 기존 데이터 소스에서 세그먼트를 자동으로 생성합니다. 쿼리 생성 세그먼트 동기화 작업은 세그먼트를 자동으로 만들어 설치 시 실행한 다음 기본적으로 매주 실행됩니다.

    표 3. 자동 세그먼트 소스
    소스 끌어오는 내용
    저장된 보고서(sys_report) 최근에 본 보고서의 보고서 필터
    보고서 소스(sys_report_source) 분석 데이터 소스 필터
    PA 표시기(pa_cubes) 퍼포먼스 분석 표시기 조건
    저장된 필터(sys_filter) 전역에 저장된 필터만 해당(사용자별 및 그룹별 필터 제외)
    앱 모듈(sys_app_module) 모듈 수준 목록 뷰 필터

    자동화된 세그먼트 규칙

    오래되고 관련성이 없는 세그먼트의 노이즈를 줄이기 위해 작업은 특정 규칙을 따릅니다. 보고서, 보고서 소스 또는 표시기 소스를 기반으로 하는 세그먼트는 기록이 특정 기준을 충족하는 경우에만 활성화됩니다.

    • 보고서는 분석 관리자 역할(admin, dashboard_admin, report_admin, pa_admin 또는 viz_admin)을 가진 사용자가 공유하고, 생성하고, 최근에(기본적으로 180일 이내) 실행된 것이어야 합니다.
    • 보고서 소스는 데이터 시각화에 포함되거나 최근에 실행된 보고서에 사용해야 합니다.
    • 표시기 소스는 최근에 변경된 점수가 있는 표시기에 연결되어야 합니다.
    중요사항:
    도메인 분리 인스턴스의 표시기 소스 또는 모듈에서 세그먼트를 생성할 수 없습니다.

    보고서의 경우 "최근 실행"은 시스템 속성에 의해 정의됩니다 sn_query_gen.segments.reports.last_viewed_threshold_days . 기본값은 180일입니다.

    표시기 소스의 경우 "최근에 변경됨"의 시간 범위는 표시기 빈도에 따라 다릅니다.

    • 일별: 지난 7일
    • 주별: 지난 30일
    • 격주: 지난 30일
    • 월별: 지난 90일
    • 4주: 지난 90일
    • 격월: 지난 90일
    • 분기별: 지난 180일
    • 회계 분기별: 지난 180일
    • 6개월: 지난 12개월
    • 연도별: 지난 24개월
    • 회계 연도별: 지난 24개월

    시스템 속성을 사용하여 sn_query_gen.segments.indicator.inactivity_threshold_multiplier 승수를 적용하여 표시기 소스의 시간 범위를 변경할 수 있습니다. 값은 정수여야 하며, 이는 기간을 늘릴 수만 있고 짧게 할 수 없음을 의미합니다.

    세그먼트 소스 비활성화

    세그먼트 생성을 완전히 비활성화하거나 개별 소스 유형에 대해 비활성화할 수 있습니다. 문제를 해결하거나 소스의 세그먼트가 "시끄러운" 경우 세그먼트 생성을 비활성화할 수 있습니다. 각 소스 유형에는 해당 sn_query_gen.segments.disable.* 시스템 속성이 있습니다. 해당 시스템 속성을 true로 설정하여 해당 소스에 대한 세그먼트를 비활성화합니다. 해당 유형의 소스에서 생성된 모든 기존 세그먼트는 검색 결과에서 AI 데이터 탐색기 제외됩니다. 해당 유형의 새 세그먼트가 생성되지 않습니다. 다음 세그먼트 동기화 작업 중에 해당 유형의 모든 세그먼트가 비활성화됩니다. 자세한 내용은 쿼리 작성 속성 문서를 참조하십시오.