Changelog
[v0.4.4] - 2025-06-20
Fixed
- Changed the allowed base branch names in the GHA
guard-branches.yml
:doc
->docs
- Fixed
kajson
dependency (see kajson v0.1.6 changelog)
Cursor rules
- Added Cursor rules for coding best practices and standards (including linting methods). Added TDD (Test Driven Development) rule on demand.
- Various changes
Documentation
- Added documentation for referencing images in PipeLLM.
- Fixed typos
Refactor
- Removed the
images
field from PipeLLM - images can now be referenced directly in theinputs
- Moved the list-pipes CLI function to the
PipeLibrary
class.
[v0.4.3] - 2025-06-19
Fixed
- Removed deprecated Gemini 1.5 models: Removed
gemini-1.5-flash
andgemini-1.5-pro
from the VertexAI integration as they are no longer supported - Fixed multiple import statements across the codebase
Documentation
- Enhanced MkDocs search: Added search functionality to the documentation site
- Proofreading improvements: Fixed various typos and improved clarity across documentation
Refactor
- Mini refactor: changed kajson dependency to
kajson==0.1.5
(instead of>=
) to tolerate temporary breaking changes from kajson
[v0.4.2] - 2025-06-17
- Fixed the inheritance config manager method (Undocumented feature, soon to be removed)
- Fixed the
deploy-doc.yml
GitHub Action - Grouped the mkdocs dependencies in a single group
docs
in thepyproject.toml
file
[v0.4.1] - 2025-06-16
- Changed discord link to the new one: https://go.pipelex.com/discord
- Added
hello-world
example in thecookbook-examples
of the documentation.
[v0.4.0] - 2025-06-16
Highlight: Complete documentation overhaul
- MkDocs setup for static web docs generation
- Material for MkDocs theme, custom styling and navigation
- Other plugins: meta-manager, glightbox
- GitHub Pages deployment, mapped to docs.pipelex.com
- Added GHA workflows for documentation deployment and validation
- Added to docs:
- Manifesto explaining the Pipelex viewpoint
- The Pipelex Paradigm explaining the fundamentals of Pipelex's solution
- **Cookbook examples** presented and explained, commented code, some event with mermaid flow charts
- And plenty of details about using Pipelex and developing for Pipelex, from structured generation to PipeOperators (LLM, Image generation, OCR…) to PipeControllers (Sequence, Parallel, Batch, Condition…), workflow optimization, workflow static validation and dry run… there's still work to do, but we move fast!
- Also a major update of Cursor rules
Tooling Improvements
- Pipeline tracking: restored visual flowchart generation using Mermaid
- Enhanced dry run configuration: added more granular control with
nb_list_items
,nb_ocr_pages
, andimage_urls
- New feature flags: better control over pipeline tracking, activity tracking, and reporting
- Improved OCR configuration: handle image file type for Mistral-OCR, added
default_page_views_dpi
setting - Enhanced LLM configuration: better prompting for structured generation with automatic schema insertion for two-step structuring: generate plain text and then structure via Json
- Better logging: Enhanced log truncation and display for large objects like image bytes (there are still cases to deal with)
Refactor
Concept system refactoring
- Improved concept code factory with better domain handling, so you no longer need the
native
domain prefix for native domains, you can just call them by their names:Text
,Image
,PDF
,Page
,Number
… - Concept
refines
attribute can now be a string for single refined concepts (the most common case)
Breaking Changes
- File structure changes: documentation moved from
doc/
todocs/
- Configuration changes: some configuration keys have been renamed or restructured
StuffFactory.make_stuff()
argumentconcept_code
renamed toconcept_str
to explicitly support concepts without fully qualified domains (e.g.,Text
orPDF
implicitlynative
)- Some method signatures have been updated
Tests
- Added Concept refinement validation:
TestConceptRefinesValidationFunction
andTestConceptPydanticFieldValidation
ensure proper concept inheritance and field validation
[v0.3.2] - 2025-06-13
- Improved automatic insertion of class structure from BaseModel into prompts, based on the PipeLLM's
output_concept
. New unit test included. - The ReportingManager now reports costs for all pipeline IDs when no
pipeline_run_id
is specified. - The
make_from_str
method from theStuffFactory
class now usesText
context by default.
[v0.3.1] - 2025-06-10
Added
- New pytest marker
dry_runnable
for tests that can run without inference. - Enhanced
make
targets with dry-run capabilities for improved test coverage: make test-xdist
(ormake t
): Runs all non-inference tests plus inference tests that support dry-runs - fast and resource-efficientmake test-inference
(ormake ti
): Runs tests requiring actual inference, with actual inference (slow and costly)- Parallel test execution using
pytest-xdist
(-n auto
) enabled for: - GitHub Actions workflows
- Codex test targets
Changed
- Domain validation is now less restrictive in pipeline TOML: the
definition
attribute is nowOptional
[v0.3.0] - 2025-06-09
Highlights
- Structured Input Specifications: Pipe inputs are now defined as a dictionary mapping a required variable name to a concept code (
required_variable
->concept_code
). This replaces the previous singleinput
field and allows for multiple, named inputs, making pipes more powerful and explicit. This is a breaking change. - Static Validation for Inference Pipes: You can now catch configuration and input mistakes in your pipelines before running any operations. This static validation checks
PipeLLM
,PipeOcr
, andPipeImgGen
. Static validation for controller pipes (PipeSequence, PipeParallel…) will come in a future release.- Configure the behavior for different error types using the
static_validation_config
section in your settings. For each error type, choose toraise
,log
, orignore
.
- Configure the behavior for different error types using the
- Dry Run Mode for Zero-Cost Pipeline Validation: A powerful dry-run mode allows you to test entire pipelines without making any actual inference calls. It's fast, costs nothing, works offline, and is perfect for linting and validating pipeline logic.
- The new
dry_run_config
lets you control settings, like disabling Jinja2 rendering during a dry run. - This feature leverages
polyfactory
to generate mock Pydantic models for simulated outputs. - Error handling for bad inputs during
run_pipe
has been improved and is fully effective in dry-run mode. - One limitation: currently, dry running doesn't work when the pipeline uses a PipeCondition. This will be fixed in a future release.
- The new
Added
native.Anything
Concept: A new flexible native concept that is compatible with any other concept, simplifying pipe definitions where input types can vary.- Added dependency on
polyfactory
for mock Pydantic model generation in dry-run mode.
Changed
- Refactored Cognitive Workers: The abstraction for
LLM
,Imgg
, andOcr
workers has been elegantly simplified. The old decorator-based approach (..._job_func
) has been replaced with a more robust pattern: a public base method now handles pre- and post-execution logic while calling a private abstract method that each worker implements. - The
b64_image_bytes
field inPromptImageBytes
was renamed tobase_64
for better consistency.
Fixed
- Resolved a logged error related to the pipe stack when using
PipeParallel
. - The pipe tracker functionality has been restored. It no longer crashes when using nested object attributes (e.g.,
my_object.attribute
) as pipe inputs.
Tests
- A new pytest command-line option
--pipe-run-mode
has been added to switch betweenlive
anddry
runs (default isdry
). All pipe tests now respect this mode. - Introduced the
pipelex_api
pytest marker for tests related to the Pipelex API client, separating them from generalinference
orllm
tests. - Added a
make test-pipelex-api
target (shorthand:make ta
) to exclusively run these new API client tests.
Removed
- The
llm_job_func.py
file and the associated decorators have been removed as part of the cognitive worker refactoring.
[v0.2.14] - 2025-06-06
- Added a feature flag for the
ReportingManager
in the config:[pipelex] [pipelex.feature_config] is_reporting_enabled = true
- Moved the reporting config form the
cogt
config to the Pipelex config.
[v0.2.13] - 2025-06-06
- Added Discord badge on the Readme. Join the community! -> https://go.pipelex.com/discord
- Added a client for the Pipelex API. Join the waitlist -> https://www.pipelex.com/signup
- Removed the
run_pipe_code
function. Replaced byexecute_pipeline
inpipelex.pipeline.execute
. - Added llm deck
llm_for_img_to_text
. - Renamed
InferenceReportManager
toReportingManager
: It can report more than Inference cost. RenamedInferenceReportDelegate
toReportingProtocol
. - Added an injection of dependency for
ReportingManager
- pipelex cli: fixed some bugs
[v0.2.12] - 2025-06-03
- pipelex cli: Split
pipelex init
into 2 separate functions:pipelex init-libraries
andpipelex init-config
- Fixed the inheritance config manager method
- Rename Mission to Pipeline
- Enable to start a pipeline and let in run in the background, getting it's run id, but not waiting for the output
Makefile
: avoid defaulting pytest to verbose. Setup targetmake test-xdist
= Run unit tests withxdist
, make it the default for shorthandmake t
. The oldmake t
is nowmake tp
(test-with-prints)- Added
mistral-small-3.1
andqwen3:8b
- Fix template pre-processor: don't try and substitute a dollar numerical like $10 or @25
- Refactor with less "OpenAI" naming for non-openai stuff that just uses the OpenAI SDK
[v0.2.11] - 2025-06-02
- HotFix for v0.2.10 👇 regarding the new pipelex/pipelex_init.toml`
[v0.2.10] - 2025-06-02
Highlights
Python Support Expansion - We're no longer tied to Python 3.11! Now supporting Python 3.10, 3.11, 3.12, and 3.13 with full CI coverage across all versions.
Major Model Additions - Claude 4 (Opus & Sonnet), Grok-3, and GPT-4 image generation are now in the house.
Pipeline Base Library update
- New pipe -
extract_page_contents_and_views_from_pdf
transferred from cookbook to base library (congrats on the promotion!). This pipe extracts text, linked images, AND page_view images (rendered pages) - it's very useful if you want to use Vision in follow-up pipes
Added
- Template preprocessor - New
@?
token prefix for optional variable insertion - if a variable doesn't exist, we gracefully skip it instead of throwing exceptions - Claude 4 support - Both Opus and Sonnet variants, available through Anthropic SDK (direct & Bedrock) plus Bedrock SDK. Includes specific max_tokens limit reduction to prevent timeout/streaming issues (temporary workaround)
- Grok-3 family support - Full support via OpenAI SDK for X.AI's latest models
- GPT-4 image generation - New
gpt-image-1
model through OpenAI SDK, available via PipeImgGen. Currently saves local files (addressing in next release) - Gemini update - Added latest
gemini-2.5-pro
to the lineup - Image generation enhancements - Better quality controls, improved background handling options, auto-adapts to different models: Flux, SDXL and now gpt-image-1
Refactored
- Moved subpackage
plugin
to the same level ascogt
within pipelex for better visibility - Major cleanup in the unit tests, hierarchy significantly flattened
- Strengthened error handling throughout inference flows and template preprocessing
- Added
make test-quiet
(shorthandtq
) to Makefile to run tests without capturing outputs (i.e. without pytest-s
option) - Stopped using Fixtures for
pipe_router
andcontent_generator
: we're now always getting the singleton frompipelex.hub
Fixed
- Perplexity integration - Fixed breaking changes from recent updates
Dependencies
- Added pytest-xdist to run unit tests in parallel on multiple CPUs. Not yet integrated into the Makefile, so run it manually with
pytest -n auto
(without inference) orpytest -n auto -m "inference"
(inference only). - Swapped pytest-pretty for pytest-sugar - because readable test names > pretty tables
- Updated instructor to v1.8.3
- All dependencies tested against Python 3.10, 3.11, 3.12, and 3.13
Tests
- TestTemplatePreprocessor
- TestImggByOpenAIGpt
- TestImageGeneration
- TestPipeImgg
[v0.2.9] - 2025-05-30
- Include
pyproject.toml
inside the project build. - Fix
ImggEngineFactory
: image generation (imgg) handle required format isplatform/model_name
- pipelex cli: Added
list-pipes
method that can list all the available pipes along with their descriptions. - Use a minimum version for
uv
instead of a fixed version - Implement
AGENTS.md
for Codex - Add tests for some of the
tools.misc
- pipelex cli: Rename
pipelex run-setup
topipelex validate
[v0.2.8] - 2025-05-28
- Replaced
poetry
byuv
for dependency management. - Simplify llm provider config: All the API keys, urls, and regions now live in the
.env
. - Added logging level
OFF
, prevents any log from hitting the console
[v0.2.7] - 2025-05-26
- Reboot repository
[v0.2.6] - 2025-05-26
- Refactor: use
ActivityManagerProtocol
, renameBaseModelTypeVar
[v0.2.5] - 2025-05-25
- Add custom LLM integration via OpenAI sdk with custom
base_url
[v0.2.4] - 2025-05-25
- Tidy tools
- Tidy inference API plugins
- Tidy WIP feature
ActivityManager
[v0.2.2] - 2025-05-22
- Simplify the use of native concepts
- Include "page views" in the outputs of Ocr features
[v0.2.1] - 2025-05-22
- Added
OcrWorkerAbstract
andMistralOcrWorker
, along withPipeOcr
for OCR processing of images and PDFs. - Introduced
MissionManager
for managing missions, cost reports, and activity tracking. - Added detection and handling for pipe stack overflow, configurable with
pipe_stack_limit
. - More possibilities for dependency injection and better class structure.
- Misc updates including simplified PR template, LLM deck overrides, removal of unused config vars, and disabling of an LLM platform id.
[v0.2.0] - 2025-05-19
- Added OCR, thanks to Mistral
- Refactoring and cleanup
[v0.1.14] - 2025-05-13
- Initial release 🎉