| | """ |
| | Simple test script for efficient-context library. |
| | """ |
| |
|
| | import logging |
| | from efficient_context import ContextManager |
| | from efficient_context.compression import SemanticDeduplicator |
| | from efficient_context.chunking import SemanticChunker |
| | from efficient_context.retrieval import CPUOptimizedRetriever |
| |
|
| | |
| | logging.basicConfig(level=logging.INFO) |
| | logger = logging.getLogger(__name__) |
| |
|
| | def test_basic_functionality(): |
| | """Test the basic functionality of the library.""" |
| | print("\n=== Testing Basic Functionality ===") |
| | |
| | |
| | document = """Renewable energy is derived from natural sources that are replenished at a higher rate than they are consumed. |
| | Sunlight and wind, for example, are such sources that are constantly being replenished. |
| | Renewable energy resources exist over wide geographical areas, in contrast to fossil fuels, |
| | which are concentrated in a limited number of countries. |
| | |
| | Rapid deployment of renewable energy and energy efficiency technologies is resulting in significant |
| | energy security, climate change mitigation, and economic benefits. |
| | In international public opinion surveys there is strong support for promoting renewable sources |
| | such as solar power and wind power. |
| | |
| | While many renewable energy projects are large-scale, renewable technologies are also suited to rural |
| | and remote areas and developing countries, where energy is often crucial in human development. |
| | As most of the renewable energy technologies provide electricity, renewable energy is often deployed |
| | together with further electrification, which has several benefits.""" |
| | |
| | |
| | context_manager = ContextManager( |
| | compressor=SemanticDeduplicator(threshold=0.85), |
| | chunker=SemanticChunker(chunk_size=100), |
| | retriever=CPUOptimizedRetriever(embedding_model="lightweight") |
| | ) |
| | |
| | |
| | print(f"Document length: {len(document.split())} words") |
| | doc_id = context_manager.add_document(document) |
| | print(f"Added document with ID: {doc_id}") |
| | print(f"Created {len(context_manager.chunks)} chunks") |
| | |
| | |
| | if len(context_manager.chunks) > 0: |
| | print("\nChunk information:") |
| | for i, chunk in enumerate(context_manager.chunks): |
| | print(f"Chunk {i+1}: {len(chunk.content.split())} words") |
| | print(f"Content sample: {chunk.content[:50]}...") |
| | else: |
| | print("\nWARNING: No chunks were created. This is likely an issue with the chunker.") |
| | |
| | print("\nTrying direct chunking:") |
| | chunks = context_manager.chunker.chunk(document, document_id=doc_id) |
| | print(f"Direct chunking created {len(chunks)} chunks") |
| | if len(chunks) > 0: |
| | print(f"Sample chunk content: {chunks[0].content[:50]}...") |
| | |
| | |
| | query = "Tell me about renewable energy sources" |
| | print(f"\nQuery: {query}") |
| | |
| | |
| | context = context_manager.generate_context(query) |
| | print(f"\nGenerated context ({len(context.split())} tokens):") |
| | print(context) |
| | |
| | print("\n=== Test completed successfully ===") |
| |
|
| | if __name__ == "__main__": |
| | test_basic_functionality() |
| |
|