Releases: lpalbou/AbstractCore
AbstractCore 2.5.3
[2.5.3] - 2025-11-10
Added
-
Added programmatic interaction tracing to capture complete LLM interaction history, enabling debugging, compliance, and performance analysis.
-
Introduced provider-level and session-level tracing with customizable metadata and automatic trace collection.
-
Implemented trace retrieval and export utilities for JSONL, JSON, and Markdown formats.
-
Enhanced documentation and examples for interaction tracing usage and benefits.
-
Comprehensive test coverage added for tracing functionality, ensuring reliability and correctness.
-
MiniMax M2 Model Support: Added comprehensive detection for MiniMax M2 Mixture-of-Experts model
- Model Specs: 230B total parameters with 10B active (MoE architecture)
- Capabilities: Native tool calling, structured outputs, interleaved thinking with
<think>tags - Context Window: 204K tokens (industry-leading), optimized for coding and agentic workflows
- Variant Detection: Supports all distribution formats:
minimax-m2(canonical name)MiniMaxAI/MiniMax-M2(HuggingFace official)mlx-community/minimax-m2(MLX quantized)unsloth/MiniMax-M2-GGUF(GGUF format)
- Case-Insensitive: All variants detected regardless of case (e.g.,
MiniMax-M2,MINIMAX-m2) - Source: Official MiniMax documentation (minimax-m2.org, HuggingFace, GitHub)
- License: Apache-2.0 with no commercial restrictions
- Note: Added single entry in
model_capabilities.jsonwith comprehensive aliases for automatic detection across all distribution formats
-
[EXPERIMENTAL] Glyph Visual-Text Compression: Renders long text as optimized images for VLM processing
⚠️ Vision Model Requirement: ONLY works with vision-capable models (gpt-4o, claude-3-5-sonnet, llama3.2-vision, etc.)⚠️ Error Handling:glyph_compression="always"raisesUnsupportedFeatureErrorif model lacks vision support⚠️ Auto Mode:glyph_compression="auto"(default) logs warning and falls back to text processing for non-vision models- PIL-based text rendering with custom font support and proper DPI scaling
- Markdown-like formatting with hierarchical headers, bold/italic text, and smart newline handling
- Multi-column layout support with configurable spacing and margins
- Special OCRB font family support with separate regular/italic variants and stroke-based bold effect
- Font customization via
--font(by name) and--font-path(by file) parameters - Research-based VLM token calculator with provider-specific formulas
- Thread-safe caching system in
~/.abstractcore/glyph_cache/ - Optional dependencies:
pip install abstractcore[compression](removed ReportLab dependency) - Vision capability validation in
AutoMediaHandler._should_apply_compression()
Enhanced
-
Model Capability Filtering: Clean, type-safe system for filtering models by input/output capabilities
- Input Capabilities: Filter by what models can analyze (TEXT, IMAGE, AUDIO, VIDEO)
- Output Capabilities: Filter by what models generate (TEXT, EMBEDDINGS)
- Python API:
list_available_models(input_capabilities=[...], output_capabilities=[...]) - HTTP API:
/v1/models?input_type=image&output_type=text - All Providers: Works consistently across OpenAI, Anthropic, Ollama, LMStudio, MLX, HuggingFace
-
Text File Support: Media module now supports 90+ text-based file extensions with intelligent content detection
- Expanded Mappings: Added support for programming languages (.py, .js, .r, .R, .rs, .go, .jl, etc.), notebooks (.ipynb, .rmd), config files (.yaml, .toml, .ini), web files (.css, .vue, .svelte), build scripts (.sh, .dockerfile), and more
- Smart Detection: Unknown extensions are analyzed via content sampling (UTF-8, Latin-1, etc.) to automatically detect text files
- Programmatic Access: New
get_all_supported_extensions()andget_supported_extensions_by_type()functions for querying supported formats - CLI Enhancement:
@filepathsyntax now works with ANY text-based file (R scripts, Jupyter notebooks, SQL files, etc.) - Fallback Processing: TextProcessor handles all text files via plain text fallback, ensuring universal support
-
Model Capabilities: Added 50+ VLM models (Mistral Small 3.1/3.2, LLaMA 4, Qwen3-VL, Granite Vision)
-
Detection System: All model queries go through
detection.pywith structured logging -
Token Calculation: Accurate image tokenization using model-specific parameters
-
Offline-First Architecture: AbstractCore now enforces offline-first operation by default
- Added centralized offline configuration in
config/manager.py - HuggingFace provider loads models directly from local cache when offline
- Environment variables (
TRANSFORMERS_OFFLINE,HF_HUB_OFFLINE) set automatically - Uses centralized cache directory configuration
- Designed primarily for open source LLMs with full offline capability
- Added centralized offline configuration in
-
HuggingFace Provider: Added vision model support for GLM4V architecture (Glyph, GLM-4.1V)
- Upgraded transformers requirement to >=4.57.1 for GLM4V architecture support
- Added
_is_vision_model()detection for AutoModelForImageTextToText models - Added
_load_vision_model()and_generate_vision_model()methods - Proper multimodal message handling with AutoProcessor
- Suppressed progress bars and processor warnings during model loading
-
Vision Compression: Enhanced test script with exact token counting from API responses
- Added
--detailparameter for Qwen3-VL token optimization (low,high,auto,custom) - Added
--target-tokensparameter for precise token control per image - Improved compression ratio calculation using actual vs estimated tokens
- Added model-specific context window validation and warnings
- Added
-
Media Handler Architecture: Clarified OpenAI vs Local handler usage patterns
- LMStudio uses OpenAIMediaHandler for vision models (API compatibility)
- Ollama uses LocalMediaHandler with custom image array format
- Added comprehensive architecture documentation and diagrams
Fixed
- Cache Creation: Automatic directory creation with proper error handling
- Dependency Validation: Structured logging for missing libraries
- Compression Pipeline: Fixed parameter passing and quality threshold bypass
- GLM4V Architecture: Fixed
KeyError: 'glm4v'when loading Glyph and GLM-4.1V models - Text Formatting Performance: Fixed infinite loop in inline formatting parser for large files
- Text Pagination: Implemented proper multi-image splitting for long texts
- Literal Newline Handling: Fixed
\\nsequences not being converted to actual newlines - Token Estimation: Added model-specific visual token calculations and context overflow protection
- Media Path Logging: Fixed media output paths not showing in INFO logs
- Qwen3-VL Context Management: Auto-adjusts detail level to prevent memory allocation errors
- LMStudio GLM-4.1V Compatibility: Documented LMStudio's internal vision config limitations
- HuggingFace GLM4V Support: Added proper error handling for transformers version requirements
- Requires vision-capable models (llama3.2-vision, qwen2.5vl, gpt-4o, claude-3-5-sonnet, zai-org/Glyph)
- System dependency on poppler-utils may require manual installation on some systems
- Quality assessment heuristics may be overly conservative for some document types
AbstractCore 2.4.1 - Bug fixes
After the refactoring of abstractllm/ into abstractcore/ we still had a bug preventing to use the library, this should hopefully resolve it.
AbstractCore 2.3.8 - Major Release 🚀
This version should be fairly stable - please check the CHANGELOG.md for a better status.
Structured output, tool call, tool syntax rewrite are working.
3 LLM apps are also added:
- summarizer --focus : summarize a document with a particular focus (eg used to compact memory)
- extractor --focus : extract a semantic graph of entities and relationships from a document
- judge --focus : make a critical assessment of a set of document with a particular focus
We also released a website with better documentation : https://lpalbou.github.io/AbstractCore/
And provide llms.txt and llms-full.txt to help LLM code with AbstractCore
Enjoy !