Spaces:
Sleeping
Sleeping
File size: 892 Bytes
300df0f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | from __future__ import annotations
from typing import Any, Optional
from src.config import NEO4J_PASSWORD, NEO4J_URI, NEO4J_USER
from src.contract.citations import LegalCitation
from src.embeddings.retriever import EmbeddingRetriever
class LegalContextAssembler:
"""Assembles Document -> Article -> Clause -> Point context for legal segment uids."""
def __init__(self, retriever: Optional[EmbeddingRetriever] = None) -> None:
self._retriever = retriever or EmbeddingRetriever(NEO4J_URI, NEO4J_USER, NEO4J_PASSWORD)
def close(self) -> None:
self._retriever.close()
def assemble(self, uid: str) -> Optional[dict[str, Any]]:
return self._retriever.get_segment_context(uid)
def citation_for(self, uid: str) -> Optional[LegalCitation]:
context = self.assemble(uid)
return LegalCitation.from_context(context) if context else None
|