Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ea06913
docs: Update readme, agents.md.
Dec 30, 2025
cd36860
docs: Add first draft of blog post.
Dec 30, 2025
b877134
docs: Second draft of blog post.
Dec 30, 2025
c5bf807
docs: Include PyData link in blog post.
Dec 30, 2025
745845c
chore: Stylize as `sieves` in header elements.
Dec 31, 2025
0af7ae2
chore: Stylize as Sieves in header elements.
Dec 31, 2025
489c153
docs: Embed crisis tweet example in docs.
Dec 31, 2025
e18246a
chore: Extend official Python support to >=3.13,<3.14.
Jan 1, 2026
a27f99c
chore: Move blog post to docs/.
Jan 1, 2026
6466aa7
test: Relax test thresholds.
Jan 2, 2026
83481ce
feat: Allow overwriting track_usage flag for dspy.configure.
Jan 17, 2026
1bde4b5
docs: Remove top language badge, add Python version badge.
Jan 17, 2026
3ed8e66
docs: Add images to blog post.
Jan 17, 2026
ccb06dd
docs: Fix Mermaid diagram.
Jan 17, 2026
2e837d8
docs: Fix Mermaid diagram.
Jan 17, 2026
713084a
docs: Fix Mermaid diagram.
Jan 17, 2026
a66c3c6
docs: Fix Mermaid diagram.
Jan 17, 2026
691091b
docs: Rephrase mix-and-match description.
Jan 17, 2026
47a8d3e
docs: Rephrase mix-and-match description.
Jan 17, 2026
53085bf
docs: Update blog draft.
Jan 22, 2026
09c9f6b
docs: Update blog draft.
Jan 22, 2026
d3c9e9f
docs: Update blog draft.
Jan 22, 2026
fc84050
docs: Update blog draft.
Jan 23, 2026
d059df6
docs: Update blog draft.
Jan 23, 2026
b92e831
docs: Update blog draft.
Jan 23, 2026
2028221
docs: Update blog draft.
Jan 23, 2026
fe444d8
docs: Update blog draft.
Jan 23, 2026
7841965
docs: Update blog draft.
Jan 23, 2026
a07764b
fix: Use --clear for venv creation.
Feb 6, 2026
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/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:

- name: Install Python dependencies
run: |
uv venv .venv --python 3.12
uv venv .venv --python 3.12 --clear
uv build
source .venv/bin/activate
uv pip install ./dist/sieves-*.whl
Expand Down
5 changes: 2 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# AGENTS.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This file provides guidance to LLM agents when working with code in this repository.

---

Expand Down Expand Up @@ -49,7 +49,7 @@ AGENTS.md # This file (Claude Code guidelines)

## Installation & Setup

**Python requirement:** 3.12 (exact version required)
**Python requirement:** 3.12 or 3.13 (3.14 not supported yet due to dependency wheels missing)

### Using `uv` (preferred)

Expand Down Expand Up @@ -377,7 +377,6 @@ Before proposing changes, ensure:
- **All model libraries** (Outlines, DSPy, LangChain, Transformers, GLiNER2) are **core dependencies**
- Serialization excludes complex third-party objects (models, converters); must pass at load time
- Ingestion tasks may require system packages (Tesseract for OCR, etc.)
- Python 3.12 exact version required (not 3.12+)

---

Expand Down
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@


[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/mantisai/sieves/test.yml)](https://github.com/mantisai/sieves/actions/workflows/test.yml)
![GitHub top language](https://img.shields.io/github/languages/top/mantisai/sieves)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sieves)
[![Version](https://img.shields.io/github/v/release/mantisai/sieves?include_prereleases&label=version)](https://github.com/mantisai/sieves/releases)
![Status](https://img.shields.io/badge/status-beta-blue)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/ambv/black)
Expand All @@ -24,7 +24,7 @@

<br>

## A Unified Interface for Document AI.
## A Unified Interface for Structured Document AI.

`sieves` provides a **framework-agnostic abstraction for building document AI pipelines**.

Expand Down Expand Up @@ -89,7 +89,6 @@ to skip having to define tasks from scratch.
```bash
pip install sieves
```
*Requires Python 3.12 (due to dependency constraints in `docling` and `pyarrow`).*

**2. Basic: text classification with a small local model**

Expand Down
Binary file added docs/assets/pipeline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
102 changes: 102 additions & 0 deletions docs/assets/pipeline.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
170 changes: 170 additions & 0 deletions docs/blog_post.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions docs/examples/crisis_tweets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Crisis Tweet Analysis

<iframe src="../crisis_tweets_raw.html" width="100%" height="1000px" frameborder="0"></iframe>
Binary file added docs/img.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 4 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
site_name: sieves
site_name: Sieves
site_url: https://sieves.ai/docs
docs_dir: docs
repo_url: https://github.com/mantisai/sieves
repo_name: "sieves on GitHub"
repo_name: "<code>sieves</code> on GitHub"

theme:
name: material
Expand Down Expand Up @@ -93,3 +93,5 @@ nav:
- guides/optimization.md
- guides/distillation.md
- guides/observability.md
- Examples:
- examples/crisis_tweets.md
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ authors = [
{ name = "Angelo Di Gianvito", email = "hi@mantisnlp.com" },
]
dynamic = ["version"]
requires-python = "==3.12.*"
requires-python = ">=3.12,<3.14"
dependencies = [
"chonkie>=1,<2",
"datasets>=3,<4",
Expand Down Expand Up @@ -45,7 +45,8 @@ classifiers = [
"Topic :: Software Development :: Libraries",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12"
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13"
]

[project.urls]
Expand Down
2 changes: 1 addition & 1 deletion sieves/model_wrappers/dspy_.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def __init__(self, model: Model, model_settings: ModelSettings):
"""
super().__init__(model, model_settings)
cfg = model_settings.config_kwargs or {}
dspy.configure(lm=model, track_usage=True, **cfg)
dspy.configure(lm=model, **({"track_usage": True} | cfg))

# Disable noisy LiteLLM logging.
dspy.disable_litellm_logging()
Expand Down
2 changes: 1 addition & 1 deletion sieves/tests/tasks/predictive/test_summarization.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,4 @@ def test_evaluation(batch_runtime) -> None:
doc_partial.results["sum"] = Result(summary="A fox jumps.", score=1.0)
doc_partial.gold["sum"] = Result(summary="The quick brown fox jumps over the lazy dog.", score=1.0)
report_partial = task.evaluate([doc_partial], judge=batch_runtime.model)
assert 0.2 <= report_partial.metrics[task.metric] <= 0.8
assert 0.4 <= report_partial.metrics[task.metric] <= 0.9
1,711 changes: 1,645 additions & 66 deletions uv.lock

Large diffs are not rendered by default.