Skip to content

Commit ea6e9eb

Browse files
authored
Merge pull request Pipelex#104 from Pipelex/release/v0.4.3
### Fixed - **Removed deprecated Gemini 1.5 models**: Removed `gemini-1.5-flash` and `gemini-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
2 parents f5b5c93 + 764220b commit ea6e9eb

30 files changed

Lines changed: 59 additions & 61 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## [v0.4.3] - 2025-06-19
4+
5+
### Fixed
6+
- **Removed deprecated Gemini 1.5 models**: Removed `gemini-1.5-flash` and `gemini-1.5-pro` from the VertexAI integration as they are no longer supported
7+
- Fixed multiple import statements across the codebase
8+
9+
### Documentation
10+
- **Enhanced MkDocs search**: Added search functionality to the documentation site
11+
- **Proofreading improvements**: Fixed various typos and improved clarity across documentation
12+
13+
### Refactor
14+
- Mini refactor: changed kajson dependency to `kajson==0.1.5` (instead of `>=`) to tolerate temporary breaking changes from kajson
15+
316
## [v0.4.2] - 2025-06-17
417

518
- Fixed the inheritance config manager method (Undocumented feature, soon to be removed)

docs/pages/configuration/config-technical/cogt-config.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ is_auto_setup_preset_ocr = true
2626

2727
## LLM Configuration
2828

29-
Configuration for Language Model interactions:
29+
Configuration for all Language Model interactions:
3030

3131
```toml
3232
[pipelex.cogt.llm_config]
@@ -70,7 +70,7 @@ is_sync_mode = true
7070
# Default parameters for image generation
7171
[pipelex.cogt.imgg_config.imgg_param_defaults]
7272
aspect_ratio = "square" # Options: square, landscape_4_3, landscape_3_2, landscape_16_9, landscape_21_9,
73-
# portrait_4_3, portrait_2_3, portrait_9_16, portrait_9_21
73+
# portrait_4_3, portrait_2_3, portrait_9_16, portrait_9_21
7474
background = "auto" # Options: transparent, opaque, auto
7575
quality = "high" # Options: low, medium, high
7676
nb_steps = 50 # Number of diffusion steps

docs/pages/configuration/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ The exact loading sequence is:
3838
- Example environments: dev, staging, prod -> based on the environment variable `ENV` in your .env file
3939
5. Run mode overrides (`pipelex_{run_mode}.toml`)
4040
- Example run modes: normal, unit_test
41-
6. Super user overrides (`pipelex_super.toml`) (recommanded to put in .gitignore)
41+
6. Super user overrides (`pipelex_super.toml`) (recommended to put in .gitignore)
4242

4343
Each subsequent configuration file in this sequence can override settings from the previous ones. This means:
4444
- Settings in `pipelex_local.toml` override the base configuration

docs/pages/cookbook-examples/extract-dpe.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ output = "Dpe" # The output is structured as a Dpe object
6666
images = ["page_content.page_view"]
6767
llm = "llm_for_img_to_text"
6868
structuring_method = "preliminary_text"
69-
system_prompt = """You are a multimodal LLM, expert at converting images into perfect markdown."""
69+
system_prompt = """You are a multimodal LLM, expert in converting images into perfect markdown."""
7070
prompt_template = """
7171
You are given an image of a French 'Diagnostic de Performance Energetique'.
7272
Your role is to convert the image into perfect markdown.

docs/pages/cookbook-examples/hello-world.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Example: Hello World
22

3-
This is the "Hello World" of Pipelex. A simple pipeline that demonstrates the basic concepts of Pipelex.
3+
This is the "Hello World" of Pipelex, a simple pipeline that demonstrates the basic concepts of Pipelex.
44

55
It's the perfect starting point to verify your installation and get a first taste of how Pipelex works.
66

docs/pages/cookbook-examples/write-screenplay.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This example demonstrates how to use Pipelex for creative text generation. It ta
44

55
## Get the code
66

7-
[**➡️ View on GitHub: examples/wip/write_screen_play.py**](https://github.com/Pipelex/pipelex-cookbook/blob/main/examples/wip/write_screen_play.py)
7+
[**➡️ View on GitHub: examples/wip/write_screenplay.py**](https://github.com/Pipelex/pipelex-cookbook/blob/main/examples/wip/write_screenplay.py)
88

99
## The Pipeline Explained
1010

@@ -109,4 +109,5 @@ steps = [
109109
{ pipe = "create_scene_sequence", batch_over = "initial_scenes", batch_as = "scene", result = "developed_scenes" }
110110
]
111111
```
112-
This modular, step-by-step process, guided by the structured data models, allows Pipelex to generate a complete, well-structured screenplay from a single, simple pitch. It's a powerful demonstration of building complex, creative AI agents.
112+
113+
This modular, step-by-step process, guided by the structured data models, allows Pipelex to generate a complete, well-structured screenplay from a single, simple pitch. It's a powerful demonstration of building complex, creative AI agents.

docs/pages/installation/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Pipelex requires `python` version `3.10` or above, and access to an LLM, via an
66

77
## Getting Started
88

9-
Along with [our Documentation](../quick-start/index.md), we recommend you review it before any further usage: [Cookbook](https://github.com/Pipelex/pipelex-cookbook).
9+
Along with our [Quick Start Guide](../quick-start/index.md), we recommend you check out our [Cookbook](https://github.com/Pipelex/pipelex-cookbook) for practical examples.
1010

1111
- **Create a virtual environment** (recommended)
1212

docs/pages/pipelex-paradigm-for-repeatable-ai-workflows/index.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ Pipelex introduces **knowledge pipelines**: a way to capture these workflow step
1212

1313
Knowledge refers to information you input from various data sources such as documents, PDFs, images, or information output by our pipes. There are different kinds of knowledge.
1414

15-
In traditional programming, we work with data types: strings, integers, booleans (true/false), etc. But **knowledge work operates at a higher level.** Take for instance a *"non-compete clause from a contract"* and a *"description of a flower"*: they're both text, both are stored as strings, but they represent fundamentally different concepts. You can ask AI to extract the duration in months from a non-compete clause. You can ask AI to render a flower description as a Monet-style painting. But if you try the reverse, it doesn't make sense.
15+
### From Data Types to Concepts
16+
17+
In traditional programming, we work with data types: strings, integers, booleans (true/false), etc. But **knowledge work operates at a higher level.** Take for instance a *"non-compete clause from a contract"* and a *"description of a flower"*: they're both text, both are stored as strings, but they represent fundamentally different concepts. You can ask an AI to extract the duration in months from a non-compete clause. You can ask an AI to render a flower description as a Monet-style painting. But if you try the reverse, it doesn't make sense.
1618

1719
This is why Pipelex introduces **Concepts: typing with meaning attached.**
1820

@@ -22,20 +24,20 @@ This is why Pipelex introduces **Concepts: typing with meaning attached.**
2224

2325
Concretely, in Pipelex, a piece of knowledge is an object in the working memory. It could be anything, so we call that "stuff", and our Python class for it is `Stuff`.
2426

25-
Stuff can be pretty basic, like plain text or an image, but it can also be structured with attributes, comprise lists, include other nested stuff, you get it... it's content is actually a `Pydantic BaseModel`. Also, each Stuff knows what concept it belongs to, e.g., `Text` or `NonCompeteClause` or `FlowerDescription`.
27+
Stuff can be pretty basic, like plain text or an image, but it can also be structured with attributes, comprise lists, include other nested stuff, you get it... the stuff's content is actually a `Pydantic BaseModel`. Also, each Stuff knows what concept it belongs to, e.g., `Text` or `NonCompeteClause` or `FlowerDescription`.
2628

2729
And with that we are fully equipped for Lego-style plug-n-play:
2830

2931
- Each pipe declares what inputs it uses, indicating the expected concept(s)
3032
- Each pipe also declares what it outputs
3133

32-
So when you connect two pipes, Pipelex systematically checks that they are compatible. Actually it's even more powerful than that: imagine you have a sequence of 5 pipes, maybe pipe #4 takes two inputs, one given from the output of previous pipe #3 and the other one from the output of pipe #1. Pipelex checks that running the previous steps will have generated the required stuff and with the required concepts.
34+
So when you connect two pipes, Pipelex systematically checks that they are compatible. Actually, it's even more powerful than that: imagine you have a sequence of 5 pipes, maybe pipe #4 takes two inputs, one given from the output of previous pipe #3 and the other one from the output of pipe #1. Pipelex checks that running the previous steps will have generated the required stuff and with the required concepts.
3335

3436
What if you have a pipe that requires a `Text` input, to translate it to Spanish for instance, then it should also accept a `FlowerDescription`, right? Yes, the greater includes the lesser. This is expressed in Pipelex by indicating that concept `FlowerDescription` **refines** concept `Text`.
3537

3638
One problem that developers face when working with LLMs is that LLMs always try to answer your queries, and it pushes them to hallucinate. For instance, if you're trying to extract structured purchase details from an invoice, and there's a bug in your system so instead of receiving an invoice as input, the LLM received a picture of a flower, or nothing at all, there's a good chance it will generate a 100% hallucinated mock invoice. Pipelex prevents this kind of bugs, first by making sure the pipeline makes sense a priori, but it can also check any input for compatibility with the expected concept.
3739

38-
**By letting you clearly assign concepts to the input and output stuff of your pipes, Pipelex makes sure that your pipeline makes sense, that it works in theory and detects any failure of meaning at the earliest stage possible in practice.**
40+
**By letting you clearly assign concepts to the input and output stuff of your pipes, Pipelex makes sure that your pipeline makes sense, that it works in theory, and detects any failure of meaning at the earliest stage possible in practice.**
3941

4042
## Who Defines the Concepts?
4143

docs/pages/quick-start/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ For illustration purposes, let's build **a character generator**. Each example r
1313

1414
### Write your first pipeline
1515

16-
You have to create a `.toml` library file in the `pipelex_libraries/pipelines` directory that will store your pipe definition.
16+
First, create a `.toml` library file in the `pipelex_libraries/pipelines` directory to store your pipe definition.
1717
Run `pipelex init-libraries` to create this directory if it doesn't exist. For now, keep all your pipeline definitions inside that folder only.
1818

1919
`character.toml`
@@ -30,7 +30,7 @@ Think of it and then output the character description."""
3030

3131
### Run your first Pipelex script
3232

33-
You have to create a `.py` python file to run your script. You can save it anywhere in your repository.
33+
Now, create a `.py` python file to run your script. You can save it anywhere in your repository.
3434

3535
`character.py`
3636
```python
@@ -100,7 +100,7 @@ Let's say that we no longer want plain text as output but a rigorously structure
100100

101101
### Define the model
102102

103-
Using the [Pydantic Basemodel](https://docs.pydantic.dev/latest/) syntax, define your object structure as a Python class, in the `pipelex_libraries/pipelines` directory:
103+
Using the [Pydantic BaseModel](https://docs.pydantic.dev/latest/) syntax, define your object structure as a Python class, in the `pipelex_libraries/pipelines` directory:
104104

105105
`pipelex_libraries/pipelines/characters.py`
106106
```python
@@ -179,7 +179,7 @@ class CharacterMetadata(StructuredContent):
179179

180180
### **Let's use a template to fill prompts with data**
181181

182-
💡 Our template syntax is based on [Jinja2 syntax](https://jinja.palletsprojects.com/en/stable/). You can include a variable using the **classic** `{{ double.curly.braces }}` and, to make it simpler, we've added the possibility to just prefix your variable with the `@` symbol (recommended). Pipes now declare their required inputs explicitly with the `inputs` table:
182+
💡 Our template syntax is based on [Jinja2 syntax](https://jinja.palletsprojects.com/en/stable/). You can include a variable using the **classic** `{{ double.curly.braces }}`, and to make it simpler, we've added the possibility to just prefix your variable with the `@` symbol (recommended). Pipes declare their required inputs explicitly with the `inputs` table:
183183

184184
```toml
185185
[concept]

docs/pages/tools/logging.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ Built-in emoji indicators for different components:
3636
- ⚪️ OpenAI-related logs
3737
- 🌀 Google-related logs
3838
- ⚡️ Network connections
39-
- 📡 Web server (Werkzeug)
4039
- *️⃣ JSON processing
4140
- 🧿 Sandbox operations
4241

0 commit comments

Comments
 (0)