138 lines
4.3 KiB
Markdown
138 lines
4.3 KiB
Markdown
# Wirksame Kategorie- und Quellenfilter
|
|
|
|
Diese Version korrigiert die Filtersemantik und ergänzt Quellenfilter für Lernen, Anzeige und Thinking.
|
|
|
|
## Zwei Ebenen
|
|
|
|
Die Environment-Variablen sind administrative Obergrenzen:
|
|
|
|
```env
|
|
BRAIN_LEARNING_CATEGORIES=
|
|
BRAIN_DISPLAY_CATEGORIES=
|
|
BRAIN_THINKING_CATEGORIES=
|
|
BRAIN_LEARNING_SOURCES=
|
|
BRAIN_DISPLAY_SOURCES=
|
|
BRAIN_THINKING_SOURCES=
|
|
```
|
|
|
|
Die WebUI speichert zusätzliche Laufzeiteinschränkungen in `runtime-settings.json`.
|
|
|
|
```text
|
|
wirksamer Filter = Environment ∩ WebUI
|
|
```
|
|
|
|
Eine leere Environment-Liste oder `*` ist unbegrenzt. Eine leere WebUI-Liste bedeutet „alle durch das Environment erlaubten Werte“. Sind Environment und WebUI disjunkt, ist der wirksame Filter absichtlich leer und nicht versehentlich „alle“.
|
|
|
|
Die API liefert sowohl die veränderbaren Werte als auch die effektiven und administrativen Bereiche:
|
|
|
|
```json
|
|
{
|
|
"learning_categories": [],
|
|
"learning_sources": ["internal-kb"],
|
|
"effective_learning": {
|
|
"categories": ["IT-Security"],
|
|
"sources": ["internal-kb"],
|
|
"categories_restricted": true,
|
|
"sources_restricted": true,
|
|
"matches_none": false
|
|
},
|
|
"admin_learning": {
|
|
"categories": ["IT-Security", "Netzwerk"],
|
|
"sources": ["GLPI Knowledge Base", "internal-kb"],
|
|
"categories_restricted": true,
|
|
"sources_restricted": true,
|
|
"matches_none": false
|
|
}
|
|
}
|
|
```
|
|
|
|
Ältere `runtime-settings.json`-Dateien werden feldweise eingelesen. Fehlende neue Felder setzen vorhandene Schalter, Ansicht oder Performancewerte nicht mehr auf Nullwerte zurück.
|
|
|
|
## Kombinationsregeln
|
|
|
|
Innerhalb einer Dimension gilt ODER:
|
|
|
|
```text
|
|
Kategorie = IT-Security ODER Netzwerk
|
|
```
|
|
|
|
Zwischen Kategorie und Quelle gilt UND:
|
|
|
|
```text
|
|
(Kategorie = IT-Security ODER Netzwerk)
|
|
UND
|
|
(Quelle = GLPI Knowledge Base ODER internal-kb)
|
|
```
|
|
|
|
Verglichen wird exakt und ohne Beachtung der Groß-/Kleinschreibung. Die virtuellen Werte sind:
|
|
|
|
```text
|
|
__uncategorized__ = ohne Kategorie
|
|
__unsourced__ = ohne erkennbare Quelle
|
|
```
|
|
|
|
## Welche Quelle wird verwendet?
|
|
|
|
Die logische Quelle eines Wissensknotens wird in dieser Reihenfolge bestimmt:
|
|
|
|
1. `metadata.source` beziehungsweise das `source`-Feld des KB-Dokuments;
|
|
2. bei Webrecherche die Domain der URL, beispielsweise `learn.microsoft.com`;
|
|
3. als Rückfall der technische `origin`-Wert.
|
|
|
|
Damit können produktive GLPI-Beiträge, lokale KB-Dateien, AI-Synthesis-Beiträge und einzelne Webdomains getrennt gesteuert werden.
|
|
|
|
## Lernen
|
|
|
|
Der wirksame Lernfilter gilt jetzt für:
|
|
|
|
- neue oder geänderte Embeddings;
|
|
- lokale Fallback-Embeddings;
|
|
- semantische Abfragen über `/api/query`;
|
|
- sofortiges Lernen neuer AI-Synthesis-Artikel;
|
|
- sofortiges Lernen akzeptierter Research-Evidence.
|
|
|
|
Bereits vorhandene Vektoren außerhalb des Filters bleiben in SQLite gespeichert, werden aber bei Retrieval und neuem Lernen nicht verwendet. Eine spätere Filtererweiterung kann sie ohne erneute Berechnung wieder aktivieren.
|
|
|
|
## Anzeige
|
|
|
|
Die Anzeige filtert zunächst ausschließlich `knowledge`, `ai-think` und `external`. Danach werden nur direkt angeschlossene Taxonomie-Nodes ergänzt:
|
|
|
|
- `category`;
|
|
- `source`;
|
|
- `concept`.
|
|
|
|
Semantische Kanten dürfen keine anders kategorisierten oder aus einer anderen Quelle stammenden Wissensartikel mehr in die Ansicht hineinziehen. Das gilt für Neural, Honeycomb und Constellation.
|
|
|
|
Der Anzeige-Filter ist weiterhin eine Rendersteuerung und keine Zugriffskontrolle; `/api/graph` liefert den vollständigen Graphen.
|
|
|
|
## Thinking
|
|
|
|
Der wirksame Thinking-Filter gilt jetzt für:
|
|
|
|
- beide Nodes eines Relationskandidaten;
|
|
- zusätzliche Quellen des Themenverbunds;
|
|
- AI-Synthesis-Quellenauswahl;
|
|
- wiederverwendete Research-Evidence;
|
|
- SearXNG-Treffer der Relationsrecherche;
|
|
- neu akzeptierte Volltextbelege der iterativen Artikelrecherche.
|
|
|
|
Eine externe Quelle außerhalb des Thinking-Quellenfilters wird nicht als Beleg akzeptiert und nicht in die Artikelsynthese übernommen.
|
|
|
|
## WebUI
|
|
|
|
Unter **FILTER** stehen nun sechs Listen zur Verfügung:
|
|
|
|
- Kategorien: Lernen, Anzeige, Thinking;
|
|
- Quellen: Lernen, Anzeige, Thinking.
|
|
|
|
Die WebUI zeigt die wirksame Schnittmenge an. Optionen außerhalb der Environment-Obergrenze werden deaktiviert und als `durch ENV ausgeschlossen` markiert.
|
|
|
|
## APIs
|
|
|
|
```http
|
|
GET /api/runtime-settings
|
|
PUT /api/runtime-settings
|
|
GET /api/categories
|
|
GET /api/sources
|
|
```
|