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

7 statements  

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

1"""Convenience function for context compression.""" 

2 

3from __future__ import annotations 

4 

5from typing import Any 

6 

7from lexigram.ai.rag.context_compression.strategy_registry import ( 

8 CompressionStrategyRegistry, 

9) 

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

11 CompressionResult, 

12 CompressionStrategy, 

13) 

14 

15 

16async def compress_context( 

17 context: str | list[str], 

18 strategy: CompressionStrategy = CompressionStrategy.EXTRACTIVE, 

19 query: str | None = None, 

20 **kwargs: Any, 

21) -> CompressionResult: 

22 """Convenience function for context compression. 

23 

24 Args: 

25 context: Text or list of texts to compress. 

26 strategy: Compression strategy to use. 

27 query: Optional query for relevance-based compression. 

28 **kwargs: Strategy-specific parameters. 

29 

30 Returns: 

31 CompressionResult. 

32 

33 Example: 

34 >>> result = await compress_context( 

35 ... context=long_text, 

36 ... strategy=CompressionStrategy.EXTRACTIVE, 

37 ... query="What is AI?", 

38 ... max_sentences=5 

39 ... ) 

40 """ 

41 registry = CompressionStrategyRegistry.with_defaults() 

42 return await registry.compress(strategy, context, query, kwargs)