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

1"""Type definitions for RAG module.""" 

2 

3from __future__ import annotations 

4 

5from dataclasses import dataclass 

6 

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 

13 

14 

15@dataclass(init=False) 

16class Context(DomainModel): 

17 """Retrieved context for RAG generation. 

18 

19 Example: 

20 >>> context = Context( 

21 ... query="What is Lexigram?", 

22 ... documents=[doc1, doc2], 

23 ... metadata={"retrieval_time": 0.123} 

24 ... ) 

25 """ 

26 

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") 

30 

31 

32__all__ = ["Chunk", "Context", "RAGError"]