Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
1fb4b29
llm qualifier
aricohen93 Aug 8, 2025
726a3e8
doc
aricohen93 Aug 8, 2025
2a64885
doc
aricohen93 Aug 8, 2025
459d2a7
Update qualifying-entities-with-llm.md
aricohen93 Aug 20, 2025
4208636
fix
aricohen93 Aug 21, 2025
34c586f
groq example
aricohen93 Aug 21, 2025
eefe14f
tuto
aricohen93 Aug 21, 2025
95e7f59
remove vllm from dependencies
aricohen93 Aug 21, 2025
ba8cc58
fix test doc?
aricohen93 Aug 21, 2025
b777a75
Update tests.yml
aricohen93 Aug 21, 2025
e6811d7
fix and test
aricohen93 Aug 21, 2025
7cc849e
dependencies
aricohen93 Aug 21, 2025
66a536c
clean
aricohen93 Aug 21, 2025
cd032d7
workflow
aricohen93 Aug 22, 2025
4086b57
fix workflow
aricohen93 Aug 22, 2025
a99034c
doc
aricohen93 Aug 22, 2025
efb1315
test
aricohen93 Aug 22, 2025
5b3d8d3
fix test polars
aricohen93 Aug 22, 2025
db632a2
fix tests
aricohen93 Aug 22, 2025
34ac13d
simplify code
aricohen93 Aug 22, 2025
319dd9d
test
aricohen93 Aug 22, 2025
0c22877
new tests
aricohen93 Aug 22, 2025
2c8803e
tests and fix
aricohen93 Aug 22, 2025
7e9ce7c
fix
aricohen93 Aug 22, 2025
c8fb425
pytest
aricohen93 Aug 22, 2025
7cc4a2e
fix test
aricohen93 Sep 1, 2025
3601056
Merge branch 'master' into llm-qualifier
aricohen93 Sep 1, 2025
2c50c83
linting
aricohen93 Sep 1, 2025
c715026
tests
aricohen93 Sep 1, 2025
dcb0a5c
docs
aricohen93 Sep 1, 2025
ae74a4f
test
aricohen93 Sep 1, 2025
98311a7
tests
aricohen93 Sep 2, 2025
1c0bd86
docs
aricohen93 Sep 2, 2025
1ab0360
chore: bump version to 0.18.0
percevalw Sep 2, 2025
1f96172
ci: fix pyarrow installation during wheel build
percevalw Sep 3, 2025
fc21159
fix: entrypoints
aricohen93 Jun 6, 2025
cb8b2d0
feat: compute eds.ner_crf loss as mean over words
percevalw Feb 19, 2025
d0f57f3
test: test filter_expr in dependency parsing evaluation
percevalw Feb 19, 2025
24b76d9
fix: make entrypoint tests compatible with old python versions
percevalw Sep 2, 2025
ed12f6d
docs: fix docs tutorials and warn in training func for mismatched pip…
percevalw Sep 2, 2025
976d37b
chore: bump version to 0.18.0
percevalw Sep 2, 2025
c066f3a
ci: fix pyarrow installation during wheel build
percevalw Sep 3, 2025
d55c29c
fix: add mkdocs-eds explicitely while waiting for py38 drop
percevalw Sep 3, 2025
eb0ff10
Merge branch 'master' into llm-qualifier
aricohen93 Sep 3, 2025
992642b
handle None response
aricohen93 Sep 12, 2025
9a55bad
async worker and headers
aricohen93 Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
First, when starting to develop, install the project with

```bash
pip install -e ".[dev]"
pip install -e ".[dev]" "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
pre-commit install
```

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:

- name: Install dependencies
run: |
pip install '.[docs]'
pip install '.[docs]' "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
# uv venv
# uv pip install '.[docs]'

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
uses: pypa/[email protected]
env:
CIBW_ARCHS_MACOS: "x86_64 arm64"
CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cpu
CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cpu PIP_ONLY_BINARY=pyarrow

- uses: actions/upload-artifact@v4
with:
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install '.[docs]'
pip install '.[docs]' "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"

- name: Set up Git
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: pypa/[email protected]
env:
CIBW_ARCHS_MACOS: "x86_64 arm64"
CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cpu
CIBW_ENVIRONMENT: PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cpu PIP_ONLY_BINARY=pyarrow


build_sdist:
Expand Down
17 changes: 12 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,22 +61,22 @@ jobs:
cache: 'pip'

- name: Install dependencies
run: pip install -e ".[dev]"
run: pip install -e ".[dev]" "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
if: matrix.python-version != '3.9' && matrix.python-version != '3.10' && matrix.python-version != '3.11' && matrix.python-version != '3.12'

- name: Install dependencies
run: pip install -e ".[dev,setup]"
run: pip install -e ".[dev,setup,llm]" "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
if: matrix.python-version == '3.9'

- name: Install dependencies
# skip ML tests for 3.10 and 3.11
run: pip install -e ".[dev-no-ml]"
run: pip install -e ".[dev-no-ml]" "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
if: matrix.python-version == '3.10' || matrix.python-version == '3.11' || matrix.python-version == '3.12'

- name: Test with Pytest on Python ${{ matrix.python-version }}
env:
UMLS_API_KEY: ${{ secrets.UMLS_API_KEY }}
run: coverage run -m pytest --ignore tests/test_docs.py
run: coverage run -m pytest --ignore tests/test_docs.py --ignore tests/pipelines/qualifiers/test_llm_qualifier.py --ignore tests/pipelines/qualifiers/test_llm_utils.py
if: matrix.python-version != '3.9'

- name: Test with Pytest on Python ${{ matrix.python-version }}
Expand Down Expand Up @@ -118,7 +118,7 @@ jobs:
cache: 'pip'

- name: Install dependencies
run: pip install -e ".[docs]"
run: pip install -e ".[docs]" "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"

- name: Set up Git
run: |
Expand Down Expand Up @@ -197,7 +197,14 @@ jobs:
- run: echo WEEK=$(date +%V) >>$GITHUB_ENV
shell: bash

- name: Install library
run: |
pip install ".[ml,llm]" pytest
pytest tests/pipelines/test_pipelines.py
if: matrix.python-version != '3.7'

- name: Install library
run: |
pip install ".[ml]" pytest
pytest tests/pipelines/test_pipelines.py
if: matrix.python-version == '3.7'
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ Check out our interactive [demo](https://aphp.github.io/edsnlp/demo/) !
You can install EDS-NLP via `pip`. We recommend pinning the library version in your projects, or use a strict package manager like [Poetry](https://python-poetry.org/).

```shell
pip install edsnlp==0.17.2
pip install edsnlp==0.18.0
```

or if you want to use the trainable components (using pytorch)

```shell
pip install "edsnlp[ml]==0.17.2"
pip install "edsnlp[ml]==0.18.0"
```

### A first pipeline
Expand Down
10 changes: 6 additions & 4 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Changelog

## Unreleased
## v0.18.0 (2025-09-02)

## Added
📢 EDS-NLP will drop support for Python 3.7, 3.8 and 3.9 support in the next major release (v0.19.0), in October 2025. Please upgrade to Python 3.10 or later.

### Added

- Added support for multiple loggers (`tensorboard`, `wandb`, `comet_ml`, `aim`, `mlflow`, `clearml`, `dvclive`, `csv`, `json`, `rich`) in `edsnlp.train` via the `logger` parameter. Default is [`json` and `rich`] for backward compatibility.
- Sub batch sizes for gradient accumulation can now be defined as simple "splits" of the original batch, e.g. `batch_size = 10000 tokens` and `sub_batch_size = 5 splits` to accumulate batches of 2000 tokens.
Expand All @@ -12,7 +14,7 @@
- New `Training a span classifier` tutorial, and reorganized deep-learning docs
- `ScheduledOptimizer` now warns when a parameter selector does not match any parameter.

## Fixed
### Fixed

- `use_section` in `eds.history` should now correctly handle cases when there are other sections following history sections.
- Added clickable snippets in the documentation for more registered functions
Expand All @@ -22,7 +24,7 @@
- :ambulance: Until now, `post_init` was applied **after** the instantiation of the optimizer : if the model discovered new labels, and therefore changed its parameter tensors to reflect that, these new tensors were not taken into account by the optimizer, which could likely lead to subpar performance. Now, `post_init` is applied **before** the optimizer is instantiated, so that the optimizer can correctly handle the new tensors.
- Added missing entry points for readers and writers in the registry, including `write_parquet` and support for `polars` in `pyproject.toml`. Now all implemented readers and writers are correctly registered as entry points.

## Changed
### Changed

- Sections cues in `eds.history` are now section titles, and not the full section.
- :boom: Validation metrics are now found under the root field `validation` in the training logs (e.g. `metrics['validation']['ner']['micro']['f']`)
Expand Down
6 changes: 3 additions & 3 deletions contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ $ python -m venv venv
$ source venv/bin/activate

# Install the package with common, dev, setup dependencies in editable mode
$ pip install -e '.[dev,setup]'
$ pip install -e '.[dev,setup]' "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
# And build resources
$ python scripts/conjugate_verbs.py
```
Expand Down Expand Up @@ -107,13 +107,13 @@ Most modern editors propose extensions that will format files on save.
Make sure to document your improvements, both within the code with comprehensive docstrings,
as well as in the documentation itself if need be.

We use `MkDocs` for EDS-NLP's documentation. You can checkout the changes you make with:
We use `MkDocs` for EDS-NLP's documentation. You can check out the changes you make with:

<div class="termy">

```console
# Install the requirements
$ pip install -e '.[docs]'
$ pip install -e '.[docs]' "mkdocs-eds@git+https://github.com/percevalw/mkdocs-eds.git@main#egg=mkdocs-eds ; python_version>='3.9'"
---> 100%
color:green Installation successful

Expand Down
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ Check out our interactive [demo](https://aphp.github.io/edsnlp/demo/) !
You can install EDS-NLP via `pip`. We recommend pinning the library version in your projects, or use a strict package manager like [Poetry](https://python-poetry.org/).

```{: data-md-color-scheme="slate" }
pip install edsnlp==0.17.2
pip install edsnlp==0.18.0
```

or if you want to use the trainable components (using pytorch)

```{: data-md-color-scheme="slate" }
pip install "edsnlp[ml]==0.17.2"
pip install "edsnlp[ml]==0.18.0"
```

### A first pipeline
Expand Down
26 changes: 26 additions & 0 deletions docs/pipes/qualifiers/llm-qualifier.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## LLM Span Classifier {: #edsnlp.pipes.qualifiers.llm.factory.create_component }

::: edsnlp.pipes.qualifiers.llm.factory.create_component
options:
heading_level: 3
show_bases: false
show_source: false
only_class_level: true

## APIParams {: #edsnlp.pipes.qualifiers.llm.llm_qualifier.APIParams }

::: edsnlp.pipes.qualifiers.llm.llm_qualifier.APIParams
options:
heading_level: 3
show_bases: false
show_source: false
only_class_level: true

## PromptConfig {: #edsnlp.pipes.qualifiers.llm.llm_qualifier.PromptConfig }

::: edsnlp.pipes.qualifiers.llm.llm_qualifier.PromptConfig
options:
heading_level: 3
show_bases: false
show_source: false
only_class_level: true
Loading