refactor: pass ModelInfo instead of model name string through provider interface

This commit is contained in:
Konstantin Fickel 2026-02-15 08:12:04 +01:00
parent 8e3ed7010f
commit d15444bdb0
Signed by: kfickel
GPG key ID: A793722F9933C1A5
8 changed files with 83 additions and 43 deletions

View file

@ -18,9 +18,19 @@ from bulkgen.providers.image import ImageProvider
from bulkgen.providers.image import (
_encode_image_b64 as encode_image_b64, # pyright: ignore[reportPrivateUsage]
)
from bulkgen.providers.models import ALL_MODELS, ModelInfo
from bulkgen.providers.text import TextProvider
def _model(name: str) -> ModelInfo:
"""Look up a ModelInfo by name."""
for m in ALL_MODELS:
if m.name == name:
return m
msg = f"Unknown test model: {name}"
raise ValueError(msg)
def _make_bfl_mocks(
image_bytes: bytes,
) -> tuple[BFLResult, MagicMock]:
@ -84,7 +94,7 @@ class TestImageProvider:
target_name="out.png",
target_config=target_config,
resolved_prompt="A red square",
resolved_model="flux-pro-1.1",
resolved_model=_model("flux-pro-1.1"),
project_dir=project_dir,
)
@ -111,7 +121,7 @@ class TestImageProvider:
target_name="banner.png",
target_config=target_config,
resolved_prompt="A banner",
resolved_model="flux-pro-1.1",
resolved_model=_model("flux-pro-1.1"),
project_dir=project_dir,
)
@ -142,7 +152,7 @@ class TestImageProvider:
target_name="out.png",
target_config=target_config,
resolved_prompt="Like this",
resolved_model="flux-pro-1.1",
resolved_model=_model("flux-pro-1.1"),
project_dir=project_dir,
)
@ -177,7 +187,7 @@ class TestImageProvider:
target_name="out.png",
target_config=target_config,
resolved_prompt="Combine",
resolved_model="flux-2-pro",
resolved_model=_model("flux-2-pro"),
project_dir=project_dir,
)
@ -208,7 +218,7 @@ class TestImageProvider:
target_name="out.png",
target_config=target_config,
resolved_prompt="Edit",
resolved_model="flux-kontext-pro",
resolved_model=_model("flux-kontext-pro"),
project_dir=project_dir,
)
@ -232,7 +242,7 @@ class TestImageProvider:
target_name="fail.png",
target_config=target_config,
resolved_prompt="x",
resolved_model="flux-pro-1.1",
resolved_model=_model("flux-pro-1.1"),
project_dir=project_dir,
)
@ -260,7 +270,7 @@ class TestTextProvider:
target_name="poem.txt",
target_config=target_config,
resolved_prompt="Write a poem",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)
@ -282,7 +292,7 @@ class TestTextProvider:
target_name="summary.md",
target_config=target_config,
resolved_prompt="Summarize",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)
@ -306,7 +316,7 @@ class TestTextProvider:
target_name="desc.txt",
target_config=target_config,
resolved_prompt="Describe this image",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)
@ -331,7 +341,7 @@ class TestTextProvider:
target_name="fail.txt",
target_config=target_config,
resolved_prompt="x",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)
@ -348,7 +358,7 @@ class TestTextProvider:
target_name="fail.txt",
target_config=target_config,
resolved_prompt="x",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)
@ -371,7 +381,7 @@ class TestTextProvider:
target_name="out.md",
target_config=target_config,
resolved_prompt="Combine all",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)
@ -402,7 +412,7 @@ class TestTextProvider:
target_name="desc.txt",
target_config=target_config,
resolved_prompt="Describe the style",
resolved_model="mistral-large-latest",
resolved_model=_model("mistral-large-latest"),
project_dir=project_dir,
)