Skip to content

Recipe 06: Multiple topic labels #6

Closed

Description

@CompleteDotTech

Recipe 06 of 60 · Level 1 (Beginner) · Language & content · Noul

Use case

Tag customer feedback with every applicable topic by asking an independent yes-or-no question for each predefined label.

What to build

The folder recipes/06-multiple-topic-labels/ with notebook.ipynb, README.md, and fixtures/, meeting the recipe contract. Start from python tools/new_recipe.py 06 and the template in recipes/_template/.

Build notes

  • One independent Noul per predefined topic label, all sent in a single request.
  • Fixtures need multi-label gold sets, including items with no label and items with three or more.
  • Explain why this is not one Choice: labels are not mutually exclusive.
  • Python applies a per-label threshold and assembles the tag set.

Decision design

  • Noul. Write each proposition as a statement that is true or false. One independent question per label or concern, sent together in one request. Noul has no confidence field, so each threshold is chosen from examples and evaluated.

Level 1 scope

One bounded judgment over a short prepared input with direct inspection of typed results.

Acceptance criteria

  • recipes/06-multiple-topic-labels/notebook.ipynb runs top to bottom offline, with no key and no network, and its outputs are committed
  • Live mode is opt-in (JEV_COOKBOOK_LIVE=1 with TYPESAFE_API_KEY) and uses the same question definitions as the offline run
  • Fixtures are synthetic, include the hard cases named in the build notes, carry gold labels, and pass the fixture validator
  • Every response fixture records its provenance, and the notebook states which mode it ran in
  • Evaluation: Per-label precision and recall, micro and macro F1, and exact-set match.
  • A reader with basic Python can follow it end to end; every new term is explained where it first appears
  • At least three individual typed answers are displayed and discussed before any aggregate metric
  • No statement about Jev's quality, latency, or cost appears without recorded live inference; in a synthetic run, metrics are labelled as pipeline checks
  • recipes/06-multiple-topic-labels/README.md says what the recipe teaches, how to run it, and what was and was not measured live
  • The pull request changes only recipes/06-multiple-topic-labels/ and CI is green

Dependencies

Sources

Read these before writing the questions.

Out of scope

  • Changes to shared code, the catalog, or the root README. If the shared package is missing something, open a foundation issue and link it here.
  • Real side effects of any kind. Actions are simulated.

Activity

  1. added this to the M1 · Beginner milestone on Oct 6, 2026
  2. added
    type: recipeA cookbook notebook recipe
    level: 1 beginnerOne bounded judgment over a short prepared input
    size: SAbout half a day for one agent or person
    status: blockedWaiting on the issues listed under Dependencies
    on Oct 6, 2026
  3. CompleteDotTech commented on Oct 8, 2026

    @CompleteDotTech
    ContributorAuthor

    Orchestrator note for the brief of this Noul recipe (from the review of recipe 02, #136): add S03 (Confidence, https://docs.typesafe.ai/confidence.md) to the sources — a Noul recipe's certainty is |2p − 1| per that page and the recipe must state it; design an explicit uncertain/review outcome (the Noul page's three-path pattern) unless this issue rules it out; flagged items land in a jev_cookbook.simulation.ReviewQueue the notebook shows; validation probabilities must populate the band the threshold is chosen from; every validation number and figure carries the selection label. The shared helper is being corrected under #140; do not start before it merges.

  4. added 8 commits that reference this issue on Oct 9, 2026
    f8720cc
    9778269
    a1aa8f6
    4402ba2
    c71c207
    7e68cd0
    0ad2260
    d23a7f6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cat: language & contentCategory: Language & contentdecision: noulUses a Noul questionlevel: 1 beginnerOne bounded judgment over a short prepared inputpriority: p1Next up once unblockedsize: SAbout half a day for one agent or personstatus: blockedWaiting on the issues listed under Dependenciestype: recipeA cookbook notebook recipe

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions