Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-rag/src/lexigram/ai/rag/context_compression/__init__.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Context compression strategies for RAG systems. 

2 

3This module provides various compression techniques to reduce token usage 

4while maintaining semantic content and relevance: 

5 

6- Extractive compression: Select most relevant sentences 

7- Abstractive compression: LLM-based summarization 

8- Reranking-based compression: Rerank and filter by relevance 

9- Token-based compression: Truncate to token limits 

10- Semantic deduplication: Remove redundant information 

11 

12Examples: 

13 >>> from lexigram.ai.rag.context_compression import ( 

14 ... ExtractiveSummaryCompressor, 

15 ... AbstractiveCompressor, 

16 ... TokenLimitCompressor, 

17 ... ) 

18 >>> 

19 >>> # Extractive compression 

20 >>> compressor = ExtractiveSummaryCompressor(max_sentences=3) 

21 >>> compressed = await compressor.compress(context, query="What is AI?") 

22 >>> 

23 >>> # Abstractive compression with LLM 

24 >>> compressor = AbstractiveCompressor(llm_client=llm, max_tokens=100) 

25 >>> compressed = await compressor.compress(context, query="Explain ML") 

26 >>> 

27 >>> # Token limit compression 

28 >>> compressor = TokenLimitCompressor(max_tokens=500) 

29 >>> compressed = await compressor.compress(context) 

30 

31""" 

32 

33from __future__ import annotations 

34 

35from lexigram.ai.rag.context_compression.abstractive import AbstractiveCompressor 

36from lexigram.ai.rag.context_compression.base import AbstractCompressor 

37from lexigram.ai.rag.context_compression.compress import compress_context 

38from lexigram.ai.rag.context_compression.extractive import ExtractiveSummaryCompressor 

39from lexigram.ai.rag.context_compression.hybrid import HybridCompressor 

40from lexigram.ai.rag.context_compression.semantic_dedup import ( 

41 SemanticDeduplicationCompressor, 

42) 

43from lexigram.ai.rag.context_compression.token_limit import TokenLimitCompressor 

44from lexigram.ai.rag.context_compression.types import ( 

45 CompressionResult, 

46 CompressionStrategy, 

47) 

48 

49__all__ = [ 

50 "AbstractCompressor", 

51 "AbstractiveCompressor", 

52 "CompressionResult", 

53 "CompressionStrategy", 

54 "ExtractiveSummaryCompressor", 

55 "HybridCompressor", 

56 "SemanticDeduplicationCompressor", 

57 "TokenLimitCompressor", 

58 "compress_context", 

59]