Segmente in Abfragegenerierung Semantische Ebene
Segmente sind vordefinierte Filterbedingungen, die die Geschäftsterminologie bestimmten Abfragefiltern zuordnen, sodass die semantische Ebene Fragen in natürlicher Sprache in genaue Datenbankabfragen übersetzen kann.
Segmente bieten nicht offensichtlichen Kontext, um die semantische Ebene bei der Auswahl der richtigen Entität, Dimension und Werte zu unterstützen. Beispiel: In der Äußerung „wie viele offene Notfall-Change-Anforderungen gibt es?“ identifiziert ein Segment, dass „offen“ „aktiv=wahr“ bedeutet und „Notfall“ ein Typ und keine Priorität ist.
Wenn ein Anwender eine Frage stellt, sucht die Abfragegenerierungs-Engine nach übereinstimmenden Segmenten und schließt ihre Filter in den LLM-Prompt ein, damit das Modell sie wiederverwenden kann, um genaue Abfragen zu erstellen.
Es gibt zwei Arten von Segmenten:
- Automatisierte Segmente
- Vom System aus Berichten, Dashboards, Filtern, Modulen und Indikatorquellen generiert. Namen sind häufig technisch, z. B. „Incidents.Offen“.
- Manuelle Segmente
- Erstellt von Administratoren über die Tabelle „Manuelle Segmentkonfiguration“. Namen sind anwenderfreundlich – z. B. „kritische offene Incidents“. Manuelle Segmente verwenden ein Datenmodell mit zwei Tabellen mit automatischer Synchronisierung und können mit Anwendungen über Plugins geliefert werden.
| Manuelle Segmente | Automatisierte Segmente | |
|---|---|---|
| Erstellt von | Administrator, versendet über Update-Satz | Systemgeneriert aus Berichten, Dashboards, Filtern, Modulen |
| Namensqualität | Anwenderfreundlich, optimiert für die Suche | Häufig technisch, z. B. „Incidents.Offen“ |
| Suchpriorität | 5 %-Boost über automatisiert (einstellbar in sn_query_gen.segments.manual_segment_scale_factor) | Standardbewertung |
| LLM-Behandlung | Behalten Sie alle Filter bei, es sei denn, sie sind irrelevant | Kritisieren Sie jeden Filter einzeln |
| Aufforderungsbezeichnung | User_defined_Segment |
Automated_Segment |
| Lebenszyklus | Vollständig vom Administrator gesteuert | An Aktivität/Nutzung des Quelldatensatzes gebunden |
| Wird mit App geliefert | Ja (Update-Satz) | Nein (zur Laufzeit generiert) |
Funktionsweise von Segmenten
Das System verwendet die KI-Suche, um Segmente zu finden, die der Abfrage des Anwenders semantisch ähnlich sind. Die KI-Suche indiziert die Felder „Name“, „Beschreibung“, „Entität“ und „Filter“ in der Segmenttabelle und vergleicht sie mit der Abfrage des Anwenders, um eine Teilmenge relevanter Segmente zu erstellen.
Im LLM-Aufruf übergibt das System den Namen, die Beschreibung, die Entität und die Filter. Das LLM verwendet die Segmente als Bausteine zum Generieren einer neuen Abfrage. Wenn ein Anwender beispielsweise „nicht zugewiesene Incidents in San Diego“ fragt und das Segment „nicht zugewiesene Incidents“ an den LLM übergeben wird, verwendet der LLM den Filter des Segments als Ausgangspunkt und hängt den Standortfilter „San Diego“ oben am Segment an.
| Schritt | Zweck | Ausgabe |
|---|---|---|
| 1: Eingabe | Erfassen Sie die Abfrage in natürlicher Sprache des Anwenders | Rohabfragetext |
| 2: Suchen | Suchen Sie semantisch ähnliche vorgefertigte Segmente | Teilmenge relevanter Segmente |
| 3: Bewertung | Ordnen Sie den Satz relevanter Segmente basierend auf ihren Punktzahlen für die semantische Ähnlichkeit an | Die Teilmenge der relevanten Segmente, jetzt geordnet und sortiert |
| 4: Kontext | Geben Sie Segment-Metadaten für LLM an | Strukturierte Segmentdaten |
| 5: Generieren | Kombinieren Sie Segmentlogik mit neuen Bedingungen | Ausführbare Abfrage abschließen |
Funktionsweise manueller Segmente
Manuelle Segmente dienen zwei Rollen zum Abfragezeitpunkt:
- Entitäts-Discovery
- Bei Erstabfragen ohne vorherigen Kontext können Segmentabgleiche Entitäten in der Entitätsliste hinzufügen oder erhöhen. Eine Übereinstimmung mit einem manuellen Segmentnamen hilft, die beabsichtigte Entität zu identifizieren, indem sie der Kandidatenliste hinzugefügt oder verstärkt wird. Wenn ein Anwender „kritische offene Incidents anzeigen“ fragt und ein manuelles Segment mit dem Namen „kritische offene Incidents“ in der Tabelle „Incidents [Incident] vorhanden ist, wird die verwendet
IncidentEntität wird in den Ergebnissen erhöht. - Filterbereitstellung
- Übereinstimmende Segmente werden im LLM-Prompt-Kontext formatiert. Das LLM sieht:
Das LLM entscheidet dann, ob die Filter des Segments beim Erstellen der Abfrage vollständig oder teilweise wiederverwendet werden sollen. Manuelle Segmente sind gekennzeichnet**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"}, ...] }User_defined_SegmentIn der Eingabeaufforderung, die dem LLM anweist, alle Filter beizubehalten, es sei denn, sie sind völlig irrelevant.
Manuelle Segmentbewertungssteigerung
Manuelle Segmente erhalten eine Prioritätssteigerung. Wenn die Engine nach relevanten Segmenten sucht, bewertet sie jedes Ergebnis nach semantischer Ähnlichkeit, d. h. wie eng Name und Beschreibung des Segments mit der Frage des Anwenders übereinstimmen. Standardmäßig erhalten manuelle Segmente einen 5 %-Boost, der zusätzlich zur Rohähnlichkeitspunktzahl angewendet wird.
Der Verstärkungsfaktor kann über die Systemeigenschaft konfiguriert werden sn_query_gen.segments.manual_segment_scale_factor. Erhöhen, z. B. auf 1,10 , Erhöht manuelle Segmente stärker. Wird auf festgelegt 1,0 Entfernt den Boost vollständig.
In der Praxis haben automatisierte Segmente häufig Namen, die teilweise mit Anwenderäußerungen übereinstimmen. Beispielsweise kann ein Bericht mit der Bezeichnung „offene Incidents“ ähnlich wie ein manuelles Segment mit der Bezeichnung „kritische offene Incidents“ Punkten. Der Boost stellt sicher, dass Ihre handgefertigten, domänenoptimierten Segmente vor systemgenerierten Segmenten auftauchen, wenn beide Übereinstimmungen aufweisen.
Funktionsweise der Segmentbewertung
- KI-Suche Gibt eine Rohpunktzahl für semantische Ähnlichkeit (0,0–1,0) für jedes Kandidatensegment zurück.
- Segmente unterhalb des Übereinstimmungsschwellenwerts (Standard
0,70) Werden verworfen. - Manuelle Segmentpunktzahlen werden mit dem Skalierungsfaktor multipliziert (Standard
1,05). - Ergebnisse werden nach erhöhter Punktzahl sortiert und auf das Ergebnislimit begrenzt.
Automatische Segmentquellen
Das System generiert automatisch Segmente aus vorhandenen Datenquellen in einem Zeitplan. Die Abfragegenerierung Der Auftrag „Segmente synchronisieren“ erstellt automatisch Segmente, wird bei der Installation und dann standardmäßig wöchentlich ausgeführt.
| Quelle | Was abgerufen wird |
|---|---|
| Gespeicherte Berichte (sys_Report) | Berichtsfilter aus zuletzt angezeigten Berichten |
| Berichtsquellen (sys_Report_Source) | Analytics-Datenquellenfilter |
| PA-Indikatoren (PA_Cubes) | Performance Analytics-Indikatorbedingungen |
| Gespeicherte Filter (sys_Filter) | Nur global gespeicherte Filter (ausgenommen anwenderspezifische und gruppenspezifische Filter) |
| App-Module (sys_App_Module) | Listenansichtsfilter auf Modulebene |
Automatisierte Segmentregeln
Um Rauschen aus veralteten und irrelevanten Segmenten zu reduzieren, befolgt der Auftrag bestimmte Regeln. Segmente basierend auf Berichten, Berichtsquellen oder Indikatorquellen sind nur aktiv, wenn die Datensätze bestimmte Kriterien erfüllen:
- Berichte müssen freigegeben und von einem Anwender mit der Rolle „Analytics-Manager“ (admin, Dashboard_admin, Report_admin, PA_admin oder viz_admin) erstellt werden. und wurden kürzlich ausgeführt (standardmäßig innerhalb von 180 Tagen).
- Berichtsquellen müssen in eine Datenvisualisierung aufgenommen oder in einem kürzlich ausgeführten Bericht verwendet werden.
- Indikatorquellen müssen mit Indikatoren mit Punktzahlen verknüpft werden, die sich kürzlich geändert haben.
Für Berichte wird „kürzlich ausführen“ von definiert sn_query_gen.segments.reports.last_viewed_threshold_daysSystemeigenschaft. Der Standardwert ist 180 Tage.
Für Indikatorquellen hängt die Zeitspanne für „kürzlich geändert“ von der Indikatorhäufigkeit ab:
- Täglich: Letzte 7 Tage
- Wöchentlich: Letzte 30 Tage
- Zweiwöchentlich: Letzte 30 Tage
- Monatlich: Letzte 90 Tage
- Vier Wochen: Letzte 90 Tage
- Zweimonatlich: Letzte 90 Tage
- Vierteljährlich: Letzte 180 Tage
- Geschäftsquartal: Letzte 180 Tage
- Sechs Monate: Letzte 12 Monate
- Jährlich: Letzte 24 Monate
- Geschäftsjahr: Letzte 24 Monate
Sie können die Zeitspannen für Indikatorquellen ändern, indem Sie einen Multiplikator mit anwenden sn_query_gen.segments.indicator.inactivity_threshold_multiplierSystemeigenschaft. Der Wert muss eine Ganzzahl sein, d. h. Sie können die Zeiträume nur verlängern, nicht kürzen.
Segmentquellen werden deaktiviert
Sie können die Segmenterstellung insgesamt oder für einzelne Quelltypen deaktivieren. Sie können die Segmentgenerierung deaktivieren, um Probleme zu beheben, oder wenn Segmente aus einer Quelle „verrauscht“ sind. Jeder Quelltyp hat einen entsprechenden sn_query_gen.segments.disable.*Systemeigenschaft. Deaktivieren Sie Segmente für diese Quelle, indem Sie die entsprechende Systemeigenschaft auf festlegen Wahr . Alle vorhandenen Segmente, die aus Quellen dieses Typs erstellt wurden, werden von ausgeschlossen KI-Datenexplorer Suchergebnisse. Es werden keine neuen Segmente dieses Typs erstellt. Während des nächsten Auftrags zum Synchronisieren von Segmenten werden alle Segmente dieses Typs deaktiviert. Weitere Informationen finden Sie unter Eigenschaften der Abfragegenerierung.