Modelo de dados de segmento manual e comportamento de sincronização
Os segmentos manuais usam um modelo de dados de duas tabelas com sincronização automática entre a tabela de configuração e a tabela de tempo de execução usada para operações de pesquisa.
Visão geral do modelo de dados
Os segmentos manuais usam uma arquitetura de duas tabelas que separa a configuração dos dados de tempo de execução. Esse design garante que a tabela de configuração permaneça a única fonte da verdade enquanto a tabela de tempo de execução é otimizada para desempenho de pesquisa.
- tabela de configuração: sn_query_gen_segment_table_config
- É aqui que você define segmentos manuais. Cada registro representa uma configuração de segmento que os administradores criam e mantêm.
- Tabela sincronizada: sn_query_gen_segment
- Você não grava nesta tabela diretamente. Quando uma configuração de segmento manual é criada ou atualizada, uma regra de negócios a sincroniza automaticamente nesta tabela, que é consultada no momento da pesquisa.
Campos da tabela de configuração
. sn_query_gen_segment_table_ a tabela de configuração contém os seguintes campos para definir segmentos manuais:
| Campo | Nome da Coluna | Comprimento máximo | Necessários | Finalidade |
|---|---|---|---|---|
| Nome da tabela | table_name | — | Sim | A tabela (entidade) à qual o segmento se aplica. Deve ter uma entidade ativa na camada semântica. |
| Nome | name | 255 caracteres | Sim | Nome amigável ao qual o LLM corresponde durante a pesquisa semântica. |
| Descrição | description | 4 000 caracteres | Não | Esclarecimento opcional usando termos comumente usados. Ajuda o LLM a entender quando aplicar o segmento. |
| Filtro | filter | 4 000 caracteres | Sim | Consulta codificada que define as condições de filtro do segmento. Usa o construtor de condições (v2). |
| Ativo | active | — | Não | O padrão é verdadeiro . Quando falso , o segmento está desativado e excluído da pesquisa. |
Campos de tabela sincronizados
. sn_query_gen_segment a tabela contém os dados de tempo de execução usados para operações de pesquisa:
| Campo | Origem |
|---|---|
| name | Copiado da configuração de segmento manual |
| description | Copiado da configuração de segmento manual |
| filter | Copiado da configuração de segmento manual |
| table | De table_name |
| entity | Referência resolvida para sn_query_gen_entity |
| source_table | Sempre sn_query_gen_segment_table_config |
| source_id | Sys_id do registro de configuração de segmento manual |
| active | Manual_segment.active E entity.active |
Comportamento de sincronização
Os segmentos manuais são sincronizados automaticamente entre as tabelas de configuração e tempo de execução. Você não precisa acionar a sincronização manualmente.
| Gatilho | Quando | O que acontece |
|---|---|---|
| Regra de negócio na configuração | Insira ou atualize em sn_query_gen_segment_table_config | Sincroniza o registro individual em sn_query_gen_segment (assíncrono) |
| Entidade inserir/atualizar | Quando uma entidade é criada ou atualizada com active=true | Re-sincroniza todos os segmentos (incluindo manual) para essa entidade |
| Trabalho agendado semanalmente | Aos sábados à meia-noite | Sincronização completa de todas as origens de 6 segmentos; limpeza de registros órfãos |
Durante a sincronização, um segmento manual será qualificado se:
- active = true no registro de configuração
- A tabela referenciada tem uma entidade ativa em sn_query_gen_entity
Se uma das condições não for atendida, o segmento sincronizado será desativado (não excluído).
Ativação e desativação
O status ativo de um segmento sincronizado é: Manual_segment.active E entity.active .
| Evento | Resultado |
|---|---|
| Configuração de segmento manual active→ falso | Segmento sincronizado desativado |
| Configuração de segmento manual active→ verdadeiro | Segmento sincronizado reativado (se a entidade também estiver ativa) |
| Entidade active→ falso | Todos os segmentos dessa entidade desativados |
| Configuração de segmento manual excluída | Segmento sincronizado excluído |
| Entidade excluída | Segmentos órfãos limpos pelo trabalho agendado |
Os segmentos desativados são excluídos dos resultados da pesquisa.
Proteções de ACL
A tabela de segmento sincronizada tem ACLs estritas para que a tabela de configuração permaneça a única fonte de verdade:
- Criar: Bloqueado ( admin_overrides = false): os segmentos só podem ser criados por meio de sincronização
- Gravar em name: Bloqueado: Deve ser alterado no registro de configuração
- Gravar em description: Bloqueado: Deve ser alterado no registro de configuração
Considerações de comprimento do filtro
Enquanto o. filtero campo oferece suporte a até 4 000 caracteres, a propriedade do sistema sn_query_gen.segments.max_filter_lengtho padrão é 2 000. Filtros maiores que este limite são truncados quando incluídos no prompt do LLM.
Domain Separation
Os segmentos manuais oferecem suporte à separação de domínio. Ao criar um registro de configuração de segmento com um específico sys_domain, o segmento sincronizado herda esse domínio. No momento da pesquisa, os segmentos são filtrados pelo contexto de domínio do usuário.
Se a separação de domínio não estiver habilitada em sua instância, este campo ficará inativo e poderá ser ignorado.