Skip to content

Latest commit

 

History

History
178 lines (112 loc) · 8.29 KB

File metadata and controls

178 lines (112 loc) · 8.29 KB

Unreleased

  • New value_error_thresholds parameter added to both evaluate_semantic() and evaluate_agentic() for range-based absolute error tolerances on numeric property value comparisons:

    • Accepts a dict mapping (min, max) tuples to absolute error thresholds. When a ground-truth value falls inside a range, the extracted value is accepted if |extracted - ground_truth| ≤ threshold. Values outside all configured ranges fall back to exact comparison.

    • Semantic evaluation: handled inside _is_value_in_range() via the new _get_error_threshold() helper in MaterialsDataSemanticEvaluator.

    • Agentic evaluation: a new GetValueErrorThresholdTool (CrewAI BaseTool) is added to the composition evaluator agent when thresholds are configured. The agent calls this tool with the reference value to retrieve the tolerance before deciding on each numeric match. No tool is added and no prompt changes are made when no thresholds are provided.

  • Exposed value_error_thresholds in public evaluation methods: ComProScanner.evaluate_semantic(), ComProScanner.evaluate_agentic(), comproscanner.evaluate_semantic(), and comproscanner.evaluate_agentic().

  • VLM-based graph data extraction added across all publishers and PDF processors:

    • New GraphExtractorTool — a CrewAI agent tool that reads saved figures for a given DOI and uses a vision LLM to extract composition-property value pairs from graphs and charts. Default VLM: gemini/gemini-3-flash-preview.

    • New FigureExtractor utility — shared helper for caption keyword-based figure filtering and saving, used by all article processors.

    • New caption_keywords parameter in process_articles() and extract_composition_property_data(), and new vlm_model and related_figures_base_path parameters in extract_composition_property_data().

  • New unit tests added for all three agent tools in tests/test_agent_tools/.

Fixed

  • process_articles() now routes user-provided doi_list by general_publisher from metadata and sends each DOI only to its matching source processor.

[0.1.6] - 2026-04-02

Changed

Added

  • Guide for API key creation for various LLM providers and publisher APIs added to the documentation at docs/getting-started/api-key-guide.md with detailed instructions for each provider.

Fixed

  • Model prefix handling in rag_tool.py standardized to reflect the docs.
  • HF_TOKEN documentation clarified as optional — only required for gated or private Hugging Face models.

[0.1.5] - 2026-02-08

Added

  • Data related to comparison with other agentic data extraction frameworks added for the ComProScanner paper in the examples/piezo_test/comparing_existing_frameworks folder.

  • New parameter apply_advanced_cleaning added to data cleaning methods in data_cleaner.py. When set to True, it triggers the advanced cleaning pipeline.

  • Advanced composition cleaning methods in data_cleaner.py:

    • _remove_miller_indices() - Removes crystal plane notations from chemical formulas
    • _remove_zero_coefficient_elements() - Removes elements with zero coefficients
    • _normalize_coefficients() - Removes trailing zeros from coefficients
    • _expand_leading_and_trailing_coefficients() - Expands leading/trailing coefficient patterns
    • _expand_parenthetical_coefficients() - Expands nested bracket coefficients
  • Enhanced documentation in docs/usage/data-cleaning.md:

    • Added apply_advanced_cleaning parameter documentation
    • Added Mermaid process flow diagram showing cleaning stages
    • Added advanced cleaning examples with tables for each transformation type
  • Template for GitHub issues added to .github/ISSUE_TEMPLATE for the following topics:

    • bug reports
    • feature requests
    • documentation improvements
    • support questions
  • Changelog page added in the documentation. Also, CHANGELOG.md linked in README.md.

  • DeepWiki integration badge added to README.md for community Q&A support:

  • arXiv preprint badge added to README.md:

  • CITATION.cff added for standardized citation information based on the latest release and arXiv preprint.

Fixed

  • OAWorks API is replaced with OpenAlex API as OAWorks is no longer available.

  • Empty/corrupted PDF handled in pdf_processor.py and wiley_processor.py to avoid having GLYPH errors during text extraction.

  • Data extraction failures fixed if composition-property text data is empty.

  • CSV progress tracking in elsevier_processor.py:

    • DtypeWarning resolved by adding dtype=str, low_memory=False to pd.read_csv()
    • Data loss issue fixed with immediate CSV persistence for processed articles
    • Sleep delays optimized for batch writes
  • Type annotation warnings in documentation build (griffe/mkdocstrings):

    • Added return type annotations to function signatures in comproscanner.py
    • Added return type annotations to all visualization functions in data_visualizer.py and eval_visualizer.py
    • Fixed parameter type format in docstrings from colon to comma notation
    • Added TYPE_CHECKING conditional imports for matplotlib Figure type
    • Fixed **kwargs type annotations across multiple modules
  • Numbered list formatting in docs/about/contribution.md:

    • Fixed list continuation by using 4-space indentation for code blocks and nested lists
    • Disabled format on save for Markdown files in .vscode/settings.json
  • GitHub Actions CI disk space issue:

    • Added --no-cache-dir flag to pip install to reduce disk usage

Changed

  • README badges section converted from HTML to markdown format for better compatibility across platforms.

[0.1.4] - 2025-12-02

Added

  • New function clean_data() added for improved data cleaning and preprocessing instead of integrating it into data extraction function.

  • New documentation page for Data Cleaning added:

    • docs/usage/data-cleaning.md
    • Added to mkdocs.yml navigation.
  • New API overview documentation page added:

    • docs/api.md
    • Added to mkdocs.yml navigation.
    • New mkdocstrings configuration added to mkdocs.yml for automatic API documentation generation.
  • New tests added for remaining utils functions.

  • Added pytest coverage tracking (50%) using pytest-cov and coverage report generation using codecov.

Fixed

  • Tests updated to reflect changes in data cleaning process.

Removed

  • Arguments related to data cleaning removed from data extraction function.

Changed


[0.1.3] - 2025-11-04

Fixed

  • RecursiveCharacterTextSplitter importing updated for latest langchain version to avoid import errors:
    • Changed from from langchain.text_splitter import RecursiveCharacterTextSplitter
    • To from langchain.text_splitter.recursive_character import RecursiveCharacterTextSplitter

[0.1.2] - 2025-10-24

Added

  • Link to ComProScanner preprint on arXiv in the documentation index page and README.md:

[0.1.1] - 2025-10-22

Fixed


[0.1.0] - 2025-10-22

Added

  • Initial release of ComProScanner.