Repository navigation
Conversation
A probe whose banks are split by locale sets locale_bank_check on its class, and the run pre-flight loads the bank each run locale runs on, named by the bank_locale classmethod, before any model call. authoring_guide is the link a refusal gives for building a bank in another locale, and the feature-request link appears for probes that ship with User Sim. financial_services, sov_ai_facts and sov_ai_dynamic declare theirs, and the pre-flight in cli/_pipeline.py names no probe. assert_probe_conforms checks the three declarations, and the extension fixture exercises them from an installed package. Signed-off-by: Yev Meyer <ymeyer@nvidia.com>
BaseProbe.themes(locale) returns the themes the rows of a probe draw from, read with the run asset root installed, as rows read their banks. theme() reads the theme of a row back as a mapping, from JSON text or from a mapping. A run refuses a probe that lists no themes for a run locale. general_open_ended and general_educational read theirs from their seed files. The sampler graph names no other probe but tool_calling, which takes its themes and toolsets from the run settings. Signed-off-by: Yev Meyer <ymeyer@nvidia.com>
A probe that calls a model beyond the user, assistant, tool-response, judge and summary models names its alias in the model_aliases classmethod. Every row gets each declared alias the model registry has, one the registry lacks is left out for the probe to handle, and the setup fingerprint counts the settings of each declared model. financial_services declares the model that embeds its search queries, so the generator and the setup fingerprint name no probe. assert_probe_conforms checks that the declaration is a classmethod returning a tuple of names. Signed-off-by: Yev Meyer <ymeyer@nvidia.com>
This branch has not been deployed
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.
What changed and why
A probe declares on its own class what a run reads from it before any row runs: which locale banks the pre-flight loads, which themes its rows draw from, and which models it calls beyond the conversation's own. A probe shipped in its own package gets the same pre-flight, themes and models as a built-in one, with no shared module naming it.
Locale pre-flight on the class (first commit). Three optional declarations on
BaseProbe:locale_bank_checkloads one locale's bank folder and raises when no row could run on it. When it is set, the pre-flight loads the bank each run locale runs on, before any model call.financial_services,sov_ai_factsandsov_ai_dynamicdeclare theirs.bank_locale(locale, probe_dir), a classmethod, names that bank. The default runs an India language variant on its own bank when it has one and onen_IN's otherwise;financial_servicesoverrides it, since its bank for a locale counts once it has tasks.authoring_guideis the link a refusal gives for building the probe's bank in another locale.A refusal links the feature-request form when a probe that ships with User Sim is missing a locale, and each probe's own guide when it has one.
assert_probe_conformschecks the three declarations.docs/engine/AUTHORING_A_PROBE.md(step 3),architecture/assets.md,architecture/probes.mdandtemplates/probe/describe them. Indocs/extensions.md, the example probe declares its check.Themes on the class (second commit).
BaseProbe.themes(locale), a classmethod, returns the themes a probe's rows draw from, as mappings.themecolumn.theme()reads the row's theme back as a mapping, whether the row holds JSON text, as a run stores it, or the mapping a test passes torun_episode.general_open_endedandgeneral_educationalread theirs from their seed files.tool_callingtakes its themes and toolsets from the run's settings. A probe that returnsNone, the default, reads no theme and gets a placeholder.assets_root.Models on the class (third commit).
BaseProbe.model_aliases(cfg), a classmethod, names the aliases of the models a probe calls beyond the user, assistant, tool-response, judge and summary models.modelsholds each declared alias the models file defines. An alias the file lacks is left out, and the probe handles its absence;financial_servicessearches lexically without its embedding model.--inputssetup fingerprint counts the settings of each declared model.financial_servicesdeclares the model that embeds its search queries, named by itsfinance_embedding_model_aliassetting, so the generator and the setup fingerprint name no probe.assert_probe_conformschecks that it is a classmethod returning a tuple of names.All three are additions with defaults that keep the current behaviour; no existing hook or attribute changes. The
make check-extensionsfixture probe declares a locale check, a guide, themes and a model, and the check verifies each from an installed package.How it was verified
Each commit passes
make check-all && make test && make smokeon its own: 4547 tests after the first, 4556 after the second.New tests:
bank_localepicks.theme()reads JSON text and a mapping alike.assert_probe_conformsreports each unusable declaration.The tests for a probe's own pre-flight, themes and models fail against the code before the commit that adds them.
For the built-in probes, the declared aliases are the alias the setup fingerprint already counted, so
--inputsfingerprints are unchanged; this was checked for the default, a renamed and an emptyfinance_embedding_model_alias.The example package in
docs/extensions.mdmatches the guide's code blocks byte for byte. Its four tests pass, and a run infr_FRis refused before any model call withacme_recipes can't run fr_FR: no bank. Locales that can run: en_US.make health-checkagainst a custom provider config:HEALTH_PROBE=general_open_ended, a two-turn row drew its theme and completed;HEALTH_PROBE=financial_services, a two-turn row completed.Both evaluations reported
failed=0, and both reports rendered.The
financial_servicesscorer, run by hand with--scorers financial_serviceson an eight-turn row against the same config:A live
financial_servicesrun against the same config (two rows, three turns) made 12kb_searchcalls with no lexical-fallback warning, so the query embeddings came from the declared model.Results impact
None. The built-in probes draw the same themes from the same seed files, the pre-flight passes and refuses the same runs for them, every row gets the same models, and the pinned trajectory IDs and
--inputssetup fingerprints are unchanged.