Skip to content

Commit 365f863

Browse files
authored
feat(examples): add extra_requirements param to IVR qiskit validation (#955)
Allows callers to inject per-problem validators (e.g. QHE check() functions) alongside the static flake8-qiskit-migration QKT check, without modifying the core example. Assisted-by: Claude Code Signed-off-by: Alex Bozarth <ajbozart@us.ibm.com>
1 parent 7912a1d commit 365f863

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

docs/examples/instruct_validate_repair/qiskit_code_validation/qiskit_code_validation.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
import time
3030

31-
from validation_helpers import validate_input_code, validate_qiskit_migration
31+
from validation_helpers import validate_qiskit_migration
3232

3333
from mellea import MelleaSession, start_session
3434
from mellea.backends import ModelOption
3535
from mellea.stdlib.context import ChatContext, SimpleContext
36-
from mellea.stdlib.requirements import req, simple_validate
36+
from mellea.stdlib.requirements import Requirement, req, simple_validate
3737
from mellea.stdlib.sampling import MultiTurnStrategy, RepairTemplateStrategy
3838

3939
# Optional system prompt for models not specialized for Qiskit.
@@ -74,6 +74,7 @@ def generate_validated_qiskit_code(
7474
*,
7575
system_prompt: str | None = None,
7676
grounding_context: dict[str, str] | None = None,
77+
extra_requirements: list[Requirement] | None = None,
7778
) -> tuple[str, bool, int]:
7879
"""Generate Qiskit code that passes Qiskit migration validation.
7980
@@ -89,6 +90,9 @@ def generate_validated_qiskit_code(
8990
strategy: Sampling strategy for handling validation failures
9091
system_prompt: Optional system prompt passed via ModelOption.SYSTEM_PROMPT
9192
grounding_context: Optional grounding context dict passed to m.instruct()
93+
extra_requirements: Optional additional requirements appended to the QKT rule.
94+
Use to inject per-problem validators (e.g. behavioral check() functions)
95+
without modifying this function.
9296
9397
Returns:
9498
Tuple of (generated_code, success, attempts_used)
@@ -107,7 +111,8 @@ def generate_validated_qiskit_code(
107111
req(
108112
"Code must pass Qiskit migration validation (QKT rules)",
109113
validation_fn=simple_validate(validate_qiskit_migration),
110-
)
114+
),
115+
*(extra_requirements or []),
111116
],
112117
strategy=strategy,
113118
return_sampling_results=True,

0 commit comments

Comments
 (0)