Source code for lalandre_rag.retrieval.context.models
"""
Context Models
Clean separation between act-level metadata, document metadata, and content slices.
"""
from dataclasses import dataclass
from typing import Any, Dict, List, Optional
[docs]
@dataclass
class ActContext:
"""
Act-level metadata, shared across multiple slices.
"""
act_id: int
celex: str
title: str
act_type: str
regulatory_level: Optional[str] = None # L1, L2, L3
url_eurlex: Optional[str] = None
relations: Optional[List[Dict[str, Any]]] = None
subjects: Optional[List[str]] = None
adoption_date: Optional[str] = None
force_date: Optional[str] = None
[docs]
@dataclass
class ContextSlice:
"""
A context slice used by the LLM, with explicit act + doc metadata separation.
"""
content: str
score: float
act: ActContext
doc: DocumentMeta
trace: Optional[Dict[str, Any]] = None