abstractcore 2.5.2__py3-none-any.whl → 2.5.3__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 +12 -0
- abstractcore/architectures/detection.py +250 -4
- abstractcore/assets/architecture_formats.json +14 -1
- abstractcore/assets/model_capabilities.json +533 -10
- abstractcore/compression/__init__.py +29 -0
- abstractcore/compression/analytics.py +420 -0
- abstractcore/compression/cache.py +250 -0
- abstractcore/compression/config.py +279 -0
- abstractcore/compression/exceptions.py +30 -0
- abstractcore/compression/glyph_processor.py +381 -0
- abstractcore/compression/optimizer.py +388 -0
- abstractcore/compression/orchestrator.py +380 -0
- abstractcore/compression/pil_text_renderer.py +818 -0
- abstractcore/compression/quality.py +226 -0
- abstractcore/compression/text_formatter.py +666 -0
- abstractcore/compression/vision_compressor.py +371 -0
- abstractcore/config/main.py +64 -0
- abstractcore/config/manager.py +100 -5
- abstractcore/core/session.py +61 -6
- abstractcore/events/__init__.py +1 -1
- abstractcore/media/auto_handler.py +312 -18
- abstractcore/media/handlers/local_handler.py +14 -2
- abstractcore/media/handlers/openai_handler.py +62 -3
- abstractcore/media/processors/__init__.py +11 -1
- abstractcore/media/processors/direct_pdf_processor.py +210 -0
- abstractcore/media/processors/glyph_pdf_processor.py +227 -0
- abstractcore/media/processors/image_processor.py +7 -1
- abstractcore/media/processors/text_processor.py +18 -3
- abstractcore/media/types.py +164 -7
- abstractcore/providers/__init__.py +18 -0
- abstractcore/providers/anthropic_provider.py +28 -2
- abstractcore/providers/base.py +278 -6
- abstractcore/providers/huggingface_provider.py +563 -23
- abstractcore/providers/lmstudio_provider.py +38 -2
- abstractcore/providers/mlx_provider.py +27 -2
- abstractcore/providers/model_capabilities.py +352 -0
- abstractcore/providers/ollama_provider.py +38 -4
- abstractcore/providers/openai_provider.py +28 -2
- abstractcore/providers/registry.py +85 -13
- abstractcore/server/app.py +91 -81
- abstractcore/utils/__init__.py +4 -1
- abstractcore/utils/trace_export.py +287 -0
- abstractcore/utils/version.py +1 -1
- abstractcore/utils/vlm_token_calculator.py +655 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.5.3.dist-info}/METADATA +107 -6
- {abstractcore-2.5.2.dist-info → abstractcore-2.5.3.dist-info}/RECORD +50 -33
- {abstractcore-2.5.2.dist-info → abstractcore-2.5.3.dist-info}/WHEEL +0 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.5.3.dist-info}/entry_points.txt +0 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.5.3.dist-info}/licenses/LICENSE +0 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.5.3.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstractcore
|
|
3
|
-
Version: 2.5.
|
|
3
|
+
Version: 2.5.3
|
|
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>
|
|
@@ -37,8 +37,10 @@ Requires-Dist: anthropic<1.0.0,>=0.25.0; extra == "anthropic"
|
|
|
37
37
|
Provides-Extra: ollama
|
|
38
38
|
Provides-Extra: lmstudio
|
|
39
39
|
Provides-Extra: huggingface
|
|
40
|
-
Requires-Dist: transformers<5.0.0,>=4.
|
|
41
|
-
Requires-Dist: torch<3.0.0,>=
|
|
40
|
+
Requires-Dist: transformers<5.0.0,>=4.57.1; extra == "huggingface"
|
|
41
|
+
Requires-Dist: torch<3.0.0,>=2.6.0; extra == "huggingface"
|
|
42
|
+
Requires-Dist: torchvision>=0.17.0; extra == "huggingface"
|
|
43
|
+
Requires-Dist: torchaudio>=2.1.0; extra == "huggingface"
|
|
42
44
|
Requires-Dist: llama-cpp-python<1.0.0,>=0.2.0; extra == "huggingface"
|
|
43
45
|
Requires-Dist: outlines>=0.1.0; extra == "huggingface"
|
|
44
46
|
Provides-Extra: mlx
|
|
@@ -46,7 +48,7 @@ Requires-Dist: mlx<1.0.0,>=0.15.0; extra == "mlx"
|
|
|
46
48
|
Requires-Dist: mlx-lm<1.0.0,>=0.15.0; extra == "mlx"
|
|
47
49
|
Requires-Dist: outlines>=0.1.0; extra == "mlx"
|
|
48
50
|
Provides-Extra: embeddings
|
|
49
|
-
Requires-Dist: sentence-transformers<
|
|
51
|
+
Requires-Dist: sentence-transformers<6.0.0,>=5.1.0; extra == "embeddings"
|
|
50
52
|
Requires-Dist: numpy<2.0.0,>=1.20.0; extra == "embeddings"
|
|
51
53
|
Provides-Extra: processing
|
|
52
54
|
Provides-Extra: tools
|
|
@@ -59,6 +61,8 @@ Requires-Dist: Pillow<12.0.0,>=10.0.0; extra == "media"
|
|
|
59
61
|
Requires-Dist: pymupdf4llm<1.0.0,>=0.0.20; extra == "media"
|
|
60
62
|
Requires-Dist: unstructured[office]<1.0.0,>=0.10.0; extra == "media"
|
|
61
63
|
Requires-Dist: pandas<3.0.0,>=1.0.0; extra == "media"
|
|
64
|
+
Provides-Extra: compression
|
|
65
|
+
Requires-Dist: pdf2image<2.0.0,>=1.16.0; extra == "compression"
|
|
62
66
|
Provides-Extra: api-providers
|
|
63
67
|
Requires-Dist: abstractcore[anthropic,openai]; extra == "api-providers"
|
|
64
68
|
Provides-Extra: local-providers
|
|
@@ -68,9 +72,9 @@ Requires-Dist: abstractcore[huggingface]; extra == "heavy-providers"
|
|
|
68
72
|
Provides-Extra: all-providers
|
|
69
73
|
Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]; extra == "all-providers"
|
|
70
74
|
Provides-Extra: all
|
|
71
|
-
Requires-Dist: abstractcore[anthropic,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools]; extra == "all"
|
|
75
|
+
Requires-Dist: abstractcore[anthropic,compression,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools]; extra == "all"
|
|
72
76
|
Provides-Extra: lightweight
|
|
73
|
-
Requires-Dist: abstractcore[anthropic,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
|
|
77
|
+
Requires-Dist: abstractcore[anthropic,compression,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
|
|
74
78
|
Provides-Extra: dev
|
|
75
79
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
76
80
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
@@ -258,6 +262,55 @@ loaded_session = BasicSession.load('conversation.json', provider=llm)
|
|
|
258
262
|
|
|
259
263
|
[Learn more about Session](docs/session.md)
|
|
260
264
|
|
|
265
|
+
### Interaction Tracing (Observability)
|
|
266
|
+
|
|
267
|
+
Enable complete observability of LLM interactions for debugging, compliance, and transparency:
|
|
268
|
+
|
|
269
|
+
```python
|
|
270
|
+
from abstractcore import create_llm
|
|
271
|
+
from abstractcore.core.session import BasicSession
|
|
272
|
+
from abstractcore.utils import export_traces
|
|
273
|
+
|
|
274
|
+
# Enable tracing on provider
|
|
275
|
+
llm = create_llm('openai', model='gpt-4o-mini', enable_tracing=True, max_traces=100)
|
|
276
|
+
|
|
277
|
+
# Or on session for automatic correlation
|
|
278
|
+
session = BasicSession(provider=llm, enable_tracing=True)
|
|
279
|
+
|
|
280
|
+
# Generate with custom metadata
|
|
281
|
+
response = session.generate(
|
|
282
|
+
"Write Python code",
|
|
283
|
+
step_type='code_generation',
|
|
284
|
+
attempt_number=1
|
|
285
|
+
)
|
|
286
|
+
|
|
287
|
+
# Access complete trace
|
|
288
|
+
trace_id = response.metadata['trace_id']
|
|
289
|
+
trace = llm.get_traces(trace_id=trace_id)
|
|
290
|
+
|
|
291
|
+
# Full interaction context
|
|
292
|
+
print(f"Prompt: {trace['prompt']}")
|
|
293
|
+
print(f"Response: {trace['response']['content']}")
|
|
294
|
+
print(f"Tokens: {trace['response']['usage']['total_tokens']}")
|
|
295
|
+
print(f"Time: {trace['response']['generation_time_ms']}ms")
|
|
296
|
+
print(f"Custom metadata: {trace['metadata']}")
|
|
297
|
+
|
|
298
|
+
# Get all session traces
|
|
299
|
+
traces = session.get_interaction_history()
|
|
300
|
+
|
|
301
|
+
# Export to JSONL, JSON, or Markdown
|
|
302
|
+
export_traces(traces, format='markdown', file_path='workflow_trace.md')
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**What's captured:**
|
|
306
|
+
- All prompts, system prompts, and conversation history
|
|
307
|
+
- Complete responses with token usage and timing
|
|
308
|
+
- Generation parameters (temperature, tokens, seed, etc.)
|
|
309
|
+
- Custom metadata for workflow tracking
|
|
310
|
+
- Tool calls and results
|
|
311
|
+
|
|
312
|
+
[Learn more about Interaction Tracing](docs/interaction-tracing.md)
|
|
313
|
+
|
|
261
314
|
### Media Handling
|
|
262
315
|
|
|
263
316
|
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.
|
|
@@ -307,9 +360,56 @@ response = llm.generate(
|
|
|
307
360
|
|
|
308
361
|
[Learn more about Media Handling](docs/media-handling-system.md)
|
|
309
362
|
|
|
363
|
+
### Glyph Visual-Text Compression (🧪 EXPERIMENTAL)
|
|
364
|
+
|
|
365
|
+
> ⚠️ **Vision Model Requirement**: This feature ONLY works with vision-capable models (e.g., gpt-4o, claude-3-5-sonnet, llama3.2-vision)
|
|
366
|
+
|
|
367
|
+
Achieve **3-4x token compression** and **faster inference** with Glyph's revolutionary visual-text compression:
|
|
368
|
+
|
|
369
|
+
```python
|
|
370
|
+
from abstractcore import create_llm
|
|
371
|
+
|
|
372
|
+
# IMPORTANT: Requires a vision-capable model
|
|
373
|
+
llm = create_llm("ollama", model="llama3.2-vision:11b") # ✓ Vision model
|
|
374
|
+
|
|
375
|
+
# Large documents are automatically compressed for efficiency
|
|
376
|
+
response = llm.generate(
|
|
377
|
+
"Analyze the key findings in this research paper",
|
|
378
|
+
media=["large_research_paper.pdf"] # Automatically compressed if beneficial
|
|
379
|
+
)
|
|
380
|
+
|
|
381
|
+
# Force compression (raises error if model lacks vision)
|
|
382
|
+
response = llm.generate(
|
|
383
|
+
"Summarize this document",
|
|
384
|
+
media=["document.pdf"],
|
|
385
|
+
glyph_compression="always" # "auto" | "always" | "never"
|
|
386
|
+
)
|
|
387
|
+
|
|
388
|
+
# Non-vision models will raise UnsupportedFeatureError
|
|
389
|
+
# llm_no_vision = create_llm("openai", model="gpt-4") # ✗ No vision
|
|
390
|
+
# response = llm_no_vision.generate("...", glyph_compression="always") # Error!
|
|
391
|
+
|
|
392
|
+
# Check compression stats
|
|
393
|
+
if response.metadata and response.metadata.get('compression_used'):
|
|
394
|
+
stats = response.metadata.get('compression_stats', {})
|
|
395
|
+
print(f"Compression ratio: {stats.get('compression_ratio')}x")
|
|
396
|
+
print(f"Processing speedup: 14% faster, 79% less memory")
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
**Validated Performance:**
|
|
400
|
+
- **14% faster processing** with real-world documents
|
|
401
|
+
- **79% lower memory usage** during processing
|
|
402
|
+
- **100% quality preservation** - no loss of analytical accuracy
|
|
403
|
+
- **Transparent operation** - works with existing code
|
|
404
|
+
|
|
405
|
+
[Learn more about Glyph Compression](docs/glyphs.md)
|
|
406
|
+
|
|
310
407
|
## Key Features
|
|
311
408
|
|
|
409
|
+
- **Offline-First Design**: Built primarily for open source LLMs with full offline capability. Download once, run forever without internet access
|
|
312
410
|
- **Provider Agnostic**: Seamlessly switch between OpenAI, Anthropic, Ollama, LMStudio, MLX, HuggingFace
|
|
411
|
+
- **Interaction Tracing**: Complete LLM observability with programmatic access to prompts, responses, tokens, and timing for debugging and compliance
|
|
412
|
+
- **Glyph Visual-Text Compression**: Revolutionary compression system that renders text as optimized images for 3-4x token compression and faster inference
|
|
313
413
|
- **Centralized Configuration**: Global defaults and app-specific preferences at `~/.abstractcore/config/abstractcore.json`
|
|
314
414
|
- **Intelligent Media Handling**: Upload images, PDFs, and documents with automatic maximum resolution optimization
|
|
315
415
|
- **Vision Model Support**: Smart image processing at each model's maximum capability
|
|
@@ -752,6 +852,7 @@ curl -X POST http://localhost:8000/v1/chat/completions \
|
|
|
752
852
|
|
|
753
853
|
## Why AbstractCore?
|
|
754
854
|
|
|
855
|
+
- **Offline-First Philosophy**: Designed for open source LLMs with complete offline operation. No internet required after initial model download
|
|
755
856
|
- **Unified Interface**: One API for all LLM providers
|
|
756
857
|
- **Multimodal Support**: Upload images, PDFs, and documents across all providers
|
|
757
858
|
- **Vision Models**: Seamless integration with GPT-4o, Claude Vision, qwen3-vl, and more
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
abstractcore/__init__.py,sha256=
|
|
1
|
+
abstractcore/__init__.py,sha256=G3x3N515eDSDnFd8xFfR6xO875j-Wppyab7yd8_pgE8,2296
|
|
2
2
|
abstractcore/apps/__init__.py,sha256=sgNOv3lYyOWNBC-w6GnRN6aILGCbdkQtNcuQdJz5ghE,31
|
|
3
3
|
abstractcore/apps/__main__.py,sha256=fV9cGU99K4lGRsPNOLkh8qrDjH3JtMEWNlBiZrvI5Kk,1974
|
|
4
4
|
abstractcore/apps/app_config_utils.py,sha256=5GIvXnD996LFIV3-BpfkqII6UqYlStm7ZCgmqDEN8dc,890
|
|
@@ -8,42 +8,56 @@ abstractcore/apps/intent.py,sha256=5ie_H9_K_ZxlA0oCu7ROUrsgwfzDNFgVUyBNec6YVRE,2
|
|
|
8
8
|
abstractcore/apps/judge.py,sha256=nOgxvn-BbhNY6xU9AlTeD1yidTh73AiVlSN7hQCVE2M,23169
|
|
9
9
|
abstractcore/apps/summarizer.py,sha256=9aD6KH21w-tv_wGp9MaO2uyJuaU71OemW7KpqrG5t6w,14669
|
|
10
10
|
abstractcore/architectures/__init__.py,sha256=-4JucAM7JkMWShWKkePoclxrUHRKgaG36UTguJihE0U,1046
|
|
11
|
-
abstractcore/architectures/detection.py,sha256=
|
|
11
|
+
abstractcore/architectures/detection.py,sha256=kCgm0CjI1Ood0Lv36zGAlwv4AKy4ypsmzwFhEWxIXKM,19785
|
|
12
12
|
abstractcore/architectures/enums.py,sha256=9vIv2vDBEKhxwzwH9iaSAyf-iVj3p8y9loMeN_mYTJ8,3821
|
|
13
|
-
abstractcore/assets/architecture_formats.json,sha256=
|
|
14
|
-
abstractcore/assets/model_capabilities.json,sha256=
|
|
13
|
+
abstractcore/assets/architecture_formats.json,sha256=Yf-W1UuadrL8qid0pfU_pEBOkjwH4lvx7Nzu83GACp8,16622
|
|
14
|
+
abstractcore/assets/model_capabilities.json,sha256=tmfQNNPTNJAauF51nPYkMqcjc17F2geeYngh0HjEUZ0,68836
|
|
15
15
|
abstractcore/assets/session_schema.json,sha256=hMCVrq3KSyVExrMGzuykf7bU-z6WyIVuEGU8du9_zUY,10570
|
|
16
|
+
abstractcore/compression/__init__.py,sha256=svwaHCHoLkKp1IJKdlSC72k6b8vOUOqVF-Yek8ZHwj8,915
|
|
17
|
+
abstractcore/compression/analytics.py,sha256=3orxJkjjMQE_6mID8_8C0sRQ4Gr2Pw7kQ-Iy0p7pIgM,16042
|
|
18
|
+
abstractcore/compression/cache.py,sha256=ohBEvxzjwAbdG8bpQi6ZbF7uh2vyz07-vuu4Sig0ABk,9186
|
|
19
|
+
abstractcore/compression/config.py,sha256=Ec2raN_KEDW-prLax0vQN9nahlQWbfCho_Yr2QPb_LQ,11089
|
|
20
|
+
abstractcore/compression/exceptions.py,sha256=BOTfNyZFNiLuNcWoVSwW8xUXB7XHBi2bW3cUmOK_C9M,756
|
|
21
|
+
abstractcore/compression/glyph_processor.py,sha256=v3xuxWe4MGzdJi7I5tUxnMomV4hTFN2McPcH6kL6ly8,16362
|
|
22
|
+
abstractcore/compression/optimizer.py,sha256=PAsVWbhBKwCvnp6Omzf-cdcW-9-wmug7hVBtH-P9e3M,12733
|
|
23
|
+
abstractcore/compression/orchestrator.py,sha256=kG3iDIxorXlshii7568jX8ha0cpWldH9_kjjqIjHQO8,15117
|
|
24
|
+
abstractcore/compression/pil_text_renderer.py,sha256=IxVs5ZFXIJeXIQdS1hDQKJC6O2lHVOI7I2MvIx1P0i4,36819
|
|
25
|
+
abstractcore/compression/quality.py,sha256=bq7YI_5ywHfPnWSu1MmBRnV5Nxz8KBJGFvnfQOJSx5c,9415
|
|
26
|
+
abstractcore/compression/text_formatter.py,sha256=5RE6JrLkHvYoDQlsYJSoqfbwAa3caMr2i_DXog6ovZs,27328
|
|
27
|
+
abstractcore/compression/vision_compressor.py,sha256=5Ox3w_ee7fgPRDOpSQcooEGtuBKpQoAmWjwpLE2hoNU,12773
|
|
16
28
|
abstractcore/config/__init__.py,sha256=4mHX5z5Sq8R8xh78tb9jjZLaz_oBNW1eh914OsdDTxs,318
|
|
17
|
-
abstractcore/config/main.py,sha256=
|
|
18
|
-
abstractcore/config/manager.py,sha256=
|
|
29
|
+
abstractcore/config/main.py,sha256=oQxnNxo_78CusCuDKGgwal2T3S8MDpo3yzLSB1wpYkU,35573
|
|
30
|
+
abstractcore/config/manager.py,sha256=JTN_qoNqRGKQoPH66nVGn3PIjgt-eSgsG9BndYIC8Dg,16752
|
|
19
31
|
abstractcore/config/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
|
|
20
32
|
abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
|
|
21
33
|
abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
|
|
22
34
|
abstractcore/core/factory.py,sha256=ec7WGW2JKK-dhDplziTAeRkebEUFymtEEZ_bS5qkpqY,2798
|
|
23
35
|
abstractcore/core/interface.py,sha256=-VAY0nlsTnWN_WghiuMC7iE7xUdZfYOg6KlgrAPi14Y,14086
|
|
24
36
|
abstractcore/core/retry.py,sha256=wNlUAxfmvdO_uVWb4iqkhTqd7O1oRwXxqvVQaLXQOw0,14538
|
|
25
|
-
abstractcore/core/session.py,sha256=
|
|
37
|
+
abstractcore/core/session.py,sha256=WNVZYTX-xrY-7XUGLd3jpfhWcMrMRa4rlnyRixFJIJQ,40770
|
|
26
38
|
abstractcore/core/types.py,sha256=jj44i07kMjdg9FQ3mA_fK6r_M0Lcgt1RQpy1Ra5w-eI,4578
|
|
27
39
|
abstractcore/embeddings/__init__.py,sha256=hR3xZyqcRm4c2pq1dIa5lxj_-Bk70Zad802JQN4joWo,637
|
|
28
40
|
abstractcore/embeddings/manager.py,sha256=uFVbRPHx_R-kVMVA7N7_7EzeUmCJCeN9Dv0EV8Jko24,52245
|
|
29
41
|
abstractcore/embeddings/models.py,sha256=bsPAzL6gv57AVii8O15PT0kxfwRkOml3f3njJN4UDi4,4874
|
|
30
|
-
abstractcore/events/__init__.py,sha256=
|
|
42
|
+
abstractcore/events/__init__.py,sha256=OQJP7qOMWLg_tZyM62eZZ6uUpiHNevAWVdkK7W5slr0,11088
|
|
31
43
|
abstractcore/exceptions/__init__.py,sha256=h6y3sdZR6uFMh0iq7z85DfJi01zGQvjVOm1W7l86iVQ,3224
|
|
32
44
|
abstractcore/media/__init__.py,sha256=94k22PRXInaXFlxU7p06IRbyjmOkSlCITDm0gb8d9AI,3202
|
|
33
|
-
abstractcore/media/auto_handler.py,sha256=
|
|
45
|
+
abstractcore/media/auto_handler.py,sha256=eo5a-hn_geLPsBe1oLKvd2YTxS8NRMms1uosmUyu3-s,26500
|
|
34
46
|
abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
|
|
35
47
|
abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
|
|
36
|
-
abstractcore/media/types.py,sha256=
|
|
48
|
+
abstractcore/media/types.py,sha256=fofcQXSb-_PQwAHoSVObPhPdVUkwxOJec1ssv-731Ho,16158
|
|
37
49
|
abstractcore/media/vision_fallback.py,sha256=yojFTwKqiE0wfQGYphpXUcANpC0Q80s-qlt7gmQGfZg,11282
|
|
38
50
|
abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
|
|
39
51
|
abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
|
|
40
|
-
abstractcore/media/handlers/local_handler.py,sha256=
|
|
41
|
-
abstractcore/media/handlers/openai_handler.py,sha256=
|
|
42
|
-
abstractcore/media/processors/__init__.py,sha256=
|
|
43
|
-
abstractcore/media/processors/
|
|
52
|
+
abstractcore/media/handlers/local_handler.py,sha256=Y-viFGYowmtrj-J95JeKgx0L1WSe4ttJeEZ60PHf9Ck,23815
|
|
53
|
+
abstractcore/media/handlers/openai_handler.py,sha256=pzf9rHWWiBFKbQzABJhwbA1TlSC9neR4wXnPeAz0ENM,12754
|
|
54
|
+
abstractcore/media/processors/__init__.py,sha256=V5OqxTnIkcni-tVQZQYpSvO4hl74aFwYsc3MfSQSFWE,706
|
|
55
|
+
abstractcore/media/processors/direct_pdf_processor.py,sha256=DuI3bK8JfZwPVXZ43tH56y09kKqvHgWhR5NZ_HslcF4,8989
|
|
56
|
+
abstractcore/media/processors/glyph_pdf_processor.py,sha256=H-IqnQ0roDEWhsMzoW3BYgXzO9OWBSsrUr_zYIabRdI,8576
|
|
57
|
+
abstractcore/media/processors/image_processor.py,sha256=jXvbiV3RCYpAKVaee24lE5oXavASyt3ScJppOIiosmg,22972
|
|
44
58
|
abstractcore/media/processors/office_processor.py,sha256=MqhLDWNtjHEpiMgpFaf7tbj8iDcTCf_zelWrHZkr7Z4,18580
|
|
45
59
|
abstractcore/media/processors/pdf_processor.py,sha256=qniYt7cTYYPVRi_cS1IsXztOldeY0bqdn7sdbELBU9k,17157
|
|
46
|
-
abstractcore/media/processors/text_processor.py,sha256=
|
|
60
|
+
abstractcore/media/processors/text_processor.py,sha256=D84QWxxIou4MeNhERmCTxi_p27CgicVFhMXJiujZgIE,21905
|
|
47
61
|
abstractcore/media/utils/__init__.py,sha256=30-CTif91iRKOXJ4njGiduWAt-xp31U7NafMBNvgdO0,460
|
|
48
62
|
abstractcore/media/utils/image_scaler.py,sha256=QrYqoNQc8tzGu7I9Sf_E-Iv7ei2oLh714AGiX3yACNM,11338
|
|
49
63
|
abstractcore/processing/__init__.py,sha256=QcACEnhnHKYCkFL1LNOW_uqBrwkTAmz5A61N4K2dyu0,988
|
|
@@ -52,18 +66,19 @@ abstractcore/processing/basic_extractor.py,sha256=3x-3BdIHgLvqLnLF6K1-P4qVaLIpAn
|
|
|
52
66
|
abstractcore/processing/basic_intent.py,sha256=wD99Z7fE2RiYk6oyTZXojUbv-bz8HhKFIuIHYLLTw54,32455
|
|
53
67
|
abstractcore/processing/basic_judge.py,sha256=tKWJrg_tY4vCHzWgXxz0ZjgLXBYYfpMcpG7vl03hJcM,32218
|
|
54
68
|
abstractcore/processing/basic_summarizer.py,sha256=XHNxMQ_8aLStTeUo6_2JaThlct12Htpz7ORmm0iuJsg,25495
|
|
55
|
-
abstractcore/providers/__init__.py,sha256=
|
|
56
|
-
abstractcore/providers/anthropic_provider.py,sha256=
|
|
57
|
-
abstractcore/providers/base.py,sha256=
|
|
58
|
-
abstractcore/providers/huggingface_provider.py,sha256=
|
|
59
|
-
abstractcore/providers/lmstudio_provider.py,sha256=
|
|
60
|
-
abstractcore/providers/mlx_provider.py,sha256=
|
|
61
|
-
abstractcore/providers/
|
|
62
|
-
abstractcore/providers/
|
|
63
|
-
abstractcore/providers/
|
|
69
|
+
abstractcore/providers/__init__.py,sha256=O7gmT4p_jbzMjoZPhi_6RIMHQm-IMFX1XfcgySz3DSQ,1729
|
|
70
|
+
abstractcore/providers/anthropic_provider.py,sha256=kw5fegRkQL-maNdgnmRRMcQCIIFCdeX24ls9iDnuXDo,22648
|
|
71
|
+
abstractcore/providers/base.py,sha256=T7CTil_F_0_ZCu8jxiJUORc9hlkLKpTHmPRb2GolS4U,64571
|
|
72
|
+
abstractcore/providers/huggingface_provider.py,sha256=v4UUmODrnWKtTygzPh-lm4jSCAPms5VYJE5v7PWB4Lo,79458
|
|
73
|
+
abstractcore/providers/lmstudio_provider.py,sha256=mq5fy8nvpltc1KZgSgYOHwzv6T5sbZ4mlqjJR3nwiy4,23185
|
|
74
|
+
abstractcore/providers/mlx_provider.py,sha256=afLCEwuw7r8OK4fD3OriyKMcWpxVIob_37ItmgAclfc,23123
|
|
75
|
+
abstractcore/providers/model_capabilities.py,sha256=C4HIgvNTp9iIPiDeWyXo7vdzRkMdecRPoQi80yHSOL0,11955
|
|
76
|
+
abstractcore/providers/ollama_provider.py,sha256=wt8SfpODWZvhaqhaW80PvUeiCK7KNWauOgiWivOppK8,23463
|
|
77
|
+
abstractcore/providers/openai_provider.py,sha256=pWKkFF8Gy6hcg4unFxmN9AMXlVmEcqEOBKIZTH6PN4k,24379
|
|
78
|
+
abstractcore/providers/registry.py,sha256=KG7qjP76Z5t6k5ZsmqoDEbe3A39RJhhvExKPvSKMEms,19442
|
|
64
79
|
abstractcore/providers/streaming.py,sha256=VnffBV_CU9SAKzghL154OoFyEdDsiLwUNXPahyU41Bw,31342
|
|
65
80
|
abstractcore/server/__init__.py,sha256=1DSAz_YhQtnKv7sNi5TMQV8GFujctDOabgvAdilQE0o,249
|
|
66
|
-
abstractcore/server/app.py,sha256=
|
|
81
|
+
abstractcore/server/app.py,sha256=ajG4yfMOHjqBafquLHeLTaMmEr01RXiBRxjFRTIT2j8,96602
|
|
67
82
|
abstractcore/structured/__init__.py,sha256=VXRQHGcm-iaYnLOBPin2kyhvhhQA0kaGt_pcNDGsE_8,339
|
|
68
83
|
abstractcore/structured/handler.py,sha256=hcUe_fZcwx0O3msLqFiOsj6-jbq3S-ZQa9c1nRIZvuo,24622
|
|
69
84
|
abstractcore/structured/retry.py,sha256=BN_PvrWybyU1clMy2cult1-TVxFSMaVqiCPmmXvA5aI,3805
|
|
@@ -75,16 +90,18 @@ abstractcore/tools/parser.py,sha256=1r5nmEEp1Rid3JU6ct-s3lP-eCln67fvXG5HCjqiRew,
|
|
|
75
90
|
abstractcore/tools/registry.py,sha256=cN3nbPEK6L2vAd9740MIFf2fitW_4WHpQfK4KvQjnT0,9059
|
|
76
91
|
abstractcore/tools/syntax_rewriter.py,sha256=c3NSTvUF3S3ho5Cwjp7GJJdibeYAI6k3iaBwhKcpTfo,17318
|
|
77
92
|
abstractcore/tools/tag_rewriter.py,sha256=UGFMBj2QKwm12j8JQ6oc2C_N3ZeNqz9Enz4VkEIrS0c,20338
|
|
78
|
-
abstractcore/utils/__init__.py,sha256=
|
|
93
|
+
abstractcore/utils/__init__.py,sha256=8uvIU1WpUfetvWA90PPvXtxnFNjMQF0umb8_FuK2cTA,779
|
|
79
94
|
abstractcore/utils/cli.py,sha256=tO7S-iVSZavxJaX7OTruNAmF3lJz9eCDORK8Dm7FdgA,70558
|
|
80
95
|
abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy_vDEKEUE7OiKY,6028
|
|
81
96
|
abstractcore/utils/self_fixes.py,sha256=QEDwNTW80iQM4ftfEY3Ghz69F018oKwLM9yeRCYZOvw,5886
|
|
82
97
|
abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
|
|
83
98
|
abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
|
|
84
|
-
abstractcore/utils/
|
|
85
|
-
abstractcore
|
|
86
|
-
abstractcore
|
|
87
|
-
abstractcore-2.5.
|
|
88
|
-
abstractcore-2.5.
|
|
89
|
-
abstractcore-2.5.
|
|
90
|
-
abstractcore-2.5.
|
|
99
|
+
abstractcore/utils/trace_export.py,sha256=MD1DHDWltpewy62cYzz_OSPAA6edZbZq7_pZbvxz_H8,9279
|
|
100
|
+
abstractcore/utils/version.py,sha256=5dD6Nqt67LVS1pdUKp_GG1C6h57jBU2JksiHqv5h774,605
|
|
101
|
+
abstractcore/utils/vlm_token_calculator.py,sha256=VBmIji_oiqOQ13IvVhNkb8E246tYMIXWVVOnl86Ne94,27978
|
|
102
|
+
abstractcore-2.5.3.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
|
|
103
|
+
abstractcore-2.5.3.dist-info/METADATA,sha256=0PFx8kXgAlmR4xKa7QRLBqcf1ZxGOZeXJhTfo9OvYu4,36966
|
|
104
|
+
abstractcore-2.5.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
105
|
+
abstractcore-2.5.3.dist-info/entry_points.txt,sha256=jXNdzeltVs23A2JM2e2HOiAHldHrsnud3EvPI5VffOs,658
|
|
106
|
+
abstractcore-2.5.3.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
|
|
107
|
+
abstractcore-2.5.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|