Skip to content

Commit cea6979

Browse files
authored
Merge pull request #823 from Pipelex/release/v0.24.0
claude-opus-4-7
2 parents d03ebfc + 0891ac9 commit cea6979

16 files changed

Lines changed: 254 additions & 49 deletions

File tree

.pipelex-dev/test_profiles.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ google = [
8787
"gemini-2.5-flash-lite",
8888
"gemini-2.5-pro",
8989
"gemini-3.0-pro",
90-
"gemini-3.0-flash-preview",
90+
"gemini-3.0-flash",
91+
"gemini-3.1-flash-lite",
92+
"gemini-3.1-pro",
93+
"gemini-pro-latest",
94+
"gemini-flash-latest",
95+
"gemini-flash-lite-latest",
9196
]
9297

9398
# --- Groq Models ---

.pipelex/inference/backends/google.toml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,53 @@ max_prompt_images = 3000
6262
costs = { input = 2, output = 12.0 }
6363
thinking_mode = "adaptive"
6464

65-
["gemini-3.0-flash-preview"]
65+
["gemini-3.0-flash"]
6666
model_id = "gemini-3-flash-preview"
6767
inputs = ["text", "images", "pdf"]
6868
outputs = ["text", "structured"]
6969
max_prompt_images = 3000
7070
costs = { input = 0.5, output = 3.0 }
7171
thinking_mode = "adaptive"
7272

73+
# --- Gemini 3.1 Series ----------------------------------------
74+
["gemini-3.1-flash-lite"]
75+
model_id = "gemini-3.1-flash-lite-preview"
76+
inputs = ["text", "images", "pdf"]
77+
outputs = ["text", "structured"]
78+
max_prompt_images = 3000
79+
costs = { input = 0.25, output = 1.50 }
80+
thinking_mode = "adaptive"
81+
82+
["gemini-3.1-pro"]
83+
model_id = "gemini-3.1-pro-preview"
84+
inputs = ["text", "images", "pdf"]
85+
outputs = ["text", "structured"]
86+
max_prompt_images = 3000
87+
costs = { input = 2, output = 12.0 }
88+
thinking_mode = "adaptive"
89+
90+
# --- Latest Aliases (point to current generation, change over time) -----------
91+
["gemini-pro-latest"]
92+
inputs = ["text", "images", "pdf"]
93+
outputs = ["text", "structured"]
94+
max_prompt_images = 3000
95+
costs = { input = 1.25, output = 10.0 }
96+
thinking_mode = "adaptive"
97+
98+
["gemini-flash-latest"]
99+
inputs = ["text", "images", "pdf"]
100+
outputs = ["text", "structured"]
101+
max_prompt_images = 3000
102+
costs = { input = 0.30, output = 2.50 }
103+
thinking_mode = "adaptive"
104+
105+
["gemini-flash-lite-latest"]
106+
inputs = ["text", "images", "pdf"]
107+
outputs = ["text", "structured"]
108+
max_prompt_images = 3000
109+
costs = { input = 0.10, output = 0.40 }
110+
thinking_mode = "adaptive"
111+
73112
################################################################################
74113
# IMAGE GENERATION MODELS (Nano Banana)
75114
################################################################################

.pipelex/inference/backends/pipelex_gateway_models.md

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
8585
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
8686
</tr>
8787
<tr>
88+
<td>claude-4.7-opus</td>
89+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
90+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
91+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
92+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
93+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
94+
</tr>
95+
<tr>
8896
<td>deepseek-v3.2</td>
8997
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
9098
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">❌</td>
@@ -117,7 +125,7 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
117125
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
118126
</tr>
119127
<tr>
120-
<td>gemini-3.0-flash-preview</td>
128+
<td>gemini-3.0-flash</td>
121129
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
122130
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
123131
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
@@ -133,6 +141,46 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
133141
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
134142
</tr>
135143
<tr>
144+
<td>gemini-3.1-flash-lite</td>
145+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
146+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
147+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
148+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
149+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
150+
</tr>
151+
<tr>
152+
<td>gemini-3.1-pro</td>
153+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
154+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
155+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
156+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
157+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
158+
</tr>
159+
<tr>
160+
<td>gemini-flash-latest</td>
161+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
162+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
163+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
164+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
165+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
166+
</tr>
167+
<tr>
168+
<td>gemini-flash-lite-latest</td>
169+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
170+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
171+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
172+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
173+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
174+
</tr>
175+
<tr>
176+
<td>gemini-pro-latest</td>
177+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
178+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
179+
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
180+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
181+
<td style="text-align:center;background-color:rgba(76,175,80,0.15)">✅</td>
182+
</tr>
183+
<tr>
136184
<td>gpt-4.1</td>
137185
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
138186
<td style="text-align:center;background-color:rgba(33,150,243,0.15)">✅</td>
@@ -536,6 +584,6 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
536584

537585

538586
> **AUTO-GENERATED FILE** - Do not edit manually.
539-
> Last updated: 2026-04-14T09:23:56Z
587+
> Last updated: 2026-04-17T12:49:19Z
540588
>
541589
> Run `pipelex-dev update-gateway-models` or `make ugm` to regenerate.

.pipelex/inference/backends/pipelex_gateway_models_plain.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
3131
- **claude-4.6-sonnet**
3232
- inputs: text, images, pdf
3333
- outputs: text, structured
34+
- **claude-4.7-opus**
35+
- inputs: text, images, pdf
36+
- outputs: text, structured
3437
- **deepseek-v3.2**
3538
- inputs: text
3639
- outputs: text, structured
@@ -43,12 +46,27 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
4346
- **gemini-2.5-pro**
4447
- inputs: text, images, pdf
4548
- outputs: text, structured
46-
- **gemini-3.0-flash-preview**
49+
- **gemini-3.0-flash**
4750
- inputs: text, images, pdf
4851
- outputs: text, structured
4952
- **gemini-3.0-pro**
5053
- inputs: text, images, pdf
5154
- outputs: text, structured
55+
- **gemini-3.1-flash-lite**
56+
- inputs: text, images, pdf
57+
- outputs: text, structured
58+
- **gemini-3.1-pro**
59+
- inputs: text, images, pdf
60+
- outputs: text, structured
61+
- **gemini-flash-latest**
62+
- inputs: text, images, pdf
63+
- outputs: text, structured
64+
- **gemini-flash-lite-latest**
65+
- inputs: text, images, pdf
66+
- outputs: text, structured
67+
- **gemini-pro-latest**
68+
- inputs: text, images, pdf
69+
- outputs: text, structured
5270
- **gpt-4.1**
5371
- inputs: text, images, pdf
5472
- outputs: text, structured
@@ -199,6 +217,6 @@ For configuration details, see the [documentation](https://docs.pipelex.com/late
199217

200218

201219
> **AUTO-GENERATED FILE** - Do not edit manually.
202-
> Last updated: 2026-04-14T09:23:56Z
220+
> Last updated: 2026-04-17T12:49:19Z
203221
>
204222
> Run `pipelex-dev update-gateway-models` or `make ugm` to regenerate.

.pipelex/inference/deck/1_llm_deck.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ for_object = "@default-general"
2929
[llm.aliases]
3030
best-gpt = "gpt-5.2"
3131
best-claude = "claude-4.7-opus"
32-
best-gemini = "gemini-3.0-pro"
32+
best-gemini = "gemini-pro-latest"
3333
best-mistral = "mistral-large"
3434

3535
# Default aliases (first choice from waterfalls)
3636
default-general = "claude-4.6-sonnet"
37-
default-premium = "claude-4.6-opus"
38-
default-premium-vision = "claude-4.6-opus"
39-
default-premium-structured = "claude-4.6-opus"
40-
default-large-context-code = "gemini-3.0-pro"
41-
default-large-context-text = "gemini-2.5-flash"
37+
default-premium = "claude-4.7-opus"
38+
default-premium-vision = "claude-4.7-opus"
39+
default-premium-structured = "claude-4.7-opus"
40+
default-large-context-code = "gemini-pro-latest"
41+
default-large-context-text = "gemini-flash-latest"
4242
default-small = "gpt-4o-mini"
4343
default-small-structured = "gpt-4o-mini"
44-
default-small-vision = "gemini-3.0-flash-preview"
45-
default-small-creative = "gemini-3.0-flash-preview"
44+
default-small-vision = "gemini-flash-latest"
45+
default-small-creative = "gemini-flash-latest"
4646

4747
####################################################################################################
4848
# LLM Presets
@@ -58,7 +58,7 @@ writing-creative-cheap = { model = "@default-small-creative", temperature = 0.9,
5858

5959
# Retrieval
6060
retrieval = { model = "@default-large-context-text", temperature = 0.1, description = "Data retrieval from large text corpora" }
61-
retrieval-cheap = { model = "gemini-2.5-flash-lite", temperature = 0.1, description = "Cheap data retrieval from large text corpora" }
61+
retrieval-cheap = { model = "gemini-flash-lite-latest", temperature = 0.1, description = "Cheap data retrieval from large text corpora" }
6262
retrieval-premium = { model = "claude-4.7-opus", temperature = 0.1, description = "Premium data retrieval with highest accuracy" }
6363

6464
# Engineering

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
- **Anthropic adaptive thinking rejects `reasoning_budget`**: `_build_thinking_params_for_budget` now raises `LLMCapabilityError` for adaptive thinking models, guiding users to `reasoning_effort` instead — extended thinking (`type: "enabled"`) is removed on Opus 4.7+
1717
- **LLM deck**: Updated `best-claude` alias to `claude-4.7-opus`, switched `img-gen-prompting-cheap` to `@default-small-creative`, removed deprecated builder presets, standardized cheap preset descriptions
18+
- **Google `MINIMAL` reasoning level**: `ReasoningEffort.MINIMAL` now maps to Google's `ThinkingLevel.MINIMAL` (was previously collapsed to `LOW`); `GoogleThinkingLevel` enum gains `MINIMAL` and the default `google_config.effort_to_level_map` updates accordingly
1819

1920
## [v0.23.9] - 2026-04-14
2021

pipelex/cogt/models/model_deck.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -861,11 +861,14 @@ def get_required_inference_model(self, model_handle: str, model_type: ModelType)
861861
inference_model = self.get_optional_inference_model(model_handle=model_handle, model_type=model_type)
862862
if inference_model is None:
863863
msg = (
864-
f"Model handle '{model_handle}' was not found in the model deck. "
865-
"Make sure it's defined in one of the model decks '.pipelex/inference/deck/*.toml'. "
866-
"If the model handle is indeed in the deck, make sure the required backend for this model to run is enabled in "
867-
"'.pipelex/inference/backends.toml' and that you have the necessary credentials. "
868-
"To find what backend is required for this model, look at the routing profile in '.pipelex/inference/routing_profiles.toml' "
864+
f"Model handle '{model_handle}' was not found in the model deck.\n"
865+
"The most likely cause is that your local model deck is out of date: new aliases and presets are added to Pipelex "
866+
"over time and existing '.pipelex/inference/deck/*.toml' files are not automatically refreshed (yet). "
867+
"To pick up the latest definitions, delete your local deck files under '.pipelex/inference/deck/' "
868+
"(or the whole '.pipelex/inference/' directory) and run 'pipelex init inference' to regenerate them.\n"
869+
"If that doesn't resolve it: make sure the handle is defined in one of '.pipelex/inference/deck/*.toml', "
870+
"that the backend it routes to (see '.pipelex/inference/routing_profiles.toml') is enabled in "
871+
"'.pipelex/inference/backends.toml', and that you have the necessary credentials. "
869872
"Learn more about the inference backend system in the Pipelex documentation: "
870873
f"{URLs.backend_provider_docs}"
871874
)

pipelex/graph/reactflow/standalone_assets.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,28 @@
55
"""
66

77
import importlib.resources
8+
from functools import cache
89

910
_ASSET_PACKAGE = "pipelex.graph.reactflow.assets"
1011

11-
_cached_js: str | None = None
12-
_cached_css: str | None = None
13-
1412

13+
@cache
1514
def get_standalone_js() -> str:
1615
"""Load the pre-built GraphViewer JS bundle (IIFE).
1716
1817
Returns:
1918
The JS bundle as a string, cached after first load.
2019
"""
21-
global _cached_js # noqa: PLW0603
22-
if _cached_js is None:
23-
package_files = importlib.resources.files(_ASSET_PACKAGE)
24-
_cached_js = (package_files / "graph-viewer.js").read_text(encoding="utf-8")
25-
return _cached_js
20+
package_files = importlib.resources.files(_ASSET_PACKAGE)
21+
return (package_files / "graph-viewer.js").read_text(encoding="utf-8")
2622

2723

24+
@cache
2825
def get_standalone_css() -> str:
2926
"""Load the pre-built GraphViewer CSS bundle.
3027
3128
Returns:
3229
The CSS bundle as a string, cached after first load.
3330
"""
34-
global _cached_css # noqa: PLW0603
35-
if _cached_css is None:
36-
package_files = importlib.resources.files(_ASSET_PACKAGE)
37-
_cached_css = (package_files / "graph-viewer.css").read_text(encoding="utf-8")
38-
return _cached_css
31+
package_files = importlib.resources.files(_ASSET_PACKAGE)
32+
return (package_files / "graph-viewer.css").read_text(encoding="utf-8")

pipelex/kit/configs/inference/backends/google.toml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,53 @@ max_prompt_images = 3000
6262
costs = { input = 2, output = 12.0 }
6363
thinking_mode = "adaptive"
6464

65-
["gemini-3.0-flash-preview"]
65+
["gemini-3.0-flash"]
6666
model_id = "gemini-3-flash-preview"
6767
inputs = ["text", "images", "pdf"]
6868
outputs = ["text", "structured"]
6969
max_prompt_images = 3000
7070
costs = { input = 0.5, output = 3.0 }
7171
thinking_mode = "adaptive"
7272

73+
# --- Gemini 3.1 Series ----------------------------------------
74+
["gemini-3.1-flash-lite"]
75+
model_id = "gemini-3.1-flash-lite-preview"
76+
inputs = ["text", "images", "pdf"]
77+
outputs = ["text", "structured"]
78+
max_prompt_images = 3000
79+
costs = { input = 0.25, output = 1.50 }
80+
thinking_mode = "adaptive"
81+
82+
["gemini-3.1-pro"]
83+
model_id = "gemini-3.1-pro-preview"
84+
inputs = ["text", "images", "pdf"]
85+
outputs = ["text", "structured"]
86+
max_prompt_images = 3000
87+
costs = { input = 2, output = 12.0 }
88+
thinking_mode = "adaptive"
89+
90+
# --- Latest Aliases (point to current generation, change over time) -----------
91+
["gemini-pro-latest"]
92+
inputs = ["text", "images", "pdf"]
93+
outputs = ["text", "structured"]
94+
max_prompt_images = 3000
95+
costs = { input = 1.25, output = 10.0 }
96+
thinking_mode = "adaptive"
97+
98+
["gemini-flash-latest"]
99+
inputs = ["text", "images", "pdf"]
100+
outputs = ["text", "structured"]
101+
max_prompt_images = 3000
102+
costs = { input = 0.30, output = 2.50 }
103+
thinking_mode = "adaptive"
104+
105+
["gemini-flash-lite-latest"]
106+
inputs = ["text", "images", "pdf"]
107+
outputs = ["text", "structured"]
108+
max_prompt_images = 3000
109+
costs = { input = 0.10, output = 0.40 }
110+
thinking_mode = "adaptive"
111+
73112
################################################################################
74113
# IMAGE GENERATION MODELS (Nano Banana)
75114
################################################################################

0 commit comments

Comments
 (0)