Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-rag/src/lexigram/ai/rag/types.py: 100%
14 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-25 07:19 +0800
1"""Type definitions for RAG module."""
3from __future__ import annotations
5from dataclasses import dataclass
7from lexigram.ai.rag.chunking.types import Chunk
8from lexigram.ai.rag.exceptions import RAGError
9from lexigram.contracts.ai.vector import Document
10from lexigram.contracts.core import Metadata
11from lexigram.domain import DomainModel
12from lexigram.validation import Field
15@dataclass(init=False)
16class Context(DomainModel):
17 """Retrieved context for RAG generation.
19 Example:
20 >>> context = Context(
21 ... query="What is Lexigram?",
22 ... documents=[doc1, doc2],
23 ... metadata={"retrieval_time": 0.123}
24 ... )
25 """
27 query: str = Field(description="Original query")
28 documents: list[Document] = Field(description="Retrieved context documents")
29 metadata: Metadata = Field(default_factory=dict, description="Context metadata")
32__all__ = ["Chunk", "Context", "RAGError"]