# Chunk-Browser

## Uebersicht

Der Chunk-Browser ermoeglicht das sequenzielle Durchblaettern aller Chunks in einer Qdrant-Collection. Er ist als Tab "Chunk-Browser" auf der RAG-Seite (`/ai/rag`) verfuegbar.

**URL:** `https://macmini:3002/ai/rag` → Tab "Chunk-Browser"

---

## Funktionen

### Collection-Auswahl
Dropdown mit allen verfuegbaren Compliance-Collections:

- `bp_compliance_gesetze`
- `bp_compliance_ce`
- `bp_compliance_datenschutz`
- `bp_dsfa_corpus`
- `bp_compliance_recht`
- `bp_legal_templates`
- `bp_compliance_gdpr`
- `bp_compliance_schulrecht`
- `bp_dsfa_templates`
- `bp_dsfa_risks`

### Seitenweise Navigation
- 20 Chunks pro Seite
- Zurueck/Weiter-Buttons
- Seitennummer und Chunk-Zaehler
- Cursor-basierte Pagination via Qdrant Scroll API

### Textsuche
- Filtert Chunks auf der aktuell geladenen Seite
- Treffer werden gelb hervorgehoben
- Suche ueber den Chunk-Text (payload.text, payload.content, payload.chunk_text)

### Chunk-Details
- Klick auf einen Chunk klappt alle Metadaten aus
- Zeigt: regulation_code, article, language, source, licence, etc.
- Chunks haben eine fortlaufende Nummer (#1, #2, ...)

### Integration mit Regulierungen-Tab
Der Button "In Chunks suchen" bei jeder Regulierung wechselt zum Chunk-Browser mit:
- Vorauswahl der richtigen Collection
- Vorausgefuelltem Suchbegriff (Regulierungsname)

---

## API

### Scroll-Endpoint (API Proxy)

```
GET /api/legal-corpus?action=scroll&collection=bp_compliance_ce&limit=20&offset={cursor}
```

**Parameter:**

| Parameter | Typ | Beschreibung |
|-----------|-----|--------------|
| `collection` | string | Qdrant Collection Name |
| `limit` | number | Chunks pro Seite (max 100) |
| `offset` | string | Cursor fuer naechste Seite (optional) |
| `text_search` | string | Textsuche-Filter (optional) |

**Response:**
```json
{
  "chunks": [
    {
      "id": "uuid",
      "text": "...",
      "regulation_code": "GDPR",
      "article": "Art. 5",
      "language": "de"
    }
  ],
  "next_offset": "uuid-or-null",
  "total_in_page": 20
}
```

### Collection-Count-Endpoint

```
GET /api/legal-corpus?action=collection-count&collection=bp_compliance_ce
```

**Response:**
```json
{
  "count": 12345
}
```

---

## Technische Details

- Der API-Proxy spricht direkt mit Qdrant (Port 6333) via dessen `POST /collections/{name}/points/scroll` Endpoint
- Kein Embedding oder rag-service erforderlich
- Textsuche ist client-seitig (kein Embedding noetig)
- Pagination ist cursor-basiert (Qdrant `next_page_offset`)

---

## Weitere Features auf der RAG-Seite

### Originalquelle-Links
Jede Regulierung in der Tabelle hat einen "Originalquelle" Link zum offiziellen Dokument (EUR-Lex, gesetze-im-internet.de, etc.). Definiert in `REGULATION_SOURCES` (88 Eintraege).

### Low-Chunk-Warnung
Regulierungen mit weniger als 10 Chunks aber einem erwarteten Wert >= 10 werden mit einem Amber-Warnsymbol markiert. Dies hilft, fehlgeschlagene oder unvollstaendige Ingestions zu erkennen.
