Segmentos no Geração de consultas camada semântica
Os segmentos são condições de filtro predefinidas que mapeiam a terminologia de negócios para filtros de consulta específicos, ajudando a camada semântica a traduzir perguntas de linguagem natural em consultas de banco de dados precisas.
Os segmentos fornecem contexto não óbvio para ajudar a camada semântica a selecionar a entidade, a dimensão e os valores corretos. Por exemplo, no enunciado "Quantas solicitações de mudança de emergência em aberto existem?", um segmento identifica que "aberto" significa "ativo: Verdadeiro" e "emergência" é um tipo, não uma prioridade.
Quando um usuário faz uma pergunta, o mecanismo de geração de consulta pesquisa segmentos correspondentes e inclui seus filtros no prompt do LLM para que o modelo possa reutilizá-los para criar consultas precisas.
Há dois tipos de segmentos:
- Segmentos automatizados
- Gerado pelo sistema a partir de relatórios, painéis, filtros, módulos e fontes de indicadores. Os nomes geralmente são técnicos, por exemplo, "Incidentes.Aberto".
- Segmentos manuais
- Criado por administradores por meio da tabela Configuração manual de segmento. Os nomes são fáceis de usar, por exemplo, "Incidentes críticos em aberto". Os segmentos manuais usam um modelo de dados de duas tabelas com sincronização automática e podem ser enviados com aplicações por meio de plug-ins.
| Segmentos manuais | Segmentos automatizados | |
|---|---|---|
| Criada por | Administrador, enviado via conjunto de atualizações | Gerado pelo sistema a partir de relatórios, painéis, filtros e módulos |
| Qualidade do nome | Fácil de usar, ajustado para pesquisa | Muitas vezes técnico, por exemplo, "Incidentes.Aberto" |
| Prioridade de pesquisa | aumento de 5% em relação ao automatizado (ajustável em sn_query_gen.segments.manual_segment_scale_factor) | Pontuação padrão |
| LLM tratamento | Mantenha todos os filtros, a menos que irrelevantes | Critique cada filtro individualmente |
| Rótulo do prompt | segmento_definido_pelo_usuário |
automated_segment |
| Ciclo de vida | Totalmente controlado pelo administrador | Vinculado à atividade/uso do registro de origem |
| Enviado com o app | Sim (conjunto de atualizações) | Não (gerado no tempo de execução) |
Como os segmentos funcionam
O sistema usa a pesquisa com IA para encontrar segmentos semanticamente semelhantes à consulta do usuário. A Pesquisa com IA indexa os campos Nome, Descrição, Entidade e Filtro na tabela Segmentos, comparando-os com a consulta do usuário para produzir um subconjunto de segmentos relevantes.
Na chamada de LLM, o sistema passa o Nome, a Descrição, a Entidade e os Filtros. O LLM usa os segmentos como blocos de construção para gerar uma nova consulta. Por exemplo, se um usuário perguntar "Incidentes não atribuídos localizados em San Diego" e o segmento "Incidentes não atribuídos" for passado para o LLM, o LLM usará o filtro do segmento como o ponto de partida e anexará o filtro de local "San Diego" no topo do segmento.
| Etapa | Finalidade | Saída |
|---|---|---|
| 1: Entrada | Capture a consulta de linguagem natural do usuário | Texto bruto da consulta |
| 2: Pesquisar | Encontre segmentos pré-criados semanticamente semelhantes | Subconjunto de segmentos relevantes |
| 3: Pontuação | Classifique o conjunto de segmentos relevantes com base em suas pontuações de semelhança semântica | O subconjunto de segmentos relevantes, agora classificados e classificados |
| 4: Contexto | Forneça metadados de segmento ao LLM | Dados do segmento estruturado |
| 5: Gerar | Combine lógica de segmento com novas condições | Consulta executável concluída |
Como os segmentos manuais funcionam
Os segmentos manuais atendem a duas funções no momento da consulta:
- Descoberta de entidade
- Em consultas iniciais sem contexto anterior, correspondências de segmento podem adicionar ou impulsionar entidades na lista de entidades. Uma correspondência com um nome de segmento manual ajuda a identificar a entidade pretendida adicionando-a ou aumentando-a na lista de candidatos. . Se um usuário perguntar "Mostrar incidentes críticos em aberto" e existir um segmento manual chamado "Incidentes críticos em aberto" na tabela Incidente [incidente], o.
incidentea entidade é impulsionada nos resultados. - Provisão de filtro
- Os segmentos correspondentes são formatados no contexto de prompt do LLM. O LLM vê:
Em seguida, o LLM decide se os filtros do segmento devem ser reutilizados total ou parcialmente ao criar a consulta. Os segmentos manuais são rotulados**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"}, ...] }segmento_definido_pelo_usuárioNo prompt, que informa ao LLM para reter todos os filtros, a menos que seja completamente irrelevante.
Aumento manual de pontuação do segmento
Os segmentos manuais recebem um aumento de prioridade. Quando o mecanismo pesquisa segmentos relevantes, ele pontua cada resultado por semelhança semântica: O quão próximo o nome e a descrição do segmento correspondem à pergunta do usuário. Por padrão, os segmentos manuais recebem um aumento de 5% aplicado sobre sua pontuação bruta de semelhança.
O fator de aumento é configurável por meio da propriedade do sistema sn_query_gen.segments.manual_segment_scale_factor. Aumentando, por exemplo, para 1,10 , eleva os segmentos manuais com mais força. Definindo como 1,0 remove totalmente o impulso.
Na prática, os segmentos automatizados geralmente têm nomes que correspondem parcialmente aos enunciados do usuário. Por exemplo, um relatório chamado "Incidentes em aberto" pode ter uma pontuação semelhante a um segmento manual chamado "Incidentes críticos em aberto". O impulso garante que seus segmentos feitos à mão e ajustados por domínio surjam antes dos gerados pelo sistema quando ambos são correspondências próximas.
Como funciona a pontuação do segmento
- Pesquisa com IA retorna uma pontuação bruta de semelhança semântica (0,0 a 1,0) para cada segmento candidato.
- Segmentos abaixo do limite de correspondência (padrão
0,70) são descartados. - As pontuações do segmento manual são multiplicadas pelo fator de escala (padrão
1,05). - Os resultados são classificados por pontuação aprimorada e limitados ao limite de resultados.
Origens de segmento automáticas
O sistema gera automaticamente segmentos a partir de fontes de dados existentes em uma programação. . Geração de consultas O trabalho Sincronizar segmentos cria segmentos automaticamente, executados na instalação e semanalmente por padrão.
| Origem | O que ele extrai |
|---|---|
| Relatórios salvos (sys_report) | Filtros de relatório de relatórios exibidos recentemente |
| Fontes de relatório (sys_report_source) | Filtros da fonte de dados de análise |
| Indicadores de PA (pa_cubos) | Condições do indicador da Análise de desempenho |
| Filtros salvos (sys_filter) | Somente filtros salvos globais (exclui filtros específicos do usuário e do grupo) |
| Módulos de app (sys_app_module) | Filtros de exibição de lista no nível do módulo |
Regras de segmento automatizadas
Para reduzir o ruído de segmentos desatualizados e irrelevantes, o trabalho segue regras específicas. Os segmentos baseados em relatórios, origens de relatório ou origens de indicador estarão ativos somente se os registros atenderem a determinados critérios:
- Os relatórios devem ser compartilhados, criados por um usuário com uma função de gerente de análise (admin, dashboard_admin, report_admin, pa_admin ou viz_admin), e foram executados recentemente (dentro de 180 dias por padrão).
- As origens de relatório devem ser incluídas em uma visualização de dados ou usadas em um relatório executado recentemente.
- As origens do indicador devem ser vinculadas a indicadores com pontuações que foram alteradas recentemente.
Para relatórios, "Executar recentemente" é definido pelo sn_query_gen.segments.reports.last_viewed_threshold_dayspropriedade do sistema. O valor padrão é 180 dias.
Para origens de indicador, o intervalo de tempo para "Mudados recentemente" depende da frequência do indicador:
- Diariamente: Últimos 7 dias
- Semanal: Últimos 30 dias
- Semanal: Últimos 30 dias
- Mensal: Últimos 90 dias
- Quatro semanas: Últimos 90 dias
- Bimestral: Últimos 90 dias
- Trimestralmente: Últimos 180 dias
- Trimestre fiscal: Últimos 180 dias
- Seis meses: Últimos 12 meses
- Anual: Últimos 24 meses
- Fiscal anual: Últimos 24 meses
Você pode alterar os períodos de tempo das origens do indicador aplicando um multiplicador usando sn_query_gen.segments.indicator.inactivity_threshold_multiplierpropriedade do sistema. O valor deve ser um número inteiro, o que significa que você só pode prolongar os períodos, não encurtá-los.
Desabilitando origens de segmento
Você pode desabilitar completamente a criação de segmentos ou para tipos de origem individuais. Você pode desabilitar a geração de segmentos para solucionar problemas ou se os segmentos de uma origem estiverem "ruidosos". Cada tipo de origem tem um correspondente sn_query_gen.segments.disable.*propriedade do sistema. Para desabilitar segmentos para essa origem, defina a propriedade do sistema correspondente como verdadeiro . Todos os segmentos existentes criados a partir de origens desse tipo são excluídos de Explorador de dados de IA resultados da pesquisa. Nenhum segmento novo desse tipo foi criado. Durante o próximo trabalho Sincronizar segmentos, todos os segmentos desse tipo serão desativados. Para obter mais informações, consulte Propriedades de geração de consulta.