- Fix variable shadowing in fetch_vectors (use vector_id instead of id)
- Remove redundant PINECONE_AVAILABLE check in create_index
- Add Pinecone imports and exports to __init__.py
- Add 'pinecone' to SUPPORTED_BACKENDS in vector_store.py
- Add vectorstore-pinecone dependency group to pyproject.toml
- Create vectorstore-all optional dependency group
- Fix duplicate MagicMock import in test_pinecone_store.py
- Update test_pinecone_removal.py with explanatory comment
- Update all docstrings to include Pinecone in supported backends
All fixes address code review feedback and ensure proper integration.
- Implemented 'Bring Your Own Model' (BYOM) support for NER, Relation, and Triplet extraction
- Added NER aggregation strategies (simple, max, average)
- Implemented Relation Extraction via Sequence Classification with entity markers
- Enhanced Triplet Extraction with REBEL post-processing and lazy loading
- Updated all extractors to prioritize runtime options over config defaults
- Added extensive tests and examples (huggingface_demo.py)
- Updated documentation and CHANGELOG
- Added OntologyIngestor in semantica/ingest/ontology_ingestor.py
- Updated semantica/ontology/__init__.py to export OntologyIngestor
- Updated semantica/ingest/methods.py to use OntologyIngestor
- Added tests for ontology ingestion
- Cleaned up temporary files
- Update notebook to use corrected RelationExtractor API
- Move provider/model parameters to initialization
- Add verbose logging for debugging
- Include working relation extraction examples
- Add comprehensive changelog entry for relation extraction parsing fixes
- Document breaking changes and new test coverage
- Update with provider normalization and JSON fallback details
- Harden LLM relation extraction result handling to parse instructor/OpenAI/Groq variations
- Add structured JSON fallback when typed generation yields zero relations
- Strip acceptance of extra kwargs like max_tokens/max_entities_prompt in relation extraction internals
- Add comprehensive unit tests with mocked LLM provider
- Add integration tests for Groq provider with environment variable API key
- Ensure relation extraction completes and returns results when model identifies relations
- Fix excessive entities being passed to LLM in RelationExtractor
- Add comprehensive 'Heartbeat' verbose logs to methods.py and providers.py
- Ensure robust API key handling and explicit error reporting
- Implemented high-throughput parallel batch processing across all core extractors (NERExtractor, RelationExtractor, TripletExtractor, EventDetector, SemanticNetworkExtractor) using ThreadPoolExecutor.
- Added max_workers configuration parameter (default: 1) to all extractor extract() methods.
- Implemented parallel processing for large document chunking in _extract_entities_chunked and _extract_relations_chunked.
- Enhanced ProgressTracker to be thread-safe.
- Optimized setUpClass in tests to reduce Groq LLM initialization overhead.
- Updated documentation and usage examples.
- Implemented ML/LLM -> Pattern -> Last Resort fallback chains for NER, Relation, and Triplet extractors to prevent empty results.
- Added provenance metadata (batch_index, document_id) to all extraction schemas (Entity, Relation, Triplet, etc.).
- Unified batch processing API with progress tracking across all extractors.
- Updated documentation (module usage and reference docs) to reflect new features.
- Added robustness and batch provenance tests.
- Robust ID extraction in CentralityCalculator, CommunityDetector, and ConnectivityAnalyzer
- Support for direct Entity objects and dictionaries as node identifiers
- Improved Entity hashability in utils/types.py
- Added integration test to verify fix and prevent regression
- Add API key handling in extract_entities_llm(), extract_relations_llm(), and extract_triplets_llm()
- Add explicit api_key handling in NERExtractor and RelationExtractor
- Add llm_model parameter support in extract_triplets_llm() for consistency
- Fix relation extraction bug with type checking for subject_text/object_text
- Add environment variable fallback for API keys
- Update notebook with standard API key pattern
Fixes#147
- Add API key handling in extract_entities_llm(), extract_relations_llm(), and extract_triplets_llm()
- Add llm_model parameter support in extract_triplets_llm() for consistency
- Fix relation extraction bug with type checking for subject_text/object_text
- Add environment variable fallback for API keys
- Include providers.py for context (GroqProvider implementation)
Fixes#145
- Fix import logic in __init__.py to properly export DoclingParser
- Rewrite docling_parser.py to use docling's native API (direct attribute access)
- Remove unsupported features (table_extraction_mode, invalid format_options)
- Use doc.tables, doc.pictures, doc.pages directly instead of dict parsing
- Update notebook with improved code and documentation
- Add proper error handling for when docling is not available
Fixes#138
- Add pipeline_id parameter to all trackers, batch processors, parsers, and extractors
- Fix DoclingParser to show extraction counts in progress display
- Add 'Extracted' column showing tables, images, pages
- Emphasize Docling as core dependency in messages
Closes#136
- Add 8-stage progress tracking (0-100%) with ETA to DoclingParser
- Update earnings call analysis notebook with MDA Space Q3 2025 example
- Simplify notebook code structure
- Add real-time progress visibility for PDF parsing
Closes#133
- Update Discord invite link from https://discord.gg/semantica to https://discord.gg/pMHguUzG
- Move Contributors section inside Contributing section (following open source best practices)
- Update Enterprise Support section to indicate future availability
- Add Evals to roadmap
Fixes#127
- Remove top-level torch import from providers.py
- Add lazy imports in HuggingFaceLLMProvider and HuggingFaceModelLoader
- Remove hardcoded API key from notebook
- PyTorch now only loads when HuggingFace providers are instantiated
Fixes#129
- Added DoclingParser class in semantica/parse/ module
- Created earnings call analysis notebook with Docling integration
- Added docling to pyproject.toml as optional dependency
- Maintained backward compatibility with existing parsers
Closes#124
- Added 'from __future__ import annotations' to helpers.py and exceptions.py
- Replaced 'typing.Type' with built-in 'type' for PEP 585 compliance
- Cleaned up unused 'Type' imports
Fixes#125
- Reduced code examples in all guide pages (getting-started, quickstart, concepts, modules, examples, use-cases, learning-more)
- Added comprehensive cookbook links with descriptions (topics, difficulty, time, use cases)
- Improved structure and organization across all guide pages
- Updated use-cases.md to only include use cases with corresponding cookbooks
- Removed 'Last Updated: 2024' from all documentation files
- Enhanced navigation with better 'Next Steps' sections
Summary of changes:
- Update version to 0.1.0 in pyproject.toml and __init__.py files
- Add semantica/cli.py with click-based interface
- Add semantica/server.py with FastAPI-based REST API
- Add semantica/worker.py for background task processing
- Update documentation and changelog for v0.1.0
- Deleted cookbook/use_cases/healthcare/02_Drug_Interactions_Analysis.ipynb
- Removed Healthcare section from README.md
- Removed Healthcare section from docs/cookbook.md
- Removed Drug Interactions references from STRATEGIES_SUMMARY.md
- Updated cookbook count from 18 to 17 in all documentation
- Updated docs/index.md to reflect 17 cookbooks
- Add real CSV and JSON data sources for transactions and accounts
- Fix ConflictDetector, TemporalGraphQuery, and Reasoner errors
- Simplify code to use Semantica modules properly
- Enhance GraphRAG section with Context Graph and Groq LLM
- Add temporal interactive visualization using TemporalVisualizer
- Fix CSV export to use CSVExporter instead of GraphExporter
- Update README.md to mention Context Graph and Context Retriever
- Switch entity and relation extraction to ML-based methods (spaCy)
- Fix conflict detection to use detect_temporal_conflicts directly
- Fix graph building to use correct Relation attributes (subject/object/predicate)
- Improve GraphRAG with LLM-based multi-hop reasoning
- Enhance graph analytics output to show all entity types
- Update markdown descriptions with concise bullet points
- Enhanced progress tracker with automatic Jupyter/Colab detection
- Added detailed progress tracking to all deduplication modules
- Added detailed progress tracking to all semantic_extract modules
- Progress tracker now always enabled automatically
- Shows remaining items, percentages, ETA, and processing rates
- Works in both Jupyter notebooks and Google Colab
- Dynamic update intervals based on dataset size
- Improved display handling for Colab compatibility
- Fixed ConflictDetector to use update_progress() with counts/ETA for type, temporal, and logical conflict detection
- Fixed NERExtractor batch operations to show progress with ETA
- Fixed RelationExtractor batch operations to show progress with ETA
- All modules now display clear progress bars with percentage, counts, and estimated time remaining
- Enhanced ProgressItem with ETA fields (progress_percentage, total_items, processed_items, estimated_remaining)
- Added update_progress() and _calculate_eta() methods to ProgressTracker
- Updated ConsoleProgressDisplay and JupyterProgressDisplay to show progress with ETA
- Added progress tracking to deduplication modules (DuplicateDetector, EntityMerger, SimilarityCalculator, ClusterBuilder)
- Added progress tracking to conflicts modules (ConflictDetector, ConflictResolver)
- Added progress tracking to ingest, parse, kg, core, embeddings, and triplet_store modules
- All modules now display progress percentage, item counts, ETA, and processing rate
- Add fast path for dictionary entities/relationships to bypass _process_item overhead
- Improve entity recognition to handle 'text' and 'type' fields directly
- Significantly improve processing speed from ~0.8/s to thousands/s
- Fixes performance bottleneck in knowledge graph building