abstractcore 2.5.2__py3-none-any.whl → 2.6.0__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 +19 -1
- abstractcore/architectures/detection.py +252 -6
- 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/retry.py +2 -2
- abstractcore/core/session.py +193 -7
- abstractcore/download.py +253 -0
- abstractcore/embeddings/manager.py +2 -2
- abstractcore/events/__init__.py +113 -2
- abstractcore/exceptions/__init__.py +49 -2
- 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/office_processor.py +2 -2
- abstractcore/media/processors/text_processor.py +18 -3
- abstractcore/media/types.py +164 -7
- abstractcore/media/utils/image_scaler.py +2 -2
- abstractcore/media/vision_fallback.py +2 -2
- abstractcore/providers/__init__.py +18 -0
- abstractcore/providers/anthropic_provider.py +228 -8
- abstractcore/providers/base.py +378 -11
- abstractcore/providers/huggingface_provider.py +563 -23
- abstractcore/providers/lmstudio_provider.py +284 -4
- abstractcore/providers/mlx_provider.py +27 -2
- abstractcore/providers/model_capabilities.py +352 -0
- abstractcore/providers/ollama_provider.py +282 -6
- abstractcore/providers/openai_provider.py +286 -8
- abstractcore/providers/registry.py +85 -13
- abstractcore/providers/streaming.py +2 -2
- abstractcore/server/app.py +91 -81
- 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/__init__.py +4 -1
- abstractcore/utils/self_fixes.py +2 -2
- 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.6.0.dist-info}/METADATA +207 -8
- abstractcore-2.6.0.dist-info/RECORD +108 -0
- abstractcore-2.5.2.dist-info/RECORD +0 -90
- {abstractcore-2.5.2.dist-info → abstractcore-2.6.0.dist-info}/WHEEL +0 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.6.0.dist-info}/entry_points.txt +0 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.6.0.dist-info}/licenses/LICENSE +0 -0
- {abstractcore-2.5.2.dist-info → abstractcore-2.6.0.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.0
|
|
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,18 +61,26 @@ 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
|
|
65
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"
|
|
66
72
|
Provides-Extra: heavy-providers
|
|
67
73
|
Requires-Dist: abstractcore[huggingface]; extra == "heavy-providers"
|
|
68
74
|
Provides-Extra: all-providers
|
|
69
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"
|
|
70
78
|
Provides-Extra: all
|
|
71
|
-
Requires-Dist: abstractcore[anthropic,dev,docs,embeddings,huggingface,lmstudio,media,mlx,ollama,openai,processing,server,test,tools]; extra == "all"
|
|
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"
|
|
72
82
|
Provides-Extra: lightweight
|
|
73
|
-
Requires-Dist: abstractcore[anthropic,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
|
|
83
|
+
Requires-Dist: abstractcore[anthropic,compression,embeddings,lmstudio,media,ollama,openai,processing,server,tools]; extra == "lightweight"
|
|
74
84
|
Provides-Extra: dev
|
|
75
85
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
76
86
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
@@ -116,7 +126,11 @@ A unified Python library for interaction with multiple Large Language Model (LLM
|
|
|
116
126
|
### Installation
|
|
117
127
|
|
|
118
128
|
```bash
|
|
129
|
+
# macOS/Apple Silicon (includes MLX)
|
|
119
130
|
pip install abstractcore[all]
|
|
131
|
+
|
|
132
|
+
# Linux/Windows (excludes MLX)
|
|
133
|
+
pip install abstractcore[all-non-mlx]
|
|
120
134
|
```
|
|
121
135
|
|
|
122
136
|
### Basic Usage
|
|
@@ -258,6 +272,118 @@ loaded_session = BasicSession.load('conversation.json', provider=llm)
|
|
|
258
272
|
|
|
259
273
|
[Learn more about Session](docs/session.md)
|
|
260
274
|
|
|
275
|
+
### Interaction Tracing (Observability)
|
|
276
|
+
|
|
277
|
+
Enable complete observability of LLM interactions for debugging, compliance, and transparency:
|
|
278
|
+
|
|
279
|
+
```python
|
|
280
|
+
from abstractcore import create_llm
|
|
281
|
+
from abstractcore.core.session import BasicSession
|
|
282
|
+
from abstractcore.utils import export_traces
|
|
283
|
+
|
|
284
|
+
# Enable tracing on provider
|
|
285
|
+
llm = create_llm('openai', model='gpt-4o-mini', enable_tracing=True, max_traces=100)
|
|
286
|
+
|
|
287
|
+
# Or on session for automatic correlation
|
|
288
|
+
session = BasicSession(provider=llm, enable_tracing=True)
|
|
289
|
+
|
|
290
|
+
# Generate with custom metadata
|
|
291
|
+
response = session.generate(
|
|
292
|
+
"Write Python code",
|
|
293
|
+
step_type='code_generation',
|
|
294
|
+
attempt_number=1
|
|
295
|
+
)
|
|
296
|
+
|
|
297
|
+
# Access complete trace
|
|
298
|
+
trace_id = response.metadata['trace_id']
|
|
299
|
+
trace = llm.get_traces(trace_id=trace_id)
|
|
300
|
+
|
|
301
|
+
# Full interaction context
|
|
302
|
+
print(f"Prompt: {trace['prompt']}")
|
|
303
|
+
print(f"Response: {trace['response']['content']}")
|
|
304
|
+
print(f"Tokens: {trace['response']['usage']['total_tokens']}")
|
|
305
|
+
print(f"Time: {trace['response']['generation_time_ms']}ms")
|
|
306
|
+
print(f"Custom metadata: {trace['metadata']}")
|
|
307
|
+
|
|
308
|
+
# Get all session traces
|
|
309
|
+
traces = session.get_interaction_history()
|
|
310
|
+
|
|
311
|
+
# Export to JSONL, JSON, or Markdown
|
|
312
|
+
export_traces(traces, format='markdown', file_path='workflow_trace.md')
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**What's captured:**
|
|
316
|
+
- All prompts, system prompts, and conversation history
|
|
317
|
+
- Complete responses with token usage and timing
|
|
318
|
+
- Generation parameters (temperature, tokens, seed, etc.)
|
|
319
|
+
- Custom metadata for workflow tracking
|
|
320
|
+
- Tool calls and results
|
|
321
|
+
|
|
322
|
+
[Learn more about Interaction Tracing](docs/interaction-tracing.md)
|
|
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
|
+
|
|
261
387
|
### Media Handling
|
|
262
388
|
|
|
263
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.
|
|
@@ -307,9 +433,57 @@ response = llm.generate(
|
|
|
307
433
|
|
|
308
434
|
[Learn more about Media Handling](docs/media-handling-system.md)
|
|
309
435
|
|
|
436
|
+
### Glyph Visual-Text Compression (🧪 EXPERIMENTAL)
|
|
437
|
+
|
|
438
|
+
> ⚠️ **Vision Model Requirement**: This feature ONLY works with vision-capable models (e.g., gpt-4o, claude-3-5-sonnet, llama3.2-vision)
|
|
439
|
+
|
|
440
|
+
Achieve **3-4x token compression** and **faster inference** with Glyph's revolutionary visual-text compression:
|
|
441
|
+
|
|
442
|
+
```python
|
|
443
|
+
from abstractcore import create_llm
|
|
444
|
+
|
|
445
|
+
# IMPORTANT: Requires a vision-capable model
|
|
446
|
+
llm = create_llm("ollama", model="llama3.2-vision:11b") # ✓ Vision model
|
|
447
|
+
|
|
448
|
+
# Large documents are automatically compressed for efficiency
|
|
449
|
+
response = llm.generate(
|
|
450
|
+
"Analyze the key findings in this research paper",
|
|
451
|
+
media=["large_research_paper.pdf"] # Automatically compressed if beneficial
|
|
452
|
+
)
|
|
453
|
+
|
|
454
|
+
# Force compression (raises error if model lacks vision)
|
|
455
|
+
response = llm.generate(
|
|
456
|
+
"Summarize this document",
|
|
457
|
+
media=["document.pdf"],
|
|
458
|
+
glyph_compression="always" # "auto" | "always" | "never"
|
|
459
|
+
)
|
|
460
|
+
|
|
461
|
+
# Non-vision models will raise UnsupportedFeatureError
|
|
462
|
+
# llm_no_vision = create_llm("openai", model="gpt-4") # ✗ No vision
|
|
463
|
+
# response = llm_no_vision.generate("...", glyph_compression="always") # Error!
|
|
464
|
+
|
|
465
|
+
# Check compression stats
|
|
466
|
+
if response.metadata and response.metadata.get('compression_used'):
|
|
467
|
+
stats = response.metadata.get('compression_stats', {})
|
|
468
|
+
print(f"Compression ratio: {stats.get('compression_ratio')}x")
|
|
469
|
+
print(f"Processing speedup: 14% faster, 79% less memory")
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
**Validated Performance:**
|
|
473
|
+
- **14% faster processing** with real-world documents
|
|
474
|
+
- **79% lower memory usage** during processing
|
|
475
|
+
- **100% quality preservation** - no loss of analytical accuracy
|
|
476
|
+
- **Transparent operation** - works with existing code
|
|
477
|
+
|
|
478
|
+
[Learn more about Glyph Compression](docs/glyphs.md)
|
|
479
|
+
|
|
310
480
|
## Key Features
|
|
311
481
|
|
|
482
|
+
- **Offline-First Design**: Built primarily for open source LLMs with full offline capability. Download once, run forever without internet access
|
|
312
483
|
- **Provider Agnostic**: Seamlessly switch between OpenAI, Anthropic, Ollama, LMStudio, MLX, HuggingFace
|
|
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
|
|
486
|
+
- **Glyph Visual-Text Compression**: Revolutionary compression system that renders text as optimized images for 3-4x token compression and faster inference
|
|
313
487
|
- **Centralized Configuration**: Global defaults and app-specific preferences at `~/.abstractcore/config/abstractcore.json`
|
|
314
488
|
- **Intelligent Media Handling**: Upload images, PDFs, and documents with automatic maximum resolution optimization
|
|
315
489
|
- **Vision Model Support**: Smart image processing at each model's maximum capability
|
|
@@ -422,7 +596,7 @@ python -m abstractcore.utils.cli --provider anthropic --model claude-3-5-haiku-l
|
|
|
422
596
|
|
|
423
597
|
## Built-in Applications (Ready-to-Use CLI Tools)
|
|
424
598
|
|
|
425
|
-
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.
|
|
426
600
|
|
|
427
601
|
### Available Applications
|
|
428
602
|
|
|
@@ -432,6 +606,7 @@ AbstractCore includes **four specialized command-line applications** for common
|
|
|
432
606
|
| **Extractor** | Entity and relationship extraction | `extractor` |
|
|
433
607
|
| **Judge** | Text evaluation and scoring | `judge` |
|
|
434
608
|
| **Intent Analyzer** | Psychological intent analysis & deception detection | `intent` |
|
|
609
|
+
| **DeepSearch** | Autonomous multi-stage research with web search | `deepsearch` |
|
|
435
610
|
|
|
436
611
|
### Quick Usage Examples
|
|
437
612
|
|
|
@@ -455,6 +630,11 @@ judge proposal.md --custom-criteria has_examples,covers_risks --output assessmen
|
|
|
455
630
|
intent conversation.txt --focus-participant user --depth comprehensive
|
|
456
631
|
intent email.txt --format plain --context document --verbose
|
|
457
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
|
|
458
638
|
```
|
|
459
639
|
|
|
460
640
|
### Installation & Setup
|
|
@@ -467,9 +647,10 @@ pip install abstractcore[all]
|
|
|
467
647
|
|
|
468
648
|
# Apps are immediately available
|
|
469
649
|
summarizer --help
|
|
470
|
-
extractor --help
|
|
650
|
+
extractor --help
|
|
471
651
|
judge --help
|
|
472
652
|
intent --help
|
|
653
|
+
deepsearch --help
|
|
473
654
|
```
|
|
474
655
|
|
|
475
656
|
### Alternative Usage Methods
|
|
@@ -480,12 +661,14 @@ summarizer document.txt
|
|
|
480
661
|
extractor report.pdf
|
|
481
662
|
judge essay.md
|
|
482
663
|
intent conversation.txt
|
|
664
|
+
deepsearch "your research query"
|
|
483
665
|
|
|
484
666
|
# Method 2: Via Python module
|
|
485
667
|
python -m abstractcore.apps summarizer document.txt
|
|
486
668
|
python -m abstractcore.apps extractor report.pdf
|
|
487
669
|
python -m abstractcore.apps judge essay.md
|
|
488
670
|
python -m abstractcore.apps intent conversation.txt
|
|
671
|
+
python -m abstractcore.apps deepsearch "your research query"
|
|
489
672
|
```
|
|
490
673
|
|
|
491
674
|
### Key Parameters
|
|
@@ -533,6 +716,7 @@ Each application has documentation with examples and usage information:
|
|
|
533
716
|
- **[Extractor Guide](docs/apps/basic-extractor.md)** - Entity and relationship extraction
|
|
534
717
|
- **[Intent Analyzer Guide](docs/apps/basic-intent.md)** - Psychological intent analysis and deception detection
|
|
535
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
|
|
536
720
|
|
|
537
721
|
**When to use the apps:**
|
|
538
722
|
- Processing documents without writing code
|
|
@@ -752,6 +936,7 @@ curl -X POST http://localhost:8000/v1/chat/completions \
|
|
|
752
936
|
|
|
753
937
|
## Why AbstractCore?
|
|
754
938
|
|
|
939
|
+
- **Offline-First Philosophy**: Designed for open source LLMs with complete offline operation. No internet required after initial model download
|
|
755
940
|
- **Unified Interface**: One API for all LLM providers
|
|
756
941
|
- **Multimodal Support**: Upload images, PDFs, and documents across all providers
|
|
757
942
|
- **Vision Models**: Seamless integration with GPT-4o, Claude Vision, qwen3-vl, and more
|
|
@@ -777,6 +962,9 @@ pip install abstractcore[media]
|
|
|
777
962
|
pip install abstractcore[openai]
|
|
778
963
|
pip install abstractcore[anthropic]
|
|
779
964
|
pip install abstractcore[ollama]
|
|
965
|
+
pip install abstractcore[lmstudio]
|
|
966
|
+
pip install abstractcore[huggingface]
|
|
967
|
+
pip install abstractcore[mlx] # macOS/Apple Silicon only
|
|
780
968
|
|
|
781
969
|
# With server support
|
|
782
970
|
pip install abstractcore[server]
|
|
@@ -786,6 +974,16 @@ pip install abstractcore[embeddings]
|
|
|
786
974
|
|
|
787
975
|
# Everything (recommended)
|
|
788
976
|
pip install abstractcore[all]
|
|
977
|
+
|
|
978
|
+
# Cross-platform (all except MLX - for Linux/Windows)
|
|
979
|
+
pip install abstractcore[all-non-mlx]
|
|
980
|
+
|
|
981
|
+
# Provider groups
|
|
982
|
+
pip install abstractcore[all-providers] # All providers (includes MLX)
|
|
983
|
+
pip install abstractcore[all-providers-non-mlx] # All providers except MLX
|
|
984
|
+
pip install abstractcore[local-providers] # Ollama, LMStudio, MLX
|
|
985
|
+
pip install abstractcore[local-providers-non-mlx] # Ollama, LMStudio only
|
|
986
|
+
pip install abstractcore[api-providers] # OpenAI, Anthropic
|
|
789
987
|
```
|
|
790
988
|
|
|
791
989
|
**Media processing extras:**
|
|
@@ -816,6 +1014,7 @@ All tests passing as of October 12th, 2025.
|
|
|
816
1014
|
## Quick Links
|
|
817
1015
|
|
|
818
1016
|
- **[📚 Documentation Index](docs/)** - Complete documentation navigation guide
|
|
1017
|
+
- **[🔍 Interaction Tracing](docs/interaction-tracing.md)** - LLM observability and debugging ⭐ NEW
|
|
819
1018
|
- **[Getting Started](docs/getting-started.md)** - 5-minute quick start
|
|
820
1019
|
- **[⚙️ Prerequisites](docs/prerequisites.md)** - Provider setup (OpenAI, Anthropic, Ollama, etc.)
|
|
821
1020
|
- **[📖 Python API](docs/api-reference.md)** - Complete Python API reference
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
abstractcore/__init__.py,sha256=DDn7Y74JyDvS79Fm8aSI38l9p5jwHZYWlSgKRsjPE4k,2476
|
|
2
|
+
abstractcore/download.py,sha256=r-vC-zRVtX5KBOQdcZitop3nSdlnTbhbrPeoyZ82dGo,8682
|
|
3
|
+
abstractcore/apps/__init__.py,sha256=sgNOv3lYyOWNBC-w6GnRN6aILGCbdkQtNcuQdJz5ghE,31
|
|
4
|
+
abstractcore/apps/__main__.py,sha256=fV9cGU99K4lGRsPNOLkh8qrDjH3JtMEWNlBiZrvI5Kk,1974
|
|
5
|
+
abstractcore/apps/app_config_utils.py,sha256=5GIvXnD996LFIV3-BpfkqII6UqYlStm7ZCgmqDEN8dc,890
|
|
6
|
+
abstractcore/apps/deepsearch.py,sha256=UlmuBS9T4yNsz0V_iY08GNNDTstsI5OJNNV6c8CU6AE,23191
|
|
7
|
+
abstractcore/apps/extractor.py,sha256=OfiqB9l_alH9xCGb6zOD__QJkDjdKOlLZngriVgmn7c,23749
|
|
8
|
+
abstractcore/apps/intent.py,sha256=5ie_H9_K_ZxlA0oCu7ROUrsgwfzDNFgVUyBNec6YVRE,22813
|
|
9
|
+
abstractcore/apps/judge.py,sha256=nOgxvn-BbhNY6xU9AlTeD1yidTh73AiVlSN7hQCVE2M,23169
|
|
10
|
+
abstractcore/apps/summarizer.py,sha256=9aD6KH21w-tv_wGp9MaO2uyJuaU71OemW7KpqrG5t6w,14669
|
|
11
|
+
abstractcore/architectures/__init__.py,sha256=-4JucAM7JkMWShWKkePoclxrUHRKgaG36UTguJihE0U,1046
|
|
12
|
+
abstractcore/architectures/detection.py,sha256=jmpD04xcKotWCW7--jadBzCtD2a5dYJi1zljpxB9JmU,19813
|
|
13
|
+
abstractcore/architectures/enums.py,sha256=9vIv2vDBEKhxwzwH9iaSAyf-iVj3p8y9loMeN_mYTJ8,3821
|
|
14
|
+
abstractcore/assets/architecture_formats.json,sha256=Yf-W1UuadrL8qid0pfU_pEBOkjwH4lvx7Nzu83GACp8,16622
|
|
15
|
+
abstractcore/assets/model_capabilities.json,sha256=tmfQNNPTNJAauF51nPYkMqcjc17F2geeYngh0HjEUZ0,68836
|
|
16
|
+
abstractcore/assets/session_schema.json,sha256=hMCVrq3KSyVExrMGzuykf7bU-z6WyIVuEGU8du9_zUY,10570
|
|
17
|
+
abstractcore/compression/__init__.py,sha256=svwaHCHoLkKp1IJKdlSC72k6b8vOUOqVF-Yek8ZHwj8,915
|
|
18
|
+
abstractcore/compression/analytics.py,sha256=3orxJkjjMQE_6mID8_8C0sRQ4Gr2Pw7kQ-Iy0p7pIgM,16042
|
|
19
|
+
abstractcore/compression/cache.py,sha256=ohBEvxzjwAbdG8bpQi6ZbF7uh2vyz07-vuu4Sig0ABk,9186
|
|
20
|
+
abstractcore/compression/config.py,sha256=Ec2raN_KEDW-prLax0vQN9nahlQWbfCho_Yr2QPb_LQ,11089
|
|
21
|
+
abstractcore/compression/exceptions.py,sha256=BOTfNyZFNiLuNcWoVSwW8xUXB7XHBi2bW3cUmOK_C9M,756
|
|
22
|
+
abstractcore/compression/glyph_processor.py,sha256=v3xuxWe4MGzdJi7I5tUxnMomV4hTFN2McPcH6kL6ly8,16362
|
|
23
|
+
abstractcore/compression/optimizer.py,sha256=PAsVWbhBKwCvnp6Omzf-cdcW-9-wmug7hVBtH-P9e3M,12733
|
|
24
|
+
abstractcore/compression/orchestrator.py,sha256=kG3iDIxorXlshii7568jX8ha0cpWldH9_kjjqIjHQO8,15117
|
|
25
|
+
abstractcore/compression/pil_text_renderer.py,sha256=IxVs5ZFXIJeXIQdS1hDQKJC6O2lHVOI7I2MvIx1P0i4,36819
|
|
26
|
+
abstractcore/compression/quality.py,sha256=bq7YI_5ywHfPnWSu1MmBRnV5Nxz8KBJGFvnfQOJSx5c,9415
|
|
27
|
+
abstractcore/compression/text_formatter.py,sha256=5RE6JrLkHvYoDQlsYJSoqfbwAa3caMr2i_DXog6ovZs,27328
|
|
28
|
+
abstractcore/compression/vision_compressor.py,sha256=5Ox3w_ee7fgPRDOpSQcooEGtuBKpQoAmWjwpLE2hoNU,12773
|
|
29
|
+
abstractcore/config/__init__.py,sha256=4mHX5z5Sq8R8xh78tb9jjZLaz_oBNW1eh914OsdDTxs,318
|
|
30
|
+
abstractcore/config/main.py,sha256=oQxnNxo_78CusCuDKGgwal2T3S8MDpo3yzLSB1wpYkU,35573
|
|
31
|
+
abstractcore/config/manager.py,sha256=JTN_qoNqRGKQoPH66nVGn3PIjgt-eSgsG9BndYIC8Dg,16752
|
|
32
|
+
abstractcore/config/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
|
|
33
|
+
abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
|
|
34
|
+
abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
|
|
35
|
+
abstractcore/core/factory.py,sha256=ec7WGW2JKK-dhDplziTAeRkebEUFymtEEZ_bS5qkpqY,2798
|
|
36
|
+
abstractcore/core/interface.py,sha256=-VAY0nlsTnWN_WghiuMC7iE7xUdZfYOg6KlgrAPi14Y,14086
|
|
37
|
+
abstractcore/core/retry.py,sha256=xP38rabBqJImZ-yg60L5mKeg80ATvxmLG5Yp6lCeTpk,14566
|
|
38
|
+
abstractcore/core/session.py,sha256=n9StBlMhSlETlEqQ401PpM8lK0W2ycCP4Zwrywl4Mhs,46147
|
|
39
|
+
abstractcore/core/types.py,sha256=jj44i07kMjdg9FQ3mA_fK6r_M0Lcgt1RQpy1Ra5w-eI,4578
|
|
40
|
+
abstractcore/embeddings/__init__.py,sha256=hR3xZyqcRm4c2pq1dIa5lxj_-Bk70Zad802JQN4joWo,637
|
|
41
|
+
abstractcore/embeddings/manager.py,sha256=bisyQJquM1HLQor8ZAfO9V_XWWHw0b4PjyAz9g7sS-4,52273
|
|
42
|
+
abstractcore/embeddings/models.py,sha256=bsPAzL6gv57AVii8O15PT0kxfwRkOml3f3njJN4UDi4,4874
|
|
43
|
+
abstractcore/events/__init__.py,sha256=eV3-HRRjTS923YXq5is4JUjPEfaMjT4eGW-I7NuawW4,15598
|
|
44
|
+
abstractcore/exceptions/__init__.py,sha256=mR2i8GvsWrD_dJDAHs8Kw2rTSEMfBxwT1e_RfdQlE_A,4750
|
|
45
|
+
abstractcore/media/__init__.py,sha256=94k22PRXInaXFlxU7p06IRbyjmOkSlCITDm0gb8d9AI,3202
|
|
46
|
+
abstractcore/media/auto_handler.py,sha256=eo5a-hn_geLPsBe1oLKvd2YTxS8NRMms1uosmUyu3-s,26500
|
|
47
|
+
abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
|
|
48
|
+
abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
|
|
49
|
+
abstractcore/media/types.py,sha256=fofcQXSb-_PQwAHoSVObPhPdVUkwxOJec1ssv-731Ho,16158
|
|
50
|
+
abstractcore/media/vision_fallback.py,sha256=-yVKS5n5OJPcsNvInkAnw5SWzTx0_dOLi6TCkZrtw2U,11310
|
|
51
|
+
abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
|
|
52
|
+
abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
|
|
53
|
+
abstractcore/media/handlers/local_handler.py,sha256=Y-viFGYowmtrj-J95JeKgx0L1WSe4ttJeEZ60PHf9Ck,23815
|
|
54
|
+
abstractcore/media/handlers/openai_handler.py,sha256=pzf9rHWWiBFKbQzABJhwbA1TlSC9neR4wXnPeAz0ENM,12754
|
|
55
|
+
abstractcore/media/processors/__init__.py,sha256=V5OqxTnIkcni-tVQZQYpSvO4hl74aFwYsc3MfSQSFWE,706
|
|
56
|
+
abstractcore/media/processors/direct_pdf_processor.py,sha256=DuI3bK8JfZwPVXZ43tH56y09kKqvHgWhR5NZ_HslcF4,8989
|
|
57
|
+
abstractcore/media/processors/glyph_pdf_processor.py,sha256=H-IqnQ0roDEWhsMzoW3BYgXzO9OWBSsrUr_zYIabRdI,8576
|
|
58
|
+
abstractcore/media/processors/image_processor.py,sha256=jXvbiV3RCYpAKVaee24lE5oXavASyt3ScJppOIiosmg,22972
|
|
59
|
+
abstractcore/media/processors/office_processor.py,sha256=_aTrrDtREiy6MivbANFc1FKq06AbAC-pL1EXKiHceGs,18609
|
|
60
|
+
abstractcore/media/processors/pdf_processor.py,sha256=qniYt7cTYYPVRi_cS1IsXztOldeY0bqdn7sdbELBU9k,17157
|
|
61
|
+
abstractcore/media/processors/text_processor.py,sha256=D84QWxxIou4MeNhERmCTxi_p27CgicVFhMXJiujZgIE,21905
|
|
62
|
+
abstractcore/media/utils/__init__.py,sha256=30-CTif91iRKOXJ4njGiduWAt-xp31U7NafMBNvgdO0,460
|
|
63
|
+
abstractcore/media/utils/image_scaler.py,sha256=jPdYd65K5oeo0YaXjOkmv-tvs6tNHYwxJCZ29vZqFDg,11367
|
|
64
|
+
abstractcore/processing/__init__.py,sha256=QcACEnhnHKYCkFL1LNOW_uqBrwkTAmz5A61N4K2dyu0,988
|
|
65
|
+
abstractcore/processing/basic_deepsearch.py,sha256=dzJQtH4k44XY9tvG0Z4JIlYt_s7HpbLdSPScha-t7vk,101036
|
|
66
|
+
abstractcore/processing/basic_extractor.py,sha256=3x-3BdIHgLvqLnLF6K1-P4qVaLIpAnNIIutaJi7lDQM,49832
|
|
67
|
+
abstractcore/processing/basic_intent.py,sha256=wD99Z7fE2RiYk6oyTZXojUbv-bz8HhKFIuIHYLLTw54,32455
|
|
68
|
+
abstractcore/processing/basic_judge.py,sha256=tKWJrg_tY4vCHzWgXxz0ZjgLXBYYfpMcpG7vl03hJcM,32218
|
|
69
|
+
abstractcore/processing/basic_summarizer.py,sha256=XHNxMQ_8aLStTeUo6_2JaThlct12Htpz7ORmm0iuJsg,25495
|
|
70
|
+
abstractcore/providers/__init__.py,sha256=O7gmT4p_jbzMjoZPhi_6RIMHQm-IMFX1XfcgySz3DSQ,1729
|
|
71
|
+
abstractcore/providers/anthropic_provider.py,sha256=0-qZb0Es6-VLuVVl2j7IUjOuyRlgjQdJFulWfpi4qb4,31740
|
|
72
|
+
abstractcore/providers/base.py,sha256=nWF1pxeUlT4ozlUqKG0rWOmLkfo-zQgfU7fv3AUSI08,68452
|
|
73
|
+
abstractcore/providers/huggingface_provider.py,sha256=v4UUmODrnWKtTygzPh-lm4jSCAPms5VYJE5v7PWB4Lo,79458
|
|
74
|
+
abstractcore/providers/lmstudio_provider.py,sha256=e53EF1kyIK4rMRrHZqeE-RfFbxap05iQYWOq_jjxJSk,33935
|
|
75
|
+
abstractcore/providers/mlx_provider.py,sha256=afLCEwuw7r8OK4fD3OriyKMcWpxVIob_37ItmgAclfc,23123
|
|
76
|
+
abstractcore/providers/model_capabilities.py,sha256=C4HIgvNTp9iIPiDeWyXo7vdzRkMdecRPoQi80yHSOL0,11955
|
|
77
|
+
abstractcore/providers/ollama_provider.py,sha256=FoofSLtevTGxsjjiQw9Q7OWBjp4RJ8JHrFVefPnHyoA,33915
|
|
78
|
+
abstractcore/providers/openai_provider.py,sha256=Y-79mAtgDiDw6SqF2LhnWtlfuC_e6TxeF_tqJWAAyWo,36364
|
|
79
|
+
abstractcore/providers/registry.py,sha256=KG7qjP76Z5t6k5ZsmqoDEbe3A39RJhhvExKPvSKMEms,19442
|
|
80
|
+
abstractcore/providers/streaming.py,sha256=HaGkoItPWXqgml3C-KiPc0hBNpztLzjl_ooECw11BHI,31370
|
|
81
|
+
abstractcore/server/__init__.py,sha256=1DSAz_YhQtnKv7sNi5TMQV8GFujctDOabgvAdilQE0o,249
|
|
82
|
+
abstractcore/server/app.py,sha256=ajG4yfMOHjqBafquLHeLTaMmEr01RXiBRxjFRTIT2j8,96602
|
|
83
|
+
abstractcore/structured/__init__.py,sha256=VXRQHGcm-iaYnLOBPin2kyhvhhQA0kaGt_pcNDGsE_8,339
|
|
84
|
+
abstractcore/structured/handler.py,sha256=hcUe_fZcwx0O3msLqFiOsj6-jbq3S-ZQa9c1nRIZvuo,24622
|
|
85
|
+
abstractcore/structured/retry.py,sha256=BN_PvrWybyU1clMy2cult1-TVxFSMaVqiCPmmXvA5aI,3805
|
|
86
|
+
abstractcore/tools/__init__.py,sha256=oh6vG0RdM1lqUtOp95mLrTsWLh9VmhJf5_FVjGIP5_M,2259
|
|
87
|
+
abstractcore/tools/common_tools.py,sha256=hn4Y-HmpYAH3nLnKqJayWr-mpou3T5Ixu-LRdeO1_c4,95161
|
|
88
|
+
abstractcore/tools/core.py,sha256=lUUGihyceiRYlKUFvEMig9jWFF563d574mSDbYYD3fM,4777
|
|
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
|
|
94
|
+
abstractcore/utils/__init__.py,sha256=8uvIU1WpUfetvWA90PPvXtxnFNjMQF0umb8_FuK2cTA,779
|
|
95
|
+
abstractcore/utils/cli.py,sha256=tO7S-iVSZavxJaX7OTruNAmF3lJz9eCDORK8Dm7FdgA,70558
|
|
96
|
+
abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy_vDEKEUE7OiKY,6028
|
|
97
|
+
abstractcore/utils/self_fixes.py,sha256=1VYxPq-q7_DtNl39NbrzUmyHpkhb9Q2SdnXUj4c0DBc,5907
|
|
98
|
+
abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
|
|
99
|
+
abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
|
|
100
|
+
abstractcore/utils/trace_export.py,sha256=MD1DHDWltpewy62cYzz_OSPAA6edZbZq7_pZbvxz_H8,9279
|
|
101
|
+
abstractcore/utils/version.py,sha256=8FvB_bU--hAlMcCZyeDF2i2VlS9p4sYej4VBQOVtRR4,605
|
|
102
|
+
abstractcore/utils/vlm_token_calculator.py,sha256=VBmIji_oiqOQ13IvVhNkb8E246tYMIXWVVOnl86Ne94,27978
|
|
103
|
+
abstractcore-2.6.0.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
|
|
104
|
+
abstractcore-2.6.0.dist-info/METADATA,sha256=YuVAqs9CI7NP8wjIsa0W2sXLWpNLOC5JYj_VEqJL2N8,41304
|
|
105
|
+
abstractcore-2.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
106
|
+
abstractcore-2.6.0.dist-info/entry_points.txt,sha256=jXNdzeltVs23A2JM2e2HOiAHldHrsnud3EvPI5VffOs,658
|
|
107
|
+
abstractcore-2.6.0.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
|
|
108
|
+
abstractcore-2.6.0.dist-info/RECORD,,
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
abstractcore/__init__.py,sha256=A7Gbn_C-robdWLLQXjtTyWsoaXDGIblSFmLRV_ni6O8,1934
|
|
2
|
-
abstractcore/apps/__init__.py,sha256=sgNOv3lYyOWNBC-w6GnRN6aILGCbdkQtNcuQdJz5ghE,31
|
|
3
|
-
abstractcore/apps/__main__.py,sha256=fV9cGU99K4lGRsPNOLkh8qrDjH3JtMEWNlBiZrvI5Kk,1974
|
|
4
|
-
abstractcore/apps/app_config_utils.py,sha256=5GIvXnD996LFIV3-BpfkqII6UqYlStm7ZCgmqDEN8dc,890
|
|
5
|
-
abstractcore/apps/deepsearch.py,sha256=UlmuBS9T4yNsz0V_iY08GNNDTstsI5OJNNV6c8CU6AE,23191
|
|
6
|
-
abstractcore/apps/extractor.py,sha256=OfiqB9l_alH9xCGb6zOD__QJkDjdKOlLZngriVgmn7c,23749
|
|
7
|
-
abstractcore/apps/intent.py,sha256=5ie_H9_K_ZxlA0oCu7ROUrsgwfzDNFgVUyBNec6YVRE,22813
|
|
8
|
-
abstractcore/apps/judge.py,sha256=nOgxvn-BbhNY6xU9AlTeD1yidTh73AiVlSN7hQCVE2M,23169
|
|
9
|
-
abstractcore/apps/summarizer.py,sha256=9aD6KH21w-tv_wGp9MaO2uyJuaU71OemW7KpqrG5t6w,14669
|
|
10
|
-
abstractcore/architectures/__init__.py,sha256=-4JucAM7JkMWShWKkePoclxrUHRKgaG36UTguJihE0U,1046
|
|
11
|
-
abstractcore/architectures/detection.py,sha256=Cxap1pL6qOJjyY22Vc4hzbLALTuuBisPT5UaMotousk,10025
|
|
12
|
-
abstractcore/architectures/enums.py,sha256=9vIv2vDBEKhxwzwH9iaSAyf-iVj3p8y9loMeN_mYTJ8,3821
|
|
13
|
-
abstractcore/assets/architecture_formats.json,sha256=CIf6SaR_IJs1D7Uvd1K3zWngIXJ_yq3DM_IE3wnpCHY,16076
|
|
14
|
-
abstractcore/assets/model_capabilities.json,sha256=AJwF1tmaGGl4P-UTbKX6awsgw7W543UN2TuqhC3y_Ss,50236
|
|
15
|
-
abstractcore/assets/session_schema.json,sha256=hMCVrq3KSyVExrMGzuykf7bU-z6WyIVuEGU8du9_zUY,10570
|
|
16
|
-
abstractcore/config/__init__.py,sha256=4mHX5z5Sq8R8xh78tb9jjZLaz_oBNW1eh914OsdDTxs,318
|
|
17
|
-
abstractcore/config/main.py,sha256=U9zz-h9OvadqW9pBRRf999gVZKtBWsk27oPJtiJa8Qk,32646
|
|
18
|
-
abstractcore/config/manager.py,sha256=mo-cpT-jNfQmfTSe9LcalwE1WqjCyvNQexPIqNMS6sc,13098
|
|
19
|
-
abstractcore/config/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
|
|
20
|
-
abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
|
|
21
|
-
abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
|
|
22
|
-
abstractcore/core/factory.py,sha256=ec7WGW2JKK-dhDplziTAeRkebEUFymtEEZ_bS5qkpqY,2798
|
|
23
|
-
abstractcore/core/interface.py,sha256=-VAY0nlsTnWN_WghiuMC7iE7xUdZfYOg6KlgrAPi14Y,14086
|
|
24
|
-
abstractcore/core/retry.py,sha256=wNlUAxfmvdO_uVWb4iqkhTqd7O1oRwXxqvVQaLXQOw0,14538
|
|
25
|
-
abstractcore/core/session.py,sha256=thqG8zWICKpPeCJi5IoKbMhBDOH4RJlTfUjymP14TFY,38249
|
|
26
|
-
abstractcore/core/types.py,sha256=jj44i07kMjdg9FQ3mA_fK6r_M0Lcgt1RQpy1Ra5w-eI,4578
|
|
27
|
-
abstractcore/embeddings/__init__.py,sha256=hR3xZyqcRm4c2pq1dIa5lxj_-Bk70Zad802JQN4joWo,637
|
|
28
|
-
abstractcore/embeddings/manager.py,sha256=uFVbRPHx_R-kVMVA7N7_7EzeUmCJCeN9Dv0EV8Jko24,52245
|
|
29
|
-
abstractcore/embeddings/models.py,sha256=bsPAzL6gv57AVii8O15PT0kxfwRkOml3f3njJN4UDi4,4874
|
|
30
|
-
abstractcore/events/__init__.py,sha256=UtbdTOeL05kvi7YP91yo4OEqs5UAbKylBvOOEkrUL5E,11065
|
|
31
|
-
abstractcore/exceptions/__init__.py,sha256=h6y3sdZR6uFMh0iq7z85DfJi01zGQvjVOm1W7l86iVQ,3224
|
|
32
|
-
abstractcore/media/__init__.py,sha256=94k22PRXInaXFlxU7p06IRbyjmOkSlCITDm0gb8d9AI,3202
|
|
33
|
-
abstractcore/media/auto_handler.py,sha256=R3EhifSlGSJ_2oftQ7BdD7nQBMGePHOubuXkqHmcHHQ,13478
|
|
34
|
-
abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
|
|
35
|
-
abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
|
|
36
|
-
abstractcore/media/types.py,sha256=jG-g_2_gzl8eOgEalk9x3Ikhni9GoGfoRjkZWaBhV30,10165
|
|
37
|
-
abstractcore/media/vision_fallback.py,sha256=yojFTwKqiE0wfQGYphpXUcANpC0Q80s-qlt7gmQGfZg,11282
|
|
38
|
-
abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
|
|
39
|
-
abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
|
|
40
|
-
abstractcore/media/handlers/local_handler.py,sha256=xfMV2Ztre3eUkDno4aSGob96oWUlgicZ3VChs-txjXU,23033
|
|
41
|
-
abstractcore/media/handlers/openai_handler.py,sha256=o0H_WQ_NQt133my55xYQmq6_QFGafghF8sPTrqr1f0Q,9726
|
|
42
|
-
abstractcore/media/processors/__init__.py,sha256=tExCZwVhD9Qzn3D99-zQcU-T1324YtiLkWjIfWLC708,442
|
|
43
|
-
abstractcore/media/processors/image_processor.py,sha256=wj-f1W71ZCs4AZdmyTKZvnMee83GkiXKuZ6QvJwd3Lo,22577
|
|
44
|
-
abstractcore/media/processors/office_processor.py,sha256=MqhLDWNtjHEpiMgpFaf7tbj8iDcTCf_zelWrHZkr7Z4,18580
|
|
45
|
-
abstractcore/media/processors/pdf_processor.py,sha256=qniYt7cTYYPVRi_cS1IsXztOldeY0bqdn7sdbELBU9k,17157
|
|
46
|
-
abstractcore/media/processors/text_processor.py,sha256=E28FtT2_jzsvMIDwZi6aVWuu_pSyAPSBa96fe4YYcU8,21092
|
|
47
|
-
abstractcore/media/utils/__init__.py,sha256=30-CTif91iRKOXJ4njGiduWAt-xp31U7NafMBNvgdO0,460
|
|
48
|
-
abstractcore/media/utils/image_scaler.py,sha256=QrYqoNQc8tzGu7I9Sf_E-Iv7ei2oLh714AGiX3yACNM,11338
|
|
49
|
-
abstractcore/processing/__init__.py,sha256=QcACEnhnHKYCkFL1LNOW_uqBrwkTAmz5A61N4K2dyu0,988
|
|
50
|
-
abstractcore/processing/basic_deepsearch.py,sha256=dzJQtH4k44XY9tvG0Z4JIlYt_s7HpbLdSPScha-t7vk,101036
|
|
51
|
-
abstractcore/processing/basic_extractor.py,sha256=3x-3BdIHgLvqLnLF6K1-P4qVaLIpAnNIIutaJi7lDQM,49832
|
|
52
|
-
abstractcore/processing/basic_intent.py,sha256=wD99Z7fE2RiYk6oyTZXojUbv-bz8HhKFIuIHYLLTw54,32455
|
|
53
|
-
abstractcore/processing/basic_judge.py,sha256=tKWJrg_tY4vCHzWgXxz0ZjgLXBYYfpMcpG7vl03hJcM,32218
|
|
54
|
-
abstractcore/processing/basic_summarizer.py,sha256=XHNxMQ_8aLStTeUo6_2JaThlct12Htpz7ORmm0iuJsg,25495
|
|
55
|
-
abstractcore/providers/__init__.py,sha256=n-2RMNm3QpKxHw9EOjv8icRMRnfJp5Xg0uSVzHCW3BI,1222
|
|
56
|
-
abstractcore/providers/anthropic_provider.py,sha256=wXzRgW1AJCRX5dovXHVRTNxL96vycr7Ug9omKnLjPzo,21588
|
|
57
|
-
abstractcore/providers/base.py,sha256=gWlkchUZBXgcJAKNV8U1hROUGGw8MdDIuLHQM2LRx8Y,51530
|
|
58
|
-
abstractcore/providers/huggingface_provider.py,sha256=mTjpdZlC49QCMqsDHEabTnQbX21z7MNV77Dv9hs_RiM,53696
|
|
59
|
-
abstractcore/providers/lmstudio_provider.py,sha256=jzNMngjRtpw4lgdF66i5h22QIPWXvritezcJndetu7A,21632
|
|
60
|
-
abstractcore/providers/mlx_provider.py,sha256=1gI1KXJdKcgjiaivk7LpuBScpYgsVJ9YEikm-gCChoo,22156
|
|
61
|
-
abstractcore/providers/ollama_provider.py,sha256=VfPn6y87Jjih1MhFsHhijtv1AhbefhwSh4_Z2eAKc4o,21975
|
|
62
|
-
abstractcore/providers/openai_provider.py,sha256=kV1YXjzKyqJMQhmn9kG7AwQ-ssu8PipFwXdmmuosR98,23346
|
|
63
|
-
abstractcore/providers/registry.py,sha256=oqEaKjF2nuPiw9W0u6DM7TJgm4P2i94aKZRb8Ma6PqM,16002
|
|
64
|
-
abstractcore/providers/streaming.py,sha256=VnffBV_CU9SAKzghL154OoFyEdDsiLwUNXPahyU41Bw,31342
|
|
65
|
-
abstractcore/server/__init__.py,sha256=1DSAz_YhQtnKv7sNi5TMQV8GFujctDOabgvAdilQE0o,249
|
|
66
|
-
abstractcore/server/app.py,sha256=7pG5ZkZqYNnyby4jyvp3_NKl5nNDmZpOhv_-F8Jruy4,96580
|
|
67
|
-
abstractcore/structured/__init__.py,sha256=VXRQHGcm-iaYnLOBPin2kyhvhhQA0kaGt_pcNDGsE_8,339
|
|
68
|
-
abstractcore/structured/handler.py,sha256=hcUe_fZcwx0O3msLqFiOsj6-jbq3S-ZQa9c1nRIZvuo,24622
|
|
69
|
-
abstractcore/structured/retry.py,sha256=BN_PvrWybyU1clMy2cult1-TVxFSMaVqiCPmmXvA5aI,3805
|
|
70
|
-
abstractcore/tools/__init__.py,sha256=oh6vG0RdM1lqUtOp95mLrTsWLh9VmhJf5_FVjGIP5_M,2259
|
|
71
|
-
abstractcore/tools/common_tools.py,sha256=sfCuwZX3mG229yZRAgaLlDrVpGCVfdH_Uq5tZUVw6n8,95122
|
|
72
|
-
abstractcore/tools/core.py,sha256=lUUGihyceiRYlKUFvEMig9jWFF563d574mSDbYYD3fM,4777
|
|
73
|
-
abstractcore/tools/handler.py,sha256=GmDenXAJkhceWSGlhvuF90aMb2301tRTh6WxGwBQifc,12022
|
|
74
|
-
abstractcore/tools/parser.py,sha256=1r5nmEEp1Rid3JU6ct-s3lP-eCln67fvXG5HCjqiRew,27740
|
|
75
|
-
abstractcore/tools/registry.py,sha256=cN3nbPEK6L2vAd9740MIFf2fitW_4WHpQfK4KvQjnT0,9059
|
|
76
|
-
abstractcore/tools/syntax_rewriter.py,sha256=c3NSTvUF3S3ho5Cwjp7GJJdibeYAI6k3iaBwhKcpTfo,17318
|
|
77
|
-
abstractcore/tools/tag_rewriter.py,sha256=UGFMBj2QKwm12j8JQ6oc2C_N3ZeNqz9Enz4VkEIrS0c,20338
|
|
78
|
-
abstractcore/utils/__init__.py,sha256=29mMc3jV_suEPBn7W8Yw_wqcdvFP-083ws5AUFJVM28,676
|
|
79
|
-
abstractcore/utils/cli.py,sha256=tO7S-iVSZavxJaX7OTruNAmF3lJz9eCDORK8Dm7FdgA,70558
|
|
80
|
-
abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy_vDEKEUE7OiKY,6028
|
|
81
|
-
abstractcore/utils/self_fixes.py,sha256=QEDwNTW80iQM4ftfEY3Ghz69F018oKwLM9yeRCYZOvw,5886
|
|
82
|
-
abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
|
|
83
|
-
abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
|
|
84
|
-
abstractcore/utils/version.py,sha256=GC9cH32Kxl_Gm71B9JyHaV8605RVj_YHzLdOS6AjFM0,605
|
|
85
|
-
abstractcore-2.5.2.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
|
|
86
|
-
abstractcore-2.5.2.dist-info/METADATA,sha256=VeTcJ285fQCo75pDmpjGmnllxlWHH6JvyfSYeN_o8Y4,32893
|
|
87
|
-
abstractcore-2.5.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
88
|
-
abstractcore-2.5.2.dist-info/entry_points.txt,sha256=jXNdzeltVs23A2JM2e2HOiAHldHrsnud3EvPI5VffOs,658
|
|
89
|
-
abstractcore-2.5.2.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
|
|
90
|
-
abstractcore-2.5.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|