abstractcore 2.5.0__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/apps/__main__.py +8 -1
- abstractcore/apps/deepsearch.py +644 -0
- abstractcore/apps/intent.py +614 -0
- abstractcore/architectures/detection.py +250 -4
- abstractcore/assets/architecture_formats.json +14 -1
- abstractcore/assets/model_capabilities.json +583 -44
- 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 +66 -1
- abstractcore/config/manager.py +111 -5
- abstractcore/core/session.py +105 -5
- 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/processing/__init__.py +5 -1
- abstractcore/processing/basic_deepsearch.py +2173 -0
- abstractcore/processing/basic_intent.py +690 -0
- abstractcore/providers/__init__.py +18 -0
- abstractcore/providers/anthropic_provider.py +29 -2
- abstractcore/providers/base.py +279 -6
- abstractcore/providers/huggingface_provider.py +658 -27
- abstractcore/providers/lmstudio_provider.py +52 -2
- abstractcore/providers/mlx_provider.py +103 -4
- abstractcore/providers/model_capabilities.py +352 -0
- abstractcore/providers/ollama_provider.py +44 -6
- abstractcore/providers/openai_provider.py +29 -2
- abstractcore/providers/registry.py +91 -19
- abstractcore/server/app.py +91 -81
- abstractcore/structured/handler.py +161 -1
- abstractcore/tools/common_tools.py +98 -3
- abstractcore/utils/__init__.py +4 -1
- abstractcore/utils/cli.py +114 -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.0.dist-info → abstractcore-2.5.3.dist-info}/METADATA +140 -23
- abstractcore-2.5.3.dist-info/RECORD +107 -0
- {abstractcore-2.5.0.dist-info → abstractcore-2.5.3.dist-info}/entry_points.txt +4 -0
- abstractcore-2.5.0.dist-info/RECORD +0 -86
- {abstractcore-2.5.0.dist-info → abstractcore-2.5.3.dist-info}/WHEEL +0 -0
- {abstractcore-2.5.0.dist-info → abstractcore-2.5.3.dist-info}/licenses/LICENSE +0 -0
- {abstractcore-2.5.0.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,14 +37,18 @@ 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"
|
|
45
|
+
Requires-Dist: outlines>=0.1.0; extra == "huggingface"
|
|
43
46
|
Provides-Extra: mlx
|
|
44
47
|
Requires-Dist: mlx<1.0.0,>=0.15.0; extra == "mlx"
|
|
45
48
|
Requires-Dist: mlx-lm<1.0.0,>=0.15.0; extra == "mlx"
|
|
49
|
+
Requires-Dist: outlines>=0.1.0; extra == "mlx"
|
|
46
50
|
Provides-Extra: embeddings
|
|
47
|
-
Requires-Dist: sentence-transformers<
|
|
51
|
+
Requires-Dist: sentence-transformers<6.0.0,>=5.1.0; extra == "embeddings"
|
|
48
52
|
Requires-Dist: numpy<2.0.0,>=1.20.0; extra == "embeddings"
|
|
49
53
|
Provides-Extra: processing
|
|
50
54
|
Provides-Extra: tools
|
|
@@ -57,6 +61,8 @@ Requires-Dist: Pillow<12.0.0,>=10.0.0; extra == "media"
|
|
|
57
61
|
Requires-Dist: pymupdf4llm<1.0.0,>=0.0.20; extra == "media"
|
|
58
62
|
Requires-Dist: unstructured[office]<1.0.0,>=0.10.0; extra == "media"
|
|
59
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"
|
|
60
66
|
Provides-Extra: api-providers
|
|
61
67
|
Requires-Dist: abstractcore[anthropic,openai]; extra == "api-providers"
|
|
62
68
|
Provides-Extra: local-providers
|
|
@@ -66,9 +72,9 @@ Requires-Dist: abstractcore[huggingface]; extra == "heavy-providers"
|
|
|
66
72
|
Provides-Extra: all-providers
|
|
67
73
|
Requires-Dist: abstractcore[anthropic,embeddings,huggingface,lmstudio,mlx,ollama,openai]; extra == "all-providers"
|
|
68
74
|
Provides-Extra: all
|
|
69
|
-
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"
|
|
70
76
|
Provides-Extra: lightweight
|
|
71
|
-
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"
|
|
72
78
|
Provides-Extra: dev
|
|
73
79
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
74
80
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
@@ -256,9 +262,58 @@ loaded_session = BasicSession.load('conversation.json', provider=llm)
|
|
|
256
262
|
|
|
257
263
|
[Learn more about Session](docs/session.md)
|
|
258
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
|
+
|
|
259
314
|
### Media Handling
|
|
260
315
|
|
|
261
|
-
AbstractCore provides
|
|
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.
|
|
262
317
|
|
|
263
318
|
```python
|
|
264
319
|
from abstractcore import create_llm
|
|
@@ -296,7 +351,7 @@ response = llm.generate(
|
|
|
296
351
|
- **Smart Resolution**: Automatically uses maximum resolution supported by each model
|
|
297
352
|
- **Format Support**: PNG, JPEG, GIF, WEBP, BMP, TIFF images; PDF, TXT, MD, CSV, TSV, JSON documents
|
|
298
353
|
- **Office Documents**: DOCX, XLSX, PPT (with `pip install abstractcore[all]`)
|
|
299
|
-
- **Vision Optimization**: Model-specific image processing for
|
|
354
|
+
- **Vision Optimization**: Model-specific image processing for vision results
|
|
300
355
|
|
|
301
356
|
**Provider compatibility:**
|
|
302
357
|
- **High-resolution vision**: GPT-4o (up to 4096x4096), Claude 3.5 Sonnet (up to 1568x1568)
|
|
@@ -305,16 +360,63 @@ response = llm.generate(
|
|
|
305
360
|
|
|
306
361
|
[Learn more about Media Handling](docs/media-handling-system.md)
|
|
307
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
|
+
|
|
308
407
|
## Key Features
|
|
309
408
|
|
|
409
|
+
- **Offline-First Design**: Built primarily for open source LLMs with full offline capability. Download once, run forever without internet access
|
|
310
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
|
|
311
413
|
- **Centralized Configuration**: Global defaults and app-specific preferences at `~/.abstractcore/config/abstractcore.json`
|
|
312
414
|
- **Intelligent Media Handling**: Upload images, PDFs, and documents with automatic maximum resolution optimization
|
|
313
|
-
- **Vision Model Support**: Smart image processing at each model's maximum capability
|
|
314
|
-
- **Document Processing**:
|
|
415
|
+
- **Vision Model Support**: Smart image processing at each model's maximum capability
|
|
416
|
+
- **Document Processing**: PDF extraction (PyMuPDF4LLM), Office documents (DOCX/XLSX/PPT), CSV/TSV analysis
|
|
315
417
|
- **Unified Tools**: Consistent tool calling across all providers
|
|
316
418
|
- **Session Management**: Persistent conversations with metadata, analytics, and complete serialization
|
|
317
|
-
- **Structured
|
|
419
|
+
- **Native Structured Output**: Server-side schema enforcement for Ollama and LMStudio (OpenAI and Anthropic also supported)
|
|
318
420
|
- **Streaming Support**: Real-time token generation for interactive experiences
|
|
319
421
|
- **Consistent Token Terminology**: Unified `input_tokens`, `output_tokens`, `total_tokens` across all providers
|
|
320
422
|
- **Embeddings**: Built-in support for semantic search and RAG applications
|
|
@@ -324,12 +426,12 @@ response = llm.generate(
|
|
|
324
426
|
|
|
325
427
|
| Provider | Status | SEED Support | Setup |
|
|
326
428
|
|----------|--------|-------------|-------|
|
|
327
|
-
| **OpenAI** | Full |
|
|
328
|
-
| **Anthropic** | Full |
|
|
329
|
-
| **Ollama** | Full |
|
|
330
|
-
| **LMStudio** | Full |
|
|
331
|
-
| **MLX** | Full |
|
|
332
|
-
| **HuggingFace** | Full |
|
|
429
|
+
| **OpenAI** | Full | Native | [Get API key](docs/prerequisites.md#openai-setup) |
|
|
430
|
+
| **Anthropic** | Full | Warning* | [Get API key](docs/prerequisites.md#anthropic-setup) |
|
|
431
|
+
| **Ollama** | Full | Native | [Install guide](docs/prerequisites.md#ollama-setup) |
|
|
432
|
+
| **LMStudio** | Full | Native | [Install guide](docs/prerequisites.md#lmstudio-setup) |
|
|
433
|
+
| **MLX** | Full | Native | [Setup guide](docs/prerequisites.md#mlx-setup) |
|
|
434
|
+
| **HuggingFace** | Full | Native | [Setup guide](docs/prerequisites.md#huggingface-setup) |
|
|
333
435
|
|
|
334
436
|
*Anthropic doesn't support seed parameters but issues a warning when provided. Use `temperature=0.0` for more consistent outputs.
|
|
335
437
|
|
|
@@ -374,7 +476,7 @@ response = client.chat.completions.create(
|
|
|
374
476
|
- Building web applications that need HTTP API
|
|
375
477
|
- Multi-language access (not just Python)
|
|
376
478
|
|
|
377
|
-
##
|
|
479
|
+
## AbstractCore CLI (Optional Interactive Testing Tool)
|
|
378
480
|
|
|
379
481
|
AbstractCore includes a **built-in CLI** for interactive testing, development, and conversation management. This is an internal testing tool, distinct from external agentic CLIs.
|
|
380
482
|
|
|
@@ -394,6 +496,7 @@ python -m abstractcore.utils.cli --provider anthropic --model claude-3-5-haiku-l
|
|
|
394
496
|
- Chat history compaction and management
|
|
395
497
|
- Fact extraction from conversations
|
|
396
498
|
- Conversation quality evaluation (LLM-as-a-judge)
|
|
499
|
+
- Intent analysis and deception detection
|
|
397
500
|
- Tool call testing and debugging
|
|
398
501
|
- System prompt management
|
|
399
502
|
- Multiple provider support
|
|
@@ -402,12 +505,13 @@ python -m abstractcore.utils.cli --provider anthropic --model claude-3-5-haiku-l
|
|
|
402
505
|
- `/compact` - Compress chat history while preserving context
|
|
403
506
|
- `/facts [file]` - Extract structured facts from conversation
|
|
404
507
|
- `/judge` - Evaluate conversation quality with feedback
|
|
508
|
+
- `/intent [participant]` - Analyze psychological intents and detect deception
|
|
405
509
|
- `/history [n]` - View conversation history
|
|
406
510
|
- `/stream` - Toggle real-time streaming
|
|
407
511
|
- `/system [prompt]` - Show or change system prompt
|
|
408
512
|
- `/status` - Show current provider, model, and capabilities
|
|
409
513
|
|
|
410
|
-
**Full Documentation:** [
|
|
514
|
+
**Full Documentation:** [AbstractCore CLI Guide](docs/acore-cli.md)
|
|
411
515
|
|
|
412
516
|
**When to use the CLI:**
|
|
413
517
|
- Interactive development and testing
|
|
@@ -418,7 +522,7 @@ python -m abstractcore.utils.cli --provider anthropic --model claude-3-5-haiku-l
|
|
|
418
522
|
|
|
419
523
|
## Built-in Applications (Ready-to-Use CLI Tools)
|
|
420
524
|
|
|
421
|
-
AbstractCore includes **
|
|
525
|
+
AbstractCore includes **four 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.
|
|
422
526
|
|
|
423
527
|
### Available Applications
|
|
424
528
|
|
|
@@ -427,6 +531,7 @@ AbstractCore includes **three specialized command-line applications** for common
|
|
|
427
531
|
| **Summarizer** | Document summarization | `summarizer` |
|
|
428
532
|
| **Extractor** | Entity and relationship extraction | `extractor` |
|
|
429
533
|
| **Judge** | Text evaluation and scoring | `judge` |
|
|
534
|
+
| **Intent Analyzer** | Psychological intent analysis & deception detection | `intent` |
|
|
430
535
|
|
|
431
536
|
### Quick Usage Examples
|
|
432
537
|
|
|
@@ -445,6 +550,11 @@ extractor doc.txt --iterate 3 --mode thorough --verbose
|
|
|
445
550
|
judge essay.txt --criteria clarity,accuracy,coherence --context "academic writing"
|
|
446
551
|
judge code.py --context "code review" --format plain --verbose
|
|
447
552
|
judge proposal.md --custom-criteria has_examples,covers_risks --output assessment.json
|
|
553
|
+
|
|
554
|
+
# Intent analysis with psychological insights and deception detection
|
|
555
|
+
intent conversation.txt --focus-participant user --depth comprehensive
|
|
556
|
+
intent email.txt --format plain --context document --verbose
|
|
557
|
+
intent chat_log.json --conversation-mode --provider lmstudio --model qwen/qwen3-30b-a3b-2507
|
|
448
558
|
```
|
|
449
559
|
|
|
450
560
|
### Installation & Setup
|
|
@@ -459,6 +569,7 @@ pip install abstractcore[all]
|
|
|
459
569
|
summarizer --help
|
|
460
570
|
extractor --help
|
|
461
571
|
judge --help
|
|
572
|
+
intent --help
|
|
462
573
|
```
|
|
463
574
|
|
|
464
575
|
### Alternative Usage Methods
|
|
@@ -468,11 +579,13 @@ judge --help
|
|
|
468
579
|
summarizer document.txt
|
|
469
580
|
extractor report.pdf
|
|
470
581
|
judge essay.md
|
|
582
|
+
intent conversation.txt
|
|
471
583
|
|
|
472
584
|
# Method 2: Via Python module
|
|
473
585
|
python -m abstractcore.apps summarizer document.txt
|
|
474
586
|
python -m abstractcore.apps extractor report.pdf
|
|
475
587
|
python -m abstractcore.apps judge essay.md
|
|
588
|
+
python -m abstractcore.apps intent conversation.txt
|
|
476
589
|
```
|
|
477
590
|
|
|
478
591
|
### Key Parameters
|
|
@@ -514,10 +627,11 @@ python -m abstractcore.apps judge essay.md
|
|
|
514
627
|
|
|
515
628
|
### Full Documentation
|
|
516
629
|
|
|
517
|
-
Each application has
|
|
630
|
+
Each application has documentation with examples and usage information:
|
|
518
631
|
|
|
519
632
|
- **[Summarizer Guide](docs/apps/basic-summarizer.md)** - Document summarization with multiple strategies
|
|
520
633
|
- **[Extractor Guide](docs/apps/basic-extractor.md)** - Entity and relationship extraction
|
|
634
|
+
- **[Intent Analyzer Guide](docs/apps/basic-intent.md)** - Psychological intent analysis and deception detection
|
|
521
635
|
- **[Judge Guide](docs/apps/basic-judge.md)** - Text evaluation and scoring systems
|
|
522
636
|
|
|
523
637
|
**When to use the apps:**
|
|
@@ -666,7 +780,7 @@ llm = create_llm("anthropic", model="claude-3.5-sonnet")
|
|
|
666
780
|
response = llm.generate(analysis_prompt, media=documents)
|
|
667
781
|
|
|
668
782
|
# Automatic format handling:
|
|
669
|
-
# - PDF:
|
|
783
|
+
# - PDF: Text extraction with PyMuPDF4LLM
|
|
670
784
|
# - Excel: Table parsing with pandas
|
|
671
785
|
# - PowerPoint: Slide content extraction with unstructured
|
|
672
786
|
```
|
|
@@ -719,6 +833,8 @@ review = llm.generate(
|
|
|
719
833
|
print(f"{review.title}: {review.rating}/5")
|
|
720
834
|
```
|
|
721
835
|
|
|
836
|
+
[Learn more about Structured Output](docs/structured-output.md)
|
|
837
|
+
|
|
722
838
|
### 7. Universal API Server
|
|
723
839
|
|
|
724
840
|
```bash
|
|
@@ -736,6 +852,7 @@ curl -X POST http://localhost:8000/v1/chat/completions \
|
|
|
736
852
|
|
|
737
853
|
## Why AbstractCore?
|
|
738
854
|
|
|
855
|
+
- **Offline-First Philosophy**: Designed for open source LLMs with complete offline operation. No internet required after initial model download
|
|
739
856
|
- **Unified Interface**: One API for all LLM providers
|
|
740
857
|
- **Multimodal Support**: Upload images, PDFs, and documents across all providers
|
|
741
858
|
- **Vision Models**: Seamless integration with GPT-4o, Claude Vision, qwen3-vl, and more
|
|
@@ -774,7 +891,7 @@ pip install abstractcore[all]
|
|
|
774
891
|
|
|
775
892
|
**Media processing extras:**
|
|
776
893
|
```bash
|
|
777
|
-
# For
|
|
894
|
+
# For PDF processing
|
|
778
895
|
pip install pymupdf4llm
|
|
779
896
|
|
|
780
897
|
# For Office documents (DOCX, XLSX, PPT)
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
abstractcore/__init__.py,sha256=G3x3N515eDSDnFd8xFfR6xO875j-Wppyab7yd8_pgE8,2296
|
|
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=kCgm0CjI1Ood0Lv36zGAlwv4AKy4ypsmzwFhEWxIXKM,19785
|
|
12
|
+
abstractcore/architectures/enums.py,sha256=9vIv2vDBEKhxwzwH9iaSAyf-iVj3p8y9loMeN_mYTJ8,3821
|
|
13
|
+
abstractcore/assets/architecture_formats.json,sha256=Yf-W1UuadrL8qid0pfU_pEBOkjwH4lvx7Nzu83GACp8,16622
|
|
14
|
+
abstractcore/assets/model_capabilities.json,sha256=tmfQNNPTNJAauF51nPYkMqcjc17F2geeYngh0HjEUZ0,68836
|
|
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
|
|
28
|
+
abstractcore/config/__init__.py,sha256=4mHX5z5Sq8R8xh78tb9jjZLaz_oBNW1eh914OsdDTxs,318
|
|
29
|
+
abstractcore/config/main.py,sha256=oQxnNxo_78CusCuDKGgwal2T3S8MDpo3yzLSB1wpYkU,35573
|
|
30
|
+
abstractcore/config/manager.py,sha256=JTN_qoNqRGKQoPH66nVGn3PIjgt-eSgsG9BndYIC8Dg,16752
|
|
31
|
+
abstractcore/config/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
|
|
32
|
+
abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
|
|
33
|
+
abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
|
|
34
|
+
abstractcore/core/factory.py,sha256=ec7WGW2JKK-dhDplziTAeRkebEUFymtEEZ_bS5qkpqY,2798
|
|
35
|
+
abstractcore/core/interface.py,sha256=-VAY0nlsTnWN_WghiuMC7iE7xUdZfYOg6KlgrAPi14Y,14086
|
|
36
|
+
abstractcore/core/retry.py,sha256=wNlUAxfmvdO_uVWb4iqkhTqd7O1oRwXxqvVQaLXQOw0,14538
|
|
37
|
+
abstractcore/core/session.py,sha256=WNVZYTX-xrY-7XUGLd3jpfhWcMrMRa4rlnyRixFJIJQ,40770
|
|
38
|
+
abstractcore/core/types.py,sha256=jj44i07kMjdg9FQ3mA_fK6r_M0Lcgt1RQpy1Ra5w-eI,4578
|
|
39
|
+
abstractcore/embeddings/__init__.py,sha256=hR3xZyqcRm4c2pq1dIa5lxj_-Bk70Zad802JQN4joWo,637
|
|
40
|
+
abstractcore/embeddings/manager.py,sha256=uFVbRPHx_R-kVMVA7N7_7EzeUmCJCeN9Dv0EV8Jko24,52245
|
|
41
|
+
abstractcore/embeddings/models.py,sha256=bsPAzL6gv57AVii8O15PT0kxfwRkOml3f3njJN4UDi4,4874
|
|
42
|
+
abstractcore/events/__init__.py,sha256=OQJP7qOMWLg_tZyM62eZZ6uUpiHNevAWVdkK7W5slr0,11088
|
|
43
|
+
abstractcore/exceptions/__init__.py,sha256=h6y3sdZR6uFMh0iq7z85DfJi01zGQvjVOm1W7l86iVQ,3224
|
|
44
|
+
abstractcore/media/__init__.py,sha256=94k22PRXInaXFlxU7p06IRbyjmOkSlCITDm0gb8d9AI,3202
|
|
45
|
+
abstractcore/media/auto_handler.py,sha256=eo5a-hn_geLPsBe1oLKvd2YTxS8NRMms1uosmUyu3-s,26500
|
|
46
|
+
abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
|
|
47
|
+
abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
|
|
48
|
+
abstractcore/media/types.py,sha256=fofcQXSb-_PQwAHoSVObPhPdVUkwxOJec1ssv-731Ho,16158
|
|
49
|
+
abstractcore/media/vision_fallback.py,sha256=yojFTwKqiE0wfQGYphpXUcANpC0Q80s-qlt7gmQGfZg,11282
|
|
50
|
+
abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
|
|
51
|
+
abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
|
|
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
|
|
58
|
+
abstractcore/media/processors/office_processor.py,sha256=MqhLDWNtjHEpiMgpFaf7tbj8iDcTCf_zelWrHZkr7Z4,18580
|
|
59
|
+
abstractcore/media/processors/pdf_processor.py,sha256=qniYt7cTYYPVRi_cS1IsXztOldeY0bqdn7sdbELBU9k,17157
|
|
60
|
+
abstractcore/media/processors/text_processor.py,sha256=D84QWxxIou4MeNhERmCTxi_p27CgicVFhMXJiujZgIE,21905
|
|
61
|
+
abstractcore/media/utils/__init__.py,sha256=30-CTif91iRKOXJ4njGiduWAt-xp31U7NafMBNvgdO0,460
|
|
62
|
+
abstractcore/media/utils/image_scaler.py,sha256=QrYqoNQc8tzGu7I9Sf_E-Iv7ei2oLh714AGiX3yACNM,11338
|
|
63
|
+
abstractcore/processing/__init__.py,sha256=QcACEnhnHKYCkFL1LNOW_uqBrwkTAmz5A61N4K2dyu0,988
|
|
64
|
+
abstractcore/processing/basic_deepsearch.py,sha256=dzJQtH4k44XY9tvG0Z4JIlYt_s7HpbLdSPScha-t7vk,101036
|
|
65
|
+
abstractcore/processing/basic_extractor.py,sha256=3x-3BdIHgLvqLnLF6K1-P4qVaLIpAnNIIutaJi7lDQM,49832
|
|
66
|
+
abstractcore/processing/basic_intent.py,sha256=wD99Z7fE2RiYk6oyTZXojUbv-bz8HhKFIuIHYLLTw54,32455
|
|
67
|
+
abstractcore/processing/basic_judge.py,sha256=tKWJrg_tY4vCHzWgXxz0ZjgLXBYYfpMcpG7vl03hJcM,32218
|
|
68
|
+
abstractcore/processing/basic_summarizer.py,sha256=XHNxMQ_8aLStTeUo6_2JaThlct12Htpz7ORmm0iuJsg,25495
|
|
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
|
|
79
|
+
abstractcore/providers/streaming.py,sha256=VnffBV_CU9SAKzghL154OoFyEdDsiLwUNXPahyU41Bw,31342
|
|
80
|
+
abstractcore/server/__init__.py,sha256=1DSAz_YhQtnKv7sNi5TMQV8GFujctDOabgvAdilQE0o,249
|
|
81
|
+
abstractcore/server/app.py,sha256=ajG4yfMOHjqBafquLHeLTaMmEr01RXiBRxjFRTIT2j8,96602
|
|
82
|
+
abstractcore/structured/__init__.py,sha256=VXRQHGcm-iaYnLOBPin2kyhvhhQA0kaGt_pcNDGsE_8,339
|
|
83
|
+
abstractcore/structured/handler.py,sha256=hcUe_fZcwx0O3msLqFiOsj6-jbq3S-ZQa9c1nRIZvuo,24622
|
|
84
|
+
abstractcore/structured/retry.py,sha256=BN_PvrWybyU1clMy2cult1-TVxFSMaVqiCPmmXvA5aI,3805
|
|
85
|
+
abstractcore/tools/__init__.py,sha256=oh6vG0RdM1lqUtOp95mLrTsWLh9VmhJf5_FVjGIP5_M,2259
|
|
86
|
+
abstractcore/tools/common_tools.py,sha256=sfCuwZX3mG229yZRAgaLlDrVpGCVfdH_Uq5tZUVw6n8,95122
|
|
87
|
+
abstractcore/tools/core.py,sha256=lUUGihyceiRYlKUFvEMig9jWFF563d574mSDbYYD3fM,4777
|
|
88
|
+
abstractcore/tools/handler.py,sha256=GmDenXAJkhceWSGlhvuF90aMb2301tRTh6WxGwBQifc,12022
|
|
89
|
+
abstractcore/tools/parser.py,sha256=1r5nmEEp1Rid3JU6ct-s3lP-eCln67fvXG5HCjqiRew,27740
|
|
90
|
+
abstractcore/tools/registry.py,sha256=cN3nbPEK6L2vAd9740MIFf2fitW_4WHpQfK4KvQjnT0,9059
|
|
91
|
+
abstractcore/tools/syntax_rewriter.py,sha256=c3NSTvUF3S3ho5Cwjp7GJJdibeYAI6k3iaBwhKcpTfo,17318
|
|
92
|
+
abstractcore/tools/tag_rewriter.py,sha256=UGFMBj2QKwm12j8JQ6oc2C_N3ZeNqz9Enz4VkEIrS0c,20338
|
|
93
|
+
abstractcore/utils/__init__.py,sha256=8uvIU1WpUfetvWA90PPvXtxnFNjMQF0umb8_FuK2cTA,779
|
|
94
|
+
abstractcore/utils/cli.py,sha256=tO7S-iVSZavxJaX7OTruNAmF3lJz9eCDORK8Dm7FdgA,70558
|
|
95
|
+
abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy_vDEKEUE7OiKY,6028
|
|
96
|
+
abstractcore/utils/self_fixes.py,sha256=QEDwNTW80iQM4ftfEY3Ghz69F018oKwLM9yeRCYZOvw,5886
|
|
97
|
+
abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
|
|
98
|
+
abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
|
|
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,,
|
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
abstractcore = abstractcore.config.main:main
|
|
3
3
|
abstractcore-chat = abstractcore.utils.cli:main
|
|
4
4
|
abstractcore-config = abstractcore.config.main:main
|
|
5
|
+
abstractcore-deepsearch = abstractcore.apps.deepsearch:main
|
|
5
6
|
abstractcore-extractor = abstractcore.apps.extractor:main
|
|
7
|
+
abstractcore-intent = abstractcore.apps.intent:main
|
|
6
8
|
abstractcore-judge = abstractcore.apps.judge:main
|
|
7
9
|
abstractcore-summarizer = abstractcore.apps.summarizer:main
|
|
10
|
+
deepsearch = abstractcore.apps.deepsearch:main
|
|
8
11
|
extractor = abstractcore.apps.extractor:main
|
|
12
|
+
intent = abstractcore.apps.intent:main
|
|
9
13
|
judge = abstractcore.apps.judge:main
|
|
10
14
|
summarizer = abstractcore.apps.summarizer:main
|
|
@@ -1,86 +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=041daYkoIE1VLEO19IZC5nNIDOQZWNgpB7ogJ3SOlsE,1585
|
|
4
|
-
abstractcore/apps/app_config_utils.py,sha256=5GIvXnD996LFIV3-BpfkqII6UqYlStm7ZCgmqDEN8dc,890
|
|
5
|
-
abstractcore/apps/extractor.py,sha256=OfiqB9l_alH9xCGb6zOD__QJkDjdKOlLZngriVgmn7c,23749
|
|
6
|
-
abstractcore/apps/judge.py,sha256=nOgxvn-BbhNY6xU9AlTeD1yidTh73AiVlSN7hQCVE2M,23169
|
|
7
|
-
abstractcore/apps/summarizer.py,sha256=9aD6KH21w-tv_wGp9MaO2uyJuaU71OemW7KpqrG5t6w,14669
|
|
8
|
-
abstractcore/architectures/__init__.py,sha256=-4JucAM7JkMWShWKkePoclxrUHRKgaG36UTguJihE0U,1046
|
|
9
|
-
abstractcore/architectures/detection.py,sha256=Cxap1pL6qOJjyY22Vc4hzbLALTuuBisPT5UaMotousk,10025
|
|
10
|
-
abstractcore/architectures/enums.py,sha256=9vIv2vDBEKhxwzwH9iaSAyf-iVj3p8y9loMeN_mYTJ8,3821
|
|
11
|
-
abstractcore/assets/architecture_formats.json,sha256=CIf6SaR_IJs1D7Uvd1K3zWngIXJ_yq3DM_IE3wnpCHY,16076
|
|
12
|
-
abstractcore/assets/model_capabilities.json,sha256=iUkDiljyZUZzPlpYCOFgStXyc6e7dvOfReYQ0HFrX9Q,49703
|
|
13
|
-
abstractcore/assets/session_schema.json,sha256=hMCVrq3KSyVExrMGzuykf7bU-z6WyIVuEGU8du9_zUY,10570
|
|
14
|
-
abstractcore/config/__init__.py,sha256=4mHX5z5Sq8R8xh78tb9jjZLaz_oBNW1eh914OsdDTxs,318
|
|
15
|
-
abstractcore/config/main.py,sha256=PaFzy0Z03mhu293_ato_8qjZJunz1AcXVYny56ct7Zw,32602
|
|
16
|
-
abstractcore/config/manager.py,sha256=6dYtVlwrXxcasDfz98CyocZ1nH9RPiD-yDKtsD3L7Ic,12508
|
|
17
|
-
abstractcore/config/vision_config.py,sha256=jJzO4zBexh8SqSKp6YKOXdMDSv4AL4Ztl5Xi-5c4KyY,17869
|
|
18
|
-
abstractcore/core/__init__.py,sha256=2h-86U4QkCQ4gzZ4iRusSTMlkODiUS6tKjZHiEXz6rM,684
|
|
19
|
-
abstractcore/core/enums.py,sha256=BhkVnHC-X1_377JDmqd-2mnem9GdBLqixWlYzlP_FJU,695
|
|
20
|
-
abstractcore/core/factory.py,sha256=ec7WGW2JKK-dhDplziTAeRkebEUFymtEEZ_bS5qkpqY,2798
|
|
21
|
-
abstractcore/core/interface.py,sha256=-VAY0nlsTnWN_WghiuMC7iE7xUdZfYOg6KlgrAPi14Y,14086
|
|
22
|
-
abstractcore/core/retry.py,sha256=wNlUAxfmvdO_uVWb4iqkhTqd7O1oRwXxqvVQaLXQOw0,14538
|
|
23
|
-
abstractcore/core/session.py,sha256=fdqhnufCWrV022RjQ-Xfb1KFv_s9-GzetSSR-QuXv-Q,36452
|
|
24
|
-
abstractcore/core/types.py,sha256=jj44i07kMjdg9FQ3mA_fK6r_M0Lcgt1RQpy1Ra5w-eI,4578
|
|
25
|
-
abstractcore/embeddings/__init__.py,sha256=hR3xZyqcRm4c2pq1dIa5lxj_-Bk70Zad802JQN4joWo,637
|
|
26
|
-
abstractcore/embeddings/manager.py,sha256=uFVbRPHx_R-kVMVA7N7_7EzeUmCJCeN9Dv0EV8Jko24,52245
|
|
27
|
-
abstractcore/embeddings/models.py,sha256=bsPAzL6gv57AVii8O15PT0kxfwRkOml3f3njJN4UDi4,4874
|
|
28
|
-
abstractcore/events/__init__.py,sha256=UtbdTOeL05kvi7YP91yo4OEqs5UAbKylBvOOEkrUL5E,11065
|
|
29
|
-
abstractcore/exceptions/__init__.py,sha256=h6y3sdZR6uFMh0iq7z85DfJi01zGQvjVOm1W7l86iVQ,3224
|
|
30
|
-
abstractcore/media/__init__.py,sha256=94k22PRXInaXFlxU7p06IRbyjmOkSlCITDm0gb8d9AI,3202
|
|
31
|
-
abstractcore/media/auto_handler.py,sha256=R3EhifSlGSJ_2oftQ7BdD7nQBMGePHOubuXkqHmcHHQ,13478
|
|
32
|
-
abstractcore/media/base.py,sha256=vWdxscqTGTvd3oc4IzzsBTWhUrznWcqM7M_sFyq6-eE,15971
|
|
33
|
-
abstractcore/media/capabilities.py,sha256=qqKvXGkUT-FNnbFS-EYx8KCT9SZOovO2h4N7ucrHgBA,12844
|
|
34
|
-
abstractcore/media/types.py,sha256=jG-g_2_gzl8eOgEalk9x3Ikhni9GoGfoRjkZWaBhV30,10165
|
|
35
|
-
abstractcore/media/vision_fallback.py,sha256=yojFTwKqiE0wfQGYphpXUcANpC0Q80s-qlt7gmQGfZg,11282
|
|
36
|
-
abstractcore/media/handlers/__init__.py,sha256=HBqFo15JX1q7RM11076iFQUfPvInLlOizX-LGSznLuI,404
|
|
37
|
-
abstractcore/media/handlers/anthropic_handler.py,sha256=iwcHKnHgHoQGpJKlJmwFJWBvrYg9lAzAnndybwsWZRA,12427
|
|
38
|
-
abstractcore/media/handlers/local_handler.py,sha256=xfMV2Ztre3eUkDno4aSGob96oWUlgicZ3VChs-txjXU,23033
|
|
39
|
-
abstractcore/media/handlers/openai_handler.py,sha256=o0H_WQ_NQt133my55xYQmq6_QFGafghF8sPTrqr1f0Q,9726
|
|
40
|
-
abstractcore/media/processors/__init__.py,sha256=tExCZwVhD9Qzn3D99-zQcU-T1324YtiLkWjIfWLC708,442
|
|
41
|
-
abstractcore/media/processors/image_processor.py,sha256=wj-f1W71ZCs4AZdmyTKZvnMee83GkiXKuZ6QvJwd3Lo,22577
|
|
42
|
-
abstractcore/media/processors/office_processor.py,sha256=MqhLDWNtjHEpiMgpFaf7tbj8iDcTCf_zelWrHZkr7Z4,18580
|
|
43
|
-
abstractcore/media/processors/pdf_processor.py,sha256=qniYt7cTYYPVRi_cS1IsXztOldeY0bqdn7sdbELBU9k,17157
|
|
44
|
-
abstractcore/media/processors/text_processor.py,sha256=E28FtT2_jzsvMIDwZi6aVWuu_pSyAPSBa96fe4YYcU8,21092
|
|
45
|
-
abstractcore/media/utils/__init__.py,sha256=30-CTif91iRKOXJ4njGiduWAt-xp31U7NafMBNvgdO0,460
|
|
46
|
-
abstractcore/media/utils/image_scaler.py,sha256=QrYqoNQc8tzGu7I9Sf_E-Iv7ei2oLh714AGiX3yACNM,11338
|
|
47
|
-
abstractcore/processing/__init__.py,sha256=t6hiakQjcZROT4pw9ZFt2q6fF3vf5VpdMKG2EWlsFd8,540
|
|
48
|
-
abstractcore/processing/basic_extractor.py,sha256=3x-3BdIHgLvqLnLF6K1-P4qVaLIpAnNIIutaJi7lDQM,49832
|
|
49
|
-
abstractcore/processing/basic_judge.py,sha256=tKWJrg_tY4vCHzWgXxz0ZjgLXBYYfpMcpG7vl03hJcM,32218
|
|
50
|
-
abstractcore/processing/basic_summarizer.py,sha256=XHNxMQ_8aLStTeUo6_2JaThlct12Htpz7ORmm0iuJsg,25495
|
|
51
|
-
abstractcore/providers/__init__.py,sha256=n-2RMNm3QpKxHw9EOjv8icRMRnfJp5Xg0uSVzHCW3BI,1222
|
|
52
|
-
abstractcore/providers/anthropic_provider.py,sha256=R87Z_DNNdeA4LMSxx84pqo8saKFz38dHCJMBpc-rL70,21552
|
|
53
|
-
abstractcore/providers/base.py,sha256=YfrqM3c7wLT19vspL7goUO6Bv-z1691ZkCM2wxvQX4s,51501
|
|
54
|
-
abstractcore/providers/huggingface_provider.py,sha256=pgpeSwpwyNB_5GDyLEz2OSTu9me-GAJzQ116dGtpCvQ,49012
|
|
55
|
-
abstractcore/providers/lmstudio_provider.py,sha256=odT6luVR3POVcq2ZqkINLyLoCAu_YGpLLj3fEddNliU,21021
|
|
56
|
-
abstractcore/providers/mlx_provider.py,sha256=sDgxf_kVJJwxprQWVef9w2CLOu2dLES8D0Vf5tY6PzE,18463
|
|
57
|
-
abstractcore/providers/ollama_provider.py,sha256=1bE80NCj_TQADxRCiu9luyLuI_gZe2EO5pCKoC4VhQM,21740
|
|
58
|
-
abstractcore/providers/openai_provider.py,sha256=1s7JJalyIBOvLB7UAUwXbTc2aYrYSWg7hJjKGnCX1qU,23313
|
|
59
|
-
abstractcore/providers/registry.py,sha256=fKFrN6Z3o5Gi0dfwvXDPtrrJXDjx9oPSfjWjZf-NJBc,15883
|
|
60
|
-
abstractcore/providers/streaming.py,sha256=VnffBV_CU9SAKzghL154OoFyEdDsiLwUNXPahyU41Bw,31342
|
|
61
|
-
abstractcore/server/__init__.py,sha256=1DSAz_YhQtnKv7sNi5TMQV8GFujctDOabgvAdilQE0o,249
|
|
62
|
-
abstractcore/server/app.py,sha256=7pG5ZkZqYNnyby4jyvp3_NKl5nNDmZpOhv_-F8Jruy4,96580
|
|
63
|
-
abstractcore/structured/__init__.py,sha256=VXRQHGcm-iaYnLOBPin2kyhvhhQA0kaGt_pcNDGsE_8,339
|
|
64
|
-
abstractcore/structured/handler.py,sha256=Vb15smiR81JGDXX2RLkY2Exuj67J7a6C-xwVrZoXp0I,17134
|
|
65
|
-
abstractcore/structured/retry.py,sha256=BN_PvrWybyU1clMy2cult1-TVxFSMaVqiCPmmXvA5aI,3805
|
|
66
|
-
abstractcore/tools/__init__.py,sha256=oh6vG0RdM1lqUtOp95mLrTsWLh9VmhJf5_FVjGIP5_M,2259
|
|
67
|
-
abstractcore/tools/common_tools.py,sha256=GkUSnBum3zMm9M-Zd9LlJQmlDp1XDssC7z8ItUcbloc,91692
|
|
68
|
-
abstractcore/tools/core.py,sha256=lUUGihyceiRYlKUFvEMig9jWFF563d574mSDbYYD3fM,4777
|
|
69
|
-
abstractcore/tools/handler.py,sha256=GmDenXAJkhceWSGlhvuF90aMb2301tRTh6WxGwBQifc,12022
|
|
70
|
-
abstractcore/tools/parser.py,sha256=1r5nmEEp1Rid3JU6ct-s3lP-eCln67fvXG5HCjqiRew,27740
|
|
71
|
-
abstractcore/tools/registry.py,sha256=cN3nbPEK6L2vAd9740MIFf2fitW_4WHpQfK4KvQjnT0,9059
|
|
72
|
-
abstractcore/tools/syntax_rewriter.py,sha256=c3NSTvUF3S3ho5Cwjp7GJJdibeYAI6k3iaBwhKcpTfo,17318
|
|
73
|
-
abstractcore/tools/tag_rewriter.py,sha256=UGFMBj2QKwm12j8JQ6oc2C_N3ZeNqz9Enz4VkEIrS0c,20338
|
|
74
|
-
abstractcore/utils/__init__.py,sha256=29mMc3jV_suEPBn7W8Yw_wqcdvFP-083ws5AUFJVM28,676
|
|
75
|
-
abstractcore/utils/cli.py,sha256=btuTIECrBPV4cdoWoE-N1rkzcrq--dhwKbtZTQhvwok,65175
|
|
76
|
-
abstractcore/utils/message_preprocessor.py,sha256=GdHkm6tmrgjm3PwHRSCjIsq1XLkbhy_vDEKEUE7OiKY,6028
|
|
77
|
-
abstractcore/utils/self_fixes.py,sha256=QEDwNTW80iQM4ftfEY3Ghz69F018oKwLM9yeRCYZOvw,5886
|
|
78
|
-
abstractcore/utils/structured_logging.py,sha256=Vm-HviSa42G9DJCWmaEv4a0QG3NMsADD3ictLOs4En0,19952
|
|
79
|
-
abstractcore/utils/token_utils.py,sha256=eLwFmJ68p9WMFD_MHLMmeJRW6Oqx_4hKELB8FNQ2Mnk,21097
|
|
80
|
-
abstractcore/utils/version.py,sha256=vI5E04BYQ3mKTIy4xhwGPse-tZLrIK0hLgJzTYZKJMQ,605
|
|
81
|
-
abstractcore-2.5.0.dist-info/licenses/LICENSE,sha256=PI2v_4HMvd6050uDD_4AY_8PzBnu2asa3RKbdDjowTA,1078
|
|
82
|
-
abstractcore-2.5.0.dist-info/METADATA,sha256=VVP8VO51qhQD_zfPbq25CQ3rbeeMD-UYyeloPU_lFbw,32084
|
|
83
|
-
abstractcore-2.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
84
|
-
abstractcore-2.5.0.dist-info/entry_points.txt,sha256=eUQvRc0sGl4pK3r2zhlGZro7Fk_wl4szw1hDE8SnlDI,460
|
|
85
|
-
abstractcore-2.5.0.dist-info/top_level.txt,sha256=DiNHBI35SIawW3N9Z-z0y6cQYNbXd32pvBkW0RLfScs,13
|
|
86
|
-
abstractcore-2.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|