Observed since 20 Oct, 18:02 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Canonicalization helpers and plugins for the AccuralAI LLM pipeline.
accuralai-canonicalize provides advanced canonicalization utilities and plugins for the AccuralAI pipeline. The library includes sophisticated token optimization, semantic caching, and comprehensive metrics tracking to maximize LLM efficiency and reduce costs.
Install alongside accuralai-core to enable the canonicalizer:
pip install accuralai-core accuralai-canonicalize
The canonicalizer automatically integrates with the AccuralAI pipeline:
accuralai-core generate --prompt "Hello there!"
Configure the canonicalizer in your config.toml:
[canonicalizer]
plugin = "advanced" # Use the advanced canonicalizer
[canonicalizer.options]
# Basic options
normalize_tags = true
auto_cache_key = true
cache_key_metadata_fields = ["topic", "domain"]
# Advanced token optimization
enable_deduplication = true
deduplication_min_length = 10
enable_structure_optimization = true
enable_whitespace_compression = false # Disabled by default - preserving whitespace improves response quality
# Semantic caching
use_semantic_cache_keys = true
semantic_key_max_phrases = 5
# Context-aware processing
optimize_conversation_history = true
max_history_entries = 50
compress_system_prompt = true
# Metrics and telemetry
track_metrics = true
log_optimization_stats = false
# Validation
max_prompt_length = 10000
min_prompt_length = 1
from accuralai_canonicalize.canonicalizer import AdvancedCanonicalizer, CanonicalizerOptions
from accuralai_core.contracts.models import GenerateRequest
# Create canonicalizer with custom options
options = CanonicalizerOptions(
enable_deduplication=True,
enable_structure_optimization=True,
use_semantic_cache_keys=True,
track_metrics=True
)
canonicalizer = AdvancedCanonicalizer(options=options)
# Process a request
request = GenerateRequest(
prompt=" Hello world!!! Hello world!!! ",
system_prompt="You are a helpful assistant.",
tags=["test"]
)
canonical = await canonicalizer.canonicalize(request)
# Access optimization metrics
metrics = canonicalizer.metrics
print(f"Tokens saved: {metrics.tokens_saved}")
print(f"Compression ratio: {metrics.compression_ratio:.2%}")
prompt_template: Template string for prompt formattingnormalize_tags: Normalize and deduplicate tagsdefault_tags: Default tags to add to all requestsmetadata_defaults: Default metadata valuesauto_cache_key: Automatically generate cache keyscache_key_metadata_fields: Metadata fields to include in cache keysenable_deduplication: Remove repeated phrases (default: true)deduplication_min_length: Minimum phrase length for deduplication (default: 10)enable_structure_optimization: Optimize punctuation and formatting (default: true)enable_whitespace_compression: Whitespace compression (default: false - preserving whitespace improves response quality)use_semantic_cache_keys: Use semantic similarity for cache keys (default: false)semantic_key_max_phrases: Maximum phrases to extract for semantic keys (default: 5)optimize_conversation_history: Optimize conversation history (default: true)max_history_entries: Maximum history entries to keep (default: 50)compress_system_prompt: Apply optimizations to system prompt (default: true, but whitespace is preserved)track_metrics: Track optimization metrics (default: true)log_optimization_stats: Log optimization statistics (default: false)max_prompt_length: Maximum prompt length (default: none)min_prompt_length: Minimum prompt length (default: 1)Input: " Hello world with multiple spaces "
Output: " Hello world with multiple spaces " # Whitespace preserved by default
Input: "Hello world Hello world Hello world"
Output: "Hello world"
Input: "Hello!!! How are you??? Fine..."
Output: "Hello! How are you? Fine..."
Input: "Explain Python programming concepts"
Output: Cache key: "sem:a1b2c3d4e5f6g7h8" (groups with similar Python questions)
The canonicalizer provides detailed metrics about optimization effectiveness:
metrics = canonicalizer.metrics
print(f"Original tokens: {metrics.original_token_count}")
print(f"Optimized tokens: {metrics.optimized_token_count}")
print(f"Tokens saved: {metrics.tokens_saved}")
print(f"Compression ratio: {metrics.compression_ratio:.2%}")
print(f"Deduplication applied: {metrics.deduplication_applied}")
print(f"Whitespace compression applied: {metrics.whitespace_compression_applied}")
print(f"Structure optimization applied: {metrics.structure_optimization_applied}")
Typical token savings with the advanced canonicalizer:
The advanced canonicalizer is backward compatible. To migrate:
plugin = "advanced"[canonicalizer.options]
enable_deduplication = true
use_semantic_cache_keys = true
track_metrics = true
Contributions are welcome! Please see the main AccuralAI repository for contribution guidelines.
Apache-2.0
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.2.1 | 26 Jan 2026 | 5 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 18:02 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:6ac52f42085f5730a754efb1dfed287db32cbf68497a5d84c109c9e606c7d377