Object-Modell
Workspaces, Collections, Documents, Chunks, Queries, Traces — wie die Anirag-API-Objects zueinander stehen.
Anirag nutzt 6 Hauptobjekte. Wer diese versteht, kennt 80 % der API.
Hierarchie
Organization
└─ Workspace (1..n)
└─ Collection (1..n)
└─ Document (1..n)
└─ Chunk (1..n)
Query ──┐
Trace ───┴─ verlinkt zu Collection + Document(s) + Chunk(s)
Workspace
Top-Level-Container für Daten-Trennung. Ein Workspace gehört einer Organisation und hat eigene RBAC-Policies.
| Feld | Typ | Required | Beschreibung |
|---|---|---|---|
id | string (cuid) | REQ | Eindeutiger Identifier, z. B. ws_abc123. |
name | string | REQ | Anzeigename, z. B. „Wartungs-Doku Maschinenbau". |
slug | string | REQ | URL-tauglicher Slug, eindeutig pro Org. |
region | Region | REQ | EU-Region (eu_fra, eu_zur, eu_vie). Bestimmt, wo Embeddings + LLM-Calls landen. |
Collection
Innerhalb eines Workspace. Eine Collection ist ein physisch getrennter Vector-Index mit eigener Embedding-Konfiguration.
| Feld | Typ | Required | Beschreibung |
|---|---|---|---|
id | string (cuid) | REQ | z. B. col_abc123. |
name | string | REQ | Anzeigename. |
embedding_model | string | OPT | Default voyage-3. Andere: voyage-3-large, openai-text-embedding-3-small, jina-embeddings-v4. |
chunk_strategy | object | OPT | Default size 512, overlap 64, splitter recursive. Customizable für Spezial-Use-Cases. |
retrieval_mode | enum | OPT | vector | bm25 | hybrid (Default). Hybrid kombiniert Vector + Keyword-Match. |
Document
Eine Datei (PDF, DOCX, MD, URL, Plaintext) innerhalb einer Collection. Wird beim Upload automatisch in Chunks zerlegt + embedded.
| Feld | Typ | Required | Beschreibung |
|---|---|---|---|
id | string (cuid) | REQ | z. B. doc_abc123. |
source_type | enum | REQ | file | url | s3 | text |
source_ref | string | REQ | Pfad, URL oder S3-URI. |
external_id | string | OPT | Ihre eigene ID (z. B. SAP-Material-Nummer). Macht Upserts idempotent. |
status | enum | OPT | pending | processing | indexed | failed |
metadata | json | OPT | Frei-Form-Metadaten (z. B. Author, Department). Filterbar in Queries. |
Chunk
Atomares Embedding-/Retrieval-Element. Wird automatisch erzeugt, ist normalerweise read-only.
| Feld | Typ | Required | Beschreibung |
|---|---|---|---|
id | string (cuid) | REQ | z. B. chunk_abc123. |
document_id | string | REQ | Referenz auf den Parent-Document. |
position | int | REQ | 0-basierte Position im Document (für Reihenfolge-Erhaltung). |
content | string | REQ | Plain-Text des Chunks. |
page_number | int | OPT | Bei PDFs: Seitenzahl für Citations. |
Query
Eine RAG-Anfrage. Erzeugt einen Trace.
| Feld | Typ | Required | Beschreibung |
|---|---|---|---|
id | string (cuid) | REQ | z. B. qry_abc123. |
question | string | REQ | Original-Frage des Users. |
answer | string | OPT | LLM-Antwort. |
citations | Citation[] | OPT | Liste der Quellen mit Score. |
llm_model | string | REQ | Verwendetes Modell, z. B. claude-haiku-4-5. |
cost_eur | decimal | OPT | Tatsächliche Kosten dieser Query. |
status | enum | REQ | success | failed | timeout | rate_limited |
Trace
Vollständige Audit-Aufzeichnung einer Query. Enthält alle Zwischenschritte (siehe Architektur). Retention: 90 Tage Business, 365+ Enterprise.