Search and saved slices
Search turns readiness into customer-facing value: a model team can find the exact failure modes, robot states, or high-quality examples needed for the next training or eval loop.
Structured filter first
from euler.index import EpisodeSearchIndex, SearchQuery
query = SearchQuery(
text="failed grasp recovery with object slip",
task="pick-place",
outcome="failure",
min_readiness_score=0.55,
)
response = EpisodeSearchIndex(episodes).search(query)
Typed filters run before vector ranking. The response includes evidence so a reviewer can see why each episode matched.
Save the result
from euler.index import save_slice_definition
saved = save_slice_definition(
slice_id="failed-grasp-recovery",
search_response=response,
created_by="ml-lead",
)
Saved slices preserve membership, coverage, rank, score, evidence, and the original query hash.
Promote to an eval set
eval_set = saved.to_eval_set(locked_by="ml-lead")
The eval set is deterministic and content-addressed, so model comparisons can refer to a stable data contract.