abstractcore 2.5.3__py3-none-any.whl → 2.6.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- abstractcore/__init__.py +7 -1
- abstractcore/architectures/detection.py +2 -2
- abstractcore/config/__init__.py +24 -1
- abstractcore/config/manager.py +47 -0
- abstractcore/core/retry.py +2 -2
- abstractcore/core/session.py +132 -1
- abstractcore/download.py +253 -0
- abstractcore/embeddings/manager.py +2 -2
- abstractcore/events/__init__.py +112 -1
- abstractcore/exceptions/__init__.py +49 -2
- abstractcore/media/processors/office_processor.py +2 -2
- abstractcore/media/utils/image_scaler.py +2 -2
- abstractcore/media/vision_fallback.py +2 -2
- abstractcore/providers/anthropic_provider.py +200 -6
- abstractcore/providers/base.py +100 -5
- abstractcore/providers/lmstudio_provider.py +254 -4
- abstractcore/providers/ollama_provider.py +253 -4
- abstractcore/providers/openai_provider.py +258 -6
- abstractcore/providers/registry.py +9 -1
- abstractcore/providers/streaming.py +2 -2
- abstractcore/tools/common_tools.py +2 -2
- abstractcore/tools/handler.py +2 -2
- abstractcore/tools/parser.py +2 -2
- abstractcore/tools/registry.py +2 -2
- abstractcore/tools/syntax_rewriter.py +2 -2
- abstractcore/tools/tag_rewriter.py +3 -3
- abstractcore/utils/self_fixes.py +2 -2
- abstractcore/utils/version.py +1 -1
- {abstractcore-2.5.3.dist-info → abstractcore-2.6.2.dist-info}/METADATA +162 -4
- {abstractcore-2.5.3.dist-info → abstractcore-2.6.2.dist-info}/RECORD +34 -33
- {abstractcore-2.5.3.dist-info → abstractcore-2.6.2.dist-info}/WHEEL +0 -0
- {abstractcore-2.5.3.dist-info → abstractcore-2.6.2.dist-info}/entry_points.txt +0 -0
- {abstractcore-2.5.3.dist-info → abstractcore-2.6.2.dist-info}/licenses/LICENSE +0 -0
- {abstractcore-2.5.3.dist-info → abstractcore-2.6.2.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractcore
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.6.2
|
|
4
4
|
Summary: Unified interface to all LLM providers with essential infrastructure for tool calling, streaming, and model management
|
|
5
5
|
Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
|
|
6
6
|
Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
|
|
@@ -67,12 +67,18 @@ Provides-Extra: api-providers
|
|
|
67
67
|
Requires-Dist: abstractcore[anthropic,openai]; extra == "api-providers"
|
|
68
68
|
Provides-Extra: local-providers
|
|
69
69
|
Requires-Dist: abstractcore[lmstudio,mlx,ollama]; extra == "local-providers"
|
|
70
|
+
Provides-Extra: local-providers-non-mlx
|
|
71
|
+
Requires-Dist: abstractcore[lmstudio,ollama]; extra == "local-providers-non-mlx"
|
|
70
72
|
Provides-Extra: heavy-providers
|
|
71
73
|
Requires-Dist: abstractcore[huggingface]; extra == "heavy-providers"
|
|
72
74
|
Provides-Extra: all-providers
|
|
73
75
|
Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]; extra == "all-providers"
|
|
76
|
+
Provides-Extra: all-providers-non-mlx
|
|
77
|
+
Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,ollama,openai]; extra == "all-providers-non-mlx"
|
|
74
78
|
Provides-Extra: all
|
|
75
79
|
Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools]; extra == "all"
|
|
80
|
+
Provides-Extra: all-non-mlx
|
|
81
|
+
Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,ollama,openai,processing,server,test,tools]; extra == "all-non-mlx"
|
|
76
82
|
Provides-Extra: lightweight
|
|
77
83
|
Requires-Dist: abstractcore[anthropic,compression,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
|
|
78
84
|
Provides-Extra: dev
|
|
@@ -120,7 +126,11 @@ A unified Python library for interaction with multiple Large Language Model (LLM
|
|
|
120
126
|
### Installation
|
|
121
127
|
|
|
122
128
|
```bash
|
|
129
|
+
# macOS/Apple Silicon (includes MLX)
|
|
123
130
|
pip install abstractcore[all]
|
|
131
|
+
|
|
132
|
+
# Linux/Windows (excludes MLX)
|
|
133
|
+
pip install abstractcore[all-non-mlx]
|
|
124
134
|
```
|
|
125
135
|
|
|
126
136
|
### Basic Usage
|
|
@@ -311,6 +321,69 @@ export_traces(traces, format='markdown', file_path='workflow_trace.md')
|
|
|
311
321
|
|
|
312
322
|
[Learn more about Interaction Tracing](docs/interaction-tracing.md)
|
|
313
323
|
|
|
324
|
+
### Async/Await Support
|
|
325
|
+
|
|
326
|
+
Execute concurrent LLM requests for batch operations, multi-provider comparisons, or non-blocking web applications. **Production-ready with validated 6-7.5x performance improvement** for concurrent requests.
|
|
327
|
+
|
|
328
|
+
```python
|
|
329
|
+
import asyncio
|
|
330
|
+
from abstractcore import create_llm
|
|
331
|
+
|
|
332
|
+
async def main():
|
|
333
|
+
llm = create_llm("openai", model="gpt-4o-mini")
|
|
334
|
+
|
|
335
|
+
# Execute 3 requests concurrently (6-7x faster!)
|
|
336
|
+
tasks = [
|
|
337
|
+
llm.agenerate(f"Summarize {topic}")
|
|
338
|
+
for topic in ["Python", "JavaScript", "Rust"]
|
|
339
|
+
]
|
|
340
|
+
responses = await asyncio.gather(*tasks)
|
|
341
|
+
|
|
342
|
+
for response in responses:
|
|
343
|
+
print(response.content)
|
|
344
|
+
|
|
345
|
+
asyncio.run(main())
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Performance (Validated with Real Testing):**
|
|
349
|
+
- **Ollama**: 7.5x faster for concurrent requests
|
|
350
|
+
- **LMStudio**: 6.5x faster for concurrent requests
|
|
351
|
+
- **OpenAI**: 6.0x faster for concurrent requests
|
|
352
|
+
- **Anthropic**: 7.4x faster for concurrent requests
|
|
353
|
+
- **Average**: ~7x speedup across all providers
|
|
354
|
+
|
|
355
|
+
**Native Async vs Fallback:**
|
|
356
|
+
- **Native async** (httpx.AsyncClient): Ollama, LMStudio, OpenAI, Anthropic
|
|
357
|
+
- **Fallback** (asyncio.to_thread): MLX, HuggingFace
|
|
358
|
+
- All providers work seamlessly - fallback keeps event loop responsive
|
|
359
|
+
|
|
360
|
+
**Use Cases:**
|
|
361
|
+
- Batch operations with 6-7x speedup via parallel execution
|
|
362
|
+
- Multi-provider comparisons (query OpenAI and Anthropic simultaneously)
|
|
363
|
+
- FastAPI/async web frameworks integration
|
|
364
|
+
- Session async for conversation management
|
|
365
|
+
|
|
366
|
+
**Works with:**
|
|
367
|
+
- All 6 providers (OpenAI, Anthropic, Ollama, LMStudio, MLX, HuggingFace)
|
|
368
|
+
- Streaming via `async for chunk in llm.agenerate(..., stream=True)`
|
|
369
|
+
- Sessions via `await session.agenerate(...)`
|
|
370
|
+
- Zero breaking changes to sync API
|
|
371
|
+
|
|
372
|
+
**Learn async patterns:**
|
|
373
|
+
|
|
374
|
+
AbstractCore includes an educational [async CLI demo](examples/async_cli_demo.py) that demonstrates 8 core async/await patterns:
|
|
375
|
+
- Event-driven progress with GlobalEventBus
|
|
376
|
+
- Parallel tool execution with asyncio.gather()
|
|
377
|
+
- Proper async streaming pattern (await first, then async for)
|
|
378
|
+
- Non-blocking animations and user input
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
# Try the educational async demo
|
|
382
|
+
python examples/async_cli_demo.py --provider ollama --model qwen3:4b --stream
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
[Learn more in CLI docs](docs/acore-cli.md#async-cli-demo-educational-reference)
|
|
386
|
+
|
|
314
387
|
### Media Handling
|
|
315
388
|
|
|
316
389
|
AbstractCore provides unified media handling across all providers with automatic resolution optimization. Upload images, PDFs, and documents using the same simple API regardless of your provider.
|
|
@@ -408,7 +481,8 @@ if response.metadata and response.metadata.get('compression_used'):
|
|
|
408
481
|
|
|
409
482
|
- **Offline-First Design**: Built primarily for open source LLMs with full offline capability. Download once, run forever without internet access
|
|
410
483
|
- **Provider Agnostic**: Seamlessly switch between OpenAI, Anthropic, Ollama, LMStudio, MLX, HuggingFace
|
|
411
|
-
- **
|
|
484
|
+
- **Async/Await Support** ⭐ NEW in v2.6.0: Native async support for concurrent requests with `asyncio.gather()` - works with all 6 providers
|
|
485
|
+
- **Interaction Tracing**: Complete LLM observability with programmatic access to prompts, responses, tokens, timing, and trace correlation for debugging, trust, and compliance
|
|
412
486
|
- **Glyph Visual-Text Compression**: Revolutionary compression system that renders text as optimized images for 3-4x token compression and faster inference
|
|
413
487
|
- **Centralized Configuration**: Global defaults and app-specific preferences at `~/.abstractcore/config/abstractcore.json`
|
|
414
488
|
- **Intelligent Media Handling**: Upload images, PDFs, and documents with automatic maximum resolution optimization
|
|
@@ -522,7 +596,7 @@ python -m abstractcore.utils.cli --provider anthropic --model claude-3-5-haiku-l
|
|
|
522
596
|
|
|
523
597
|
## Built-in Applications (Ready-to-Use CLI Tools)
|
|
524
598
|
|
|
525
|
-
AbstractCore includes **
|
|
599
|
+
AbstractCore includes **five specialized command-line applications** for common LLM tasks. These are production-ready tools that can be used directly from the terminal without any Python programming.
|
|
526
600
|
|
|
527
601
|
### Available Applications
|
|
528
602
|
|
|
@@ -532,6 +606,7 @@ AbstractCore includes **four specialized command-line applications** for common
|
|
|
532
606
|
| **Extractor** | Entity and relationship extraction | `extractor` |
|
|
533
607
|
| **Judge** | Text evaluation and scoring | `judge` |
|
|
534
608
|
| **Intent Analyzer** | Psychological intent analysis & deception detection | `intent` |
|
|
609
|
+
| **DeepSearch** | Autonomous multi-stage research with web search | `deepsearch` |
|
|
535
610
|
|
|
536
611
|
### Quick Usage Examples
|
|
537
612
|
|
|
@@ -555,6 +630,11 @@ judge proposal.md --custom-criteria has_examples,covers_risks --output assessmen
|
|
|
555
630
|
intent conversation.txt --focus-participant user --depth comprehensive
|
|
556
631
|
intent email.txt --format plain --context document --verbose
|
|
557
632
|
intent chat_log.json --conversation-mode --provider lmstudio --model qwen/qwen3-30b-a3b-2507
|
|
633
|
+
|
|
634
|
+
# Autonomous research with web search and reflexive refinement
|
|
635
|
+
deepsearch "What are the latest advances in quantum computing?" --depth comprehensive
|
|
636
|
+
deepsearch "AI impact on healthcare" --focus "diagnosis,treatment,ethics" --reflexive
|
|
637
|
+
deepsearch "sustainable energy 2025" --max-sources 25 --provider openai --model gpt-4o-mini
|
|
558
638
|
```
|
|
559
639
|
|
|
560
640
|
### Installation & Setup
|
|
@@ -567,9 +647,10 @@ pip install abstractcore[all]
|
|
|
567
647
|
|
|
568
648
|
# Apps are immediately available
|
|
569
649
|
summarizer --help
|
|
570
|
-
extractor --help
|
|
650
|
+
extractor --help
|
|
571
651
|
judge --help
|
|
572
652
|
intent --help
|
|
653
|
+
deepsearch --help
|
|
573
654
|
```
|
|
574
655
|
|
|
575
656
|
### Alternative Usage Methods
|
|
@@ -580,12 +661,14 @@ summarizer document.txt
|
|
|
580
661
|
extractor report.pdf
|
|
581
662
|
judge essay.md
|
|
582
663
|
intent conversation.txt
|
|
664
|
+
deepsearch "your research query"
|
|
583
665
|
|
|
584
666
|
# Method 2: Via Python module
|
|
585
667
|
python -m abstractcore.apps summarizer document.txt
|
|
586
668
|
python -m abstractcore.apps extractor report.pdf
|
|
587
669
|
python -m abstractcore.apps judge essay.md
|
|
588
670
|
python -m abstractcore.apps intent conversation.txt
|
|
671
|
+
python -m abstractcore.apps deepsearch "your research query"
|
|
589
672
|
```
|
|
590
673
|
|
|
591
674
|
### Key Parameters
|
|
@@ -633,6 +716,7 @@ Each application has documentation with examples and usage information:
|
|
|
633
716
|
- **[Extractor Guide](docs/apps/basic-extractor.md)** - Entity and relationship extraction
|
|
634
717
|
- **[Intent Analyzer Guide](docs/apps/basic-intent.md)** - Psychological intent analysis and deception detection
|
|
635
718
|
- **[Judge Guide](docs/apps/basic-judge.md)** - Text evaluation and scoring systems
|
|
719
|
+
- **[DeepSearch Guide](docs/apps/basic-deepsearch.md)** - Autonomous multi-stage research with web search
|
|
636
720
|
|
|
637
721
|
**When to use the apps:**
|
|
638
722
|
- Processing documents without writing code
|
|
@@ -711,6 +795,66 @@ summarizer document.pdf --provider anthropic --model claude-3-5-sonnet
|
|
|
711
795
|
|
|
712
796
|
**Complete guide**: [Centralized Configuration](docs/centralized-config.md)
|
|
713
797
|
|
|
798
|
+
### Environment Variables
|
|
799
|
+
|
|
800
|
+
AbstractCore supports environment variables for provider base URLs, enabling remote servers, Docker deployments, and non-standard ports:
|
|
801
|
+
|
|
802
|
+
```bash
|
|
803
|
+
# Ollama on remote server
|
|
804
|
+
export OLLAMA_BASE_URL="http://192.168.1.100:11434"
|
|
805
|
+
# Alternative: OLLAMA_HOST is also supported
|
|
806
|
+
export OLLAMA_HOST="http://192.168.1.100:11434"
|
|
807
|
+
|
|
808
|
+
# LMStudio on non-standard port
|
|
809
|
+
export LMSTUDIO_BASE_URL="http://localhost:1235/v1"
|
|
810
|
+
|
|
811
|
+
# OpenAI-compatible proxy
|
|
812
|
+
export OPENAI_BASE_URL="https://api.portkey.ai/v1"
|
|
813
|
+
|
|
814
|
+
# Anthropic proxy
|
|
815
|
+
export ANTHROPIC_BASE_URL="https://api.portkey.ai/v1"
|
|
816
|
+
```
|
|
817
|
+
|
|
818
|
+
**Priority**: Programmatic `base_url` parameter > Runtime configuration > Environment variable > Default value
|
|
819
|
+
|
|
820
|
+
**Provider discovery**: `get_all_providers_with_models()` automatically respects these environment variables when checking provider availability.
|
|
821
|
+
|
|
822
|
+
### Programmatic Configuration
|
|
823
|
+
|
|
824
|
+
Configure provider settings at runtime without environment variables:
|
|
825
|
+
|
|
826
|
+
```python
|
|
827
|
+
from abstractcore.config import configure_provider, get_provider_config, clear_provider_config
|
|
828
|
+
from abstractcore import create_llm
|
|
829
|
+
|
|
830
|
+
# Set provider base URL programmatically
|
|
831
|
+
configure_provider('ollama', base_url='http://192.168.1.100:11434')
|
|
832
|
+
|
|
833
|
+
# All future create_llm() calls automatically use the configured URL
|
|
834
|
+
llm = create_llm('ollama', model='llama3:8b') # Uses http://192.168.1.100:11434
|
|
835
|
+
|
|
836
|
+
# Query current configuration
|
|
837
|
+
config = get_provider_config('ollama')
|
|
838
|
+
print(config) # {'base_url': 'http://192.168.1.100:11434'}
|
|
839
|
+
|
|
840
|
+
# Clear configuration (revert to env var / default)
|
|
841
|
+
configure_provider('ollama', base_url=None)
|
|
842
|
+
# Or clear all providers
|
|
843
|
+
clear_provider_config()
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
**Use Cases**:
|
|
847
|
+
- **Web UI Settings**: Configure providers through settings pages
|
|
848
|
+
- **Docker Startup**: Read from custom env vars and configure programmatically
|
|
849
|
+
- **Testing**: Set mock server URLs for integration tests
|
|
850
|
+
- **Multi-tenant**: Configure different base URLs per tenant
|
|
851
|
+
|
|
852
|
+
**Priority System**:
|
|
853
|
+
1. Constructor parameter (highest): `create_llm("ollama", base_url="...")`
|
|
854
|
+
2. Runtime configuration: `configure_provider('ollama', base_url="...")`
|
|
855
|
+
3. Environment variable: `OLLAMA_BASE_URL`
|
|
856
|
+
4. Default value (lowest): `http://localhost:11434`
|
|
857
|
+
|
|
714
858
|
## Documentation
|
|
715
859
|
|
|
716
860
|
**📚 Complete Documentation:** [docs/](docs/) - Full documentation index and navigation guide
|
|
@@ -878,6 +1022,9 @@ pip install abstractcore[media]
|
|
|
878
1022
|
pip install abstractcore[openai]
|
|
879
1023
|
pip install abstractcore[anthropic]
|
|
880
1024
|
pip install abstractcore[ollama]
|
|
1025
|
+
pip install abstractcore[lmstudio]
|
|
1026
|
+
pip install abstractcore[huggingface]
|
|
1027
|
+
pip install abstractcore[mlx] # macOS/Apple Silicon only
|
|
881
1028
|
|
|
882
1029
|
# With server support
|
|
883
1030
|
pip install abstractcore[server]
|
|
@@ -887,6 +1034,16 @@ pip install abstractcore[embeddings]
|
|
|
887
1034
|
|
|
888
1035
|
# Everything (recommended)
|
|
889
1036
|
pip install abstractcore[all]
|
|
1037
|
+
|
|
1038
|
+
# Cross-platform (all except MLX - for Linux/Windows)
|
|
1039
|
+
pip install abstractcore[all-non-mlx]
|
|
1040
|
+
|
|
1041
|
+
# Provider groups
|
|
1042
|
+
pip install abstractcore[all-providers] # All providers (includes MLX)
|
|
1043
|
+
pip install abstractcore[all-providers-non-mlx] # All providers except MLX
|
|
1044
|
+
pip install abstractcore[local-providers] # Ollama, LMStudio, MLX
|
|
1045
|
+
pip install abstractcore[local-providers-non-mlx] # Ollama, LMStudio only
|
|
1046
|
+
pip install abstractcore[api-providers] # OpenAI, Anthropic
|
|
890
1047
|
```
|
|
891
1048
|
|
|
892
1049
|
**Media processing extras:**
|
|
@@ -917,6 +1074,7 @@ All tests passing as of October 12th, 2025.
|
|
|
917
1074
|
## Quick Links
|
|
918
1075
|
|
|
919
1076
|
- **[📚 Documentation Index](docs/)** - Complete documentation navigation guide
|
|
1077
|
+
- **[🔍 Interaction Tracing](docs/interaction-tracing.md)** - LLM observability and debugging ⭐ NEW
|
|
920
1078
|
- **[Getting Started](docs/getting-started.md)** - 5-minute quick start
|
|
921
1079
|
- **[⚙️ Prerequisites](docs/prerequisites.md)** - Provider setup (OpenAI, Anthropic, Ollama, etc.)
|
|
922
1080
|
- **[📖 Python API](docs/api-reference.md)** - Complete Python API reference
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
abstractcore/__init__.py,sha256=
|
|
1
|
+
abstractcore/__init__.py,sha256=DDn7Y74JyDvS79Fm8aSI38l9p5jwHZYWlSgKRsjPE4k,2476
|
|
2
|
+
abstractcore/download.py,sha256=r-vC-zRVtX5KBOQdcZitop3nSdlnTbhbrPeoyZ82dGo,8682
|
|
2
3
|
abstractcore/apps/__init__.py,sha256=sgNOv3lYyOWNBC-w6GnRN6aILGCbdkQtNcuQdJz5ghE,31
|
|
3
4
|
abstractcore/apps/__main__.py,sha256=fV9cGU99K4lGRsPNOLkh8qrDjH3JtMEWNlBiZrvI5Kk,1974
|
|
4
5
|
abstractcore/apps/app_config_utils.py,sha256=5GIvXnD996LFIV3-BpfkqII6UqYlStm7ZCgmqDEN8dc,890
|
|
@@ -8,7 +9,7 @@ abstractcore/apps/intent.py,sha256=5ie_H9_K_ZxlA0oCu7ROUrsgwfzDNFgVUyBNec6YVRE,2
|
|
|
8
9
|
abstractcore/apps/judge.py,sha256=nOgxvn-BbhNY6xU9AlTeD1yidTh73AiVlSN7hQCVE2M,23169
|
|
9
10
|
abstractcore/apps/summarizer.py,sha256=9aD6KH21w-tv_wGp9MaO2uyJuaU71OemW7KpqrG5t6w,14669
|
|
10
11
|
abstractcore/architectures/__init__.py,sha256=-4JucAM7JkMWShWKkePoclxrUHRKgaG36UTguJihE0U,1046
|
|
11
|
-
abstractcore/architectures/detection.py,sha256=
|
|
12
|
+
abstractcore/architectures/detection.py,sha256=jmpD04xcKotWCW7--jadBzCtD2a5dYJi1zljpxB9JmU,19813
|
|
12
13
|
abstractcore/architectures/enums.py,sha256=9vIv2vDBEKhxwzwH9iaSAyf-iVj3p8y9loMeN_mYTJ8,3821
|
|
13
14
|
abstractcore/assets/architecture_formats.json,sha256=Yf-W1UuadrL8qid0pfU_pEBOkjwH4lvx7Nzu83GACp8,16622
|
|
14
15
|
abstractcore/assets/model_capabilities.json,sha256=tmfQNNPTNJAauF51nPYkMqcjc17F2geeYngh0HjEUZ0,68836
|
|
@@ -25,28 +26,28 @@ abstractcore/compression/pil_text_renderer.py,sha256=IxVs5ZFXIJeXIQdS1hDQKJC6O2l
|
|
|
25
26
|
abstractcore/compression/quality.py,sha256=bq7YI_5ywHfPnWSu1MmBRnV5Nxz8KBJGFvnfQOJSx5c,9415
|
|
26
27
|
abstractcore/compression/text_formatter.py,sha256=5RE6JrLkHvYoDQlsYJSoqfbwAa3caMr2i_DXog6ovZs,27328
|
|
27
28
|
abstractcore/compression/vision_compressor.py,sha256=5Ox3w_ee7fgPRDOpSQcooEGtuBKpQoAmWjwpLE2hoNU,12773
|
|
28
|
-
abstractcore/config/__init__.py,sha256=
|
|
29
|
+
abstractcore/config/__init__.py,sha256=JQ4feacJV_brzf6qNnNPo5VbmXhdjIxH088jYLTp1ik,919
|
|
29
30
|
abstractcore/config/main.py,sha256=oQxnNxo_78CusCuDKGgwal2T3S8MDpo3yzLSB1wpYkU,35573
|
|
30
|
-
abstractcore/config/manager.py,sha256=
|
|
31
|
+
abstractcore/config/manager.py,sha256=O_zuskt4qe9bzaJ2dVoodYWJ3zbakaDu5ocbuGZuCoo,18388
|
|
31
32
|
abstractcore/config/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
|
|
32
33
|
abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
|
|
33
34
|
abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
|
|
34
35
|
abstractcore/core/factory.py,sha256=ec7WGW2JKK-dhDplziTAeRkebEUFymtEEZ_bS5qkpqY,2798
|
|
35
36
|
abstractcore/core/interface.py,sha256=-VAY0nlsTnWN_WghiuMC7iE7xUdZfYOg6KlgrAPi14Y,14086
|
|
36
|
-
abstractcore/core/retry.py,sha256=
|
|
37
|
-
abstractcore/core/session.py,sha256=
|
|
37
|
+
abstractcore/core/retry.py,sha256=xP38rabBqJImZ-yg60L5mKeg80ATvxmLG5Yp6lCeTpk,14566
|
|
38
|
+
abstractcore/core/session.py,sha256=n9StBlMhSlETlEqQ401PpM8lK0W2ycCP4Zwrywl4Mhs,46147
|
|
38
39
|
abstractcore/core/types.py,sha256=jj44i07kMjdg9FQ3mA_fK6r_M0Lcgt1RQpy1Ra5w-eI,4578
|
|
39
40
|
abstractcore/embeddings/__init__.py,sha256=hR3xZyqcRm4c2pq1dIa5lxj_-Bk70Zad802JQN4joWo,637
|
|
40
|
-
abstractcore/embeddings/manager.py,sha256=
|
|
41
|
+
abstractcore/embeddings/manager.py,sha256=bisyQJquM1HLQor8ZAfO9V_XWWHw0b4PjyAz9g7sS-4,52273
|
|
41
42
|
abstractcore/embeddings/models.py,sha256=bsPAzL6gv57AVii8O15PT0kxfwRkOml3f3njJN4UDi4,4874
|
|
42
|
-
abstractcore/events/__init__.py,sha256=
|
|
43
|
-
abstractcore/exceptions/__init__.py,sha256=
|
|
43
|
+
abstractcore/events/__init__.py,sha256=eV3-HRRjTS923YXq5is4JUjPEfaMjT4eGW-I7NuawW4,15598
|
|
44
|
+
abstractcore/exceptions/__init__.py,sha256=mR2i8GvsWrD_dJDAHs8Kw2rTSEMfBxwT1e_RfdQlE_A,4750
|
|
44
45
|
abstractcore/media/__init__.py,sha256=94k22PRXInaXFlxU7p06IRbyjmOkSlCITDm0gb8d9AI,3202
|
|
45
46
|
abstractcore/media/auto_handler.py,sha256=eo5a-hn_geLPsBe1oLKvd2YTxS8NRMms1uosmUyu3-s,26500
|
|
46
47
|
abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
|
|
47
48
|
abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
|
|
48
49
|
abstractcore/media/types.py,sha256=fofcQXSb-_PQwAHoSVObPhPdVUkwxOJec1ssv-731Ho,16158
|
|
49
|
-
abstractcore/media/vision_fallback.py,sha256
|
|
50
|
+
abstractcore/media/vision_fallback.py,sha256=-yVKS5n5OJPcsNvInkAnw5SWzTx0_dOLi6TCkZrtw2U,11310
|
|
50
51
|
abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
|
|
51
52
|
abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
|
|
52
53
|
abstractcore/media/handlers/local_handler.py,sha256=Y-viFGYowmtrj-J95JeKgx0L1WSe4ttJeEZ60PHf9Ck,23815
|
|
@@ -55,11 +56,11 @@ abstractcore/media/processors/__init__.py,sha256=V5OqxTnIkcni-tVQZQYpSvO4hl74aFw
|
|
|
55
56
|
abstractcore/media/processors/direct_pdf_processor.py,sha256=DuI3bK8JfZwPVXZ43tH56y09kKqvHgWhR5NZ_HslcF4,8989
|
|
56
57
|
abstractcore/media/processors/glyph_pdf_processor.py,sha256=H-IqnQ0roDEWhsMzoW3BYgXzO9OWBSsrUr_zYIabRdI,8576
|
|
57
58
|
abstractcore/media/processors/image_processor.py,sha256=jXvbiV3RCYpAKVaee24lE5oXavASyt3ScJppOIiosmg,22972
|
|
58
|
-
abstractcore/media/processors/office_processor.py,sha256=
|
|
59
|
+
abstractcore/media/processors/office_processor.py,sha256=_aTrrDtREiy6MivbANFc1FKq06AbAC-pL1EXKiHceGs,18609
|
|
59
60
|
abstractcore/media/processors/pdf_processor.py,sha256=qniYt7cTYYPVRi_cS1IsXztOldeY0bqdn7sdbELBU9k,17157
|
|
60
61
|
abstractcore/media/processors/text_processor.py,sha256=D84QWxxIou4MeNhERmCTxi_p27CgicVFhMXJiujZgIE,21905
|
|
61
62
|
abstractcore/media/utils/__init__.py,sha256=30-CTif91iRKOXJ4njGiduWAt-xp31U7NafMBNvgdO0,460
|
|
62
|
-
abstractcore/media/utils/image_scaler.py,sha256=
|
|
63
|
+
abstractcore/media/utils/image_scaler.py,sha256=jPdYd65K5oeo0YaXjOkmv-tvs6tNHYwxJCZ29vZqFDg,11367
|
|
63
64
|
abstractcore/processing/__init__.py,sha256=QcACEnhnHKYCkFL1LNOW_uqBrwkTAmz5A61N4K2dyu0,988
|
|
64
65
|
abstractcore/processing/basic_deepsearch.py,sha256=dzJQtH4k44XY9tvG0Z4JIlYt_s7HpbLdSPScha-t7vk,101036
|
|
65
66
|
abstractcore/processing/basic_extractor.py,sha256=3x-3BdIHgLvqLnLF6K1-P4qVaLIpAnNIIutaJi7lDQM,49832
|
|
@@ -67,41 +68,41 @@ abstractcore/processing/basic_intent.py,sha256=wD99Z7fE2RiYk6oyTZXojUbv-bz8HhKFI
|
|
|
67
68
|
abstractcore/processing/basic_judge.py,sha256=tKWJrg_tY4vCHzWgXxz0ZjgLXBYYfpMcpG7vl03hJcM,32218
|
|
68
69
|
abstractcore/processing/basic_summarizer.py,sha256=XHNxMQ_8aLStTeUo6_2JaThlct12Htpz7ORmm0iuJsg,25495
|
|
69
70
|
abstractcore/providers/__init__.py,sha256=O7gmT4p_jbzMjoZPhi_6RIMHQm-IMFX1XfcgySz3DSQ,1729
|
|
70
|
-
abstractcore/providers/anthropic_provider.py,sha256=
|
|
71
|
-
abstractcore/providers/base.py,sha256=
|
|
71
|
+
abstractcore/providers/anthropic_provider.py,sha256=0-qZb0Es6-VLuVVl2j7IUjOuyRlgjQdJFulWfpi4qb4,31740
|
|
72
|
+
abstractcore/providers/base.py,sha256=nWF1pxeUlT4ozlUqKG0rWOmLkfo-zQgfU7fv3AUSI08,68452
|
|
72
73
|
abstractcore/providers/huggingface_provider.py,sha256=v4UUmODrnWKtTygzPh-lm4jSCAPms5VYJE5v7PWB4Lo,79458
|
|
73
|
-
abstractcore/providers/lmstudio_provider.py,sha256=
|
|
74
|
+
abstractcore/providers/lmstudio_provider.py,sha256=92_vx7AVVt_oufJdHo3R0D_V2qyTKO2DKzi9-l4KzWs,34114
|
|
74
75
|
abstractcore/providers/mlx_provider.py,sha256=afLCEwuw7r8OK4fD3OriyKMcWpxVIob_37ItmgAclfc,23123
|
|
75
76
|
abstractcore/providers/model_capabilities.py,sha256=C4HIgvNTp9iIPiDeWyXo7vdzRkMdecRPoQi80yHSOL0,11955
|
|
76
|
-
abstractcore/providers/ollama_provider.py,sha256=
|
|
77
|
-
abstractcore/providers/openai_provider.py,sha256=
|
|
78
|
-
abstractcore/providers/registry.py,sha256=
|
|
79
|
-
abstractcore/providers/streaming.py,sha256=
|
|
77
|
+
abstractcore/providers/ollama_provider.py,sha256=Kg5au_tia0xFTXqUlqDNrSvwVpt2lXvfnVFou9K2FGQ,34144
|
|
78
|
+
abstractcore/providers/openai_provider.py,sha256=Y-79mAtgDiDw6SqF2LhnWtlfuC_e6TxeF_tqJWAAyWo,36364
|
|
79
|
+
abstractcore/providers/registry.py,sha256=z0FVaucJ6KmE6QAIkskH56jV-7hodWgj_G-u5_bcgp0,19732
|
|
80
|
+
abstractcore/providers/streaming.py,sha256=HaGkoItPWXqgml3C-KiPc0hBNpztLzjl_ooECw11BHI,31370
|
|
80
81
|
abstractcore/server/__init__.py,sha256=1DSAz_YhQtnKv7sNi5TMQV8GFujctDOabgvAdilQE0o,249
|
|
81
82
|
abstractcore/server/app.py,sha256=ajG4yfMOHjqBafquLHeLTaMmEr01RXiBRxjFRTIT2j8,96602
|
|
82
83
|
abstractcore/structured/__init__.py,sha256=VXRQHGcm-iaYnLOBPin2kyhvhhQA0kaGt_pcNDGsE_8,339
|
|
83
84
|
abstractcore/structured/handler.py,sha256=hcUe_fZcwx0O3msLqFiOsj6-jbq3S-ZQa9c1nRIZvuo,24622
|
|
84
85
|
abstractcore/structured/retry.py,sha256=BN_PvrWybyU1clMy2cult1-TVxFSMaVqiCPmmXvA5aI,3805
|
|
85
86
|
abstractcore/tools/__init__.py,sha256=oh6vG0RdM1lqUtOp95mLrTsWLh9VmhJf5_FVjGIP5_M,2259
|
|
86
|
-
abstractcore/tools/common_tools.py,sha256=
|
|
87
|
+
abstractcore/tools/common_tools.py,sha256=hn4Y-HmpYAH3nLnKqJayWr-mpou3T5Ixu-LRdeO1_c4,95161
|
|
87
88
|
abstractcore/tools/core.py,sha256=lUUGihyceiRYlKUFvEMig9jWFF563d574mSDbYYD3fM,4777
|
|
88
|
-
abstractcore/tools/handler.py,sha256=
|
|
89
|
-
abstractcore/tools/parser.py,sha256=
|
|
90
|
-
abstractcore/tools/registry.py,sha256=
|
|
91
|
-
abstractcore/tools/syntax_rewriter.py,sha256=
|
|
92
|
-
abstractcore/tools/tag_rewriter.py,sha256=
|
|
89
|
+
abstractcore/tools/handler.py,sha256=nBbbBNq029s8pV6NbTU-VmQ6xoSTdt7Af1-XbcMdgU4,12050
|
|
90
|
+
abstractcore/tools/parser.py,sha256=AYM0-baSGGGdwd_w2My3B3sOiw2flE2x59mLmdpwJ0A,27768
|
|
91
|
+
abstractcore/tools/registry.py,sha256=eI0qKrauT1PzLIfaporXCjBMojmWYzgfd96xdN_Db1g,9087
|
|
92
|
+
abstractcore/tools/syntax_rewriter.py,sha256=_lBvIJ_gFleR5JZI0UuukQ47pe5CXp3IM9Oee0ypx60,17346
|
|
93
|
+
abstractcore/tools/tag_rewriter.py,sha256=2hjLoIjVs4277mPBSrNsnxLOVvmXm83xtF0WCOU3uno,20350
|
|
93
94
|
abstractcore/utils/__init__.py,sha256=8uvIU1WpUfetvWA90PPvXtxnFNjMQF0umb8_FuK2cTA,779
|
|
94
95
|
abstractcore/utils/cli.py,sha256=tO7S-iVSZavxJaX7OTruNAmF3lJz9eCDORK8Dm7FdgA,70558
|
|
95
96
|
abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy_vDEKEUE7OiKY,6028
|
|
96
|
-
abstractcore/utils/self_fixes.py,sha256=
|
|
97
|
+
abstractcore/utils/self_fixes.py,sha256=1VYxPq-q7_DtNl39NbrzUmyHpkhb9Q2SdnXUj4c0DBc,5907
|
|
97
98
|
abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
|
|
98
99
|
abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
|
|
99
100
|
abstractcore/utils/trace_export.py,sha256=MD1DHDWltpewy62cYzz_OSPAA6edZbZq7_pZbvxz_H8,9279
|
|
100
|
-
abstractcore/utils/version.py,sha256=
|
|
101
|
+
abstractcore/utils/version.py,sha256=5iDEPQNqduswVtnrBoEL5IucdXpHJ7JSu98Ep1PMYlM,605
|
|
101
102
|
abstractcore/utils/vlm_token_calculator.py,sha256=VBmIji_oiqOQ13IvVhNkb8E246tYMIXWVVOnl86Ne94,27978
|
|
102
|
-
abstractcore-2.
|
|
103
|
-
abstractcore-2.
|
|
104
|
-
abstractcore-2.
|
|
105
|
-
abstractcore-2.
|
|
106
|
-
abstractcore-2.
|
|
107
|
-
abstractcore-2.
|
|
103
|
+
abstractcore-2.6.2.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
|
|
104
|
+
abstractcore-2.6.2.dist-info/METADATA,sha256=ULSMViuMcjCj-wIgJJ_AksUq0BFRjf33L-vpWxo-iJ0,43479
|
|
105
|
+
abstractcore-2.6.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
106
|
+
abstractcore-2.6.2.dist-info/entry_points.txt,sha256=jXNdzeltVs23A2JM2e2HOiAHldHrsnud3EvPI5VffOs,658
|
|
107
|
+
abstractcore-2.6.2.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
|
|
108
|
+
abstractcore-2.6.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|