Repository navigation
Add per-row AI question templates and for_each answers - #1205
Merged
Merged
Conversation
Add column placeholders and for_each expansion across AI answer wrangles, preserve grouped candidate results, and include a runnable category-scoring fixture with existing split operations. Refs #1204.
Return keyed results directly, simplify the active sample to split.dictionary, and keep the user's optional recipe sections commented out. Update runner output, schemas, docs, and regression tests. Refs #1204.
This was referenced Sep 29, 2026
ebhills
marked this pull request as ready for review
September 29, 2026 22:13
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked issue
Closes #1204
What changes
Products with different candidate categories can now build their AI questions from each input row, without a separate Python wrangle.
{{ column_name }}substitution in instructions and criterion description values. Recipe templates can reference the full row whileinputselects the shared provider state.for_eachnames a column containing a list or dictionary and binds each candidate to a local variable. Each repeated question produces one output column: list inputs return lists of answers, and dictionary inputs retain their original keys. Empty-string placeholders return{}at the same key or position without generating a question.ai_answers.mddocuments templates,for_each, blank slots, and output shaping.ai_configuration.mdretains provider-specific sections and documents Typesafe caching off by default. A small synthetic category-scoring recipe and Python runner demonstrate the workflow.How it was verified
a2b9d9cb:scripts/test-local.ps1— 2,622 passed, 6 skipped, 139 deselected on Windows/Python 3.13. The subsequent correction changes onlyai_configuration.md.git diff --checkpassed.Compatibility and risk
Existing questions without templates or
for_eachkeep their output contract.{{ ... }}in description strings now denotes a row template; references must resolve unambiguously. Callers needing fixed candidate slots supply blank-string placeholders, since omitted keys are not inferred. Changing the packaged cache default increases actual provider requests for repeated inputs; explicit catalog/caller/environment overrides still apply.extract.aiandsplit.dictionaryare unchanged. There is no persisted data migration; rollback is to revert this PR, including its cache defaults.Ready-for-review checklist
mainand has no merge conflictsDraft pending GitHub checks and delivery-owner review.