# Jeff v1.1の記事用オフライン教材

確認日: 2026-09-30。著作: ふくふく編集部のオリジナル教材。

この教材はJeff本体・重みを含みません。APIキー不要、通信なし、モデル起動なし、ファイル書き換えなしです。`python3 validate_response.py` は模擬応答6件を検査するだけです。模擬応答の数値は編集部が作った架空値で、製品の実測値ではありません。

## ファイル

- `validate_response.py`: 四つの候補を持つchoice応答の構造・確率・confidenceを検査。
- `response-fixtures.json`: 正常2件、不正4件の模擬応答。実モデルの出力ではない。
- `cases.json`: 架空の英文問い合わせ6件。`request`がモデルへ渡す部分。`expected_route`と`review_note_ja`は人の検収用なので送らない。

## オフラインで実行

Python 3.10以上の標準ライブラリのみ。Jeff本体の要件であるPython 3.12以上とは区別してください。

```bash
python3 validate_response.py
```

正常値の受理と不正値の拒否を確認し、すべて想定どおりなら終了コード0です。異常やファイル不足なら終了コード1です。`nonfinite-probability`はJSONに直接書けない無限大を試験中だけ生成して拒否を確認します。

## 実モデルを別途試す場合

本教材はモデルを呼び出しません。公式手順で別途準備したJeffに `cases.json` の各 `request` のみを送り、結果を保存してから、そのファイルを次のように確認できます。

```bash
python3 validate_response.py --response saved-response.json
```

人用の期待分類を入力に混ぜないでください。本文例と同じ四候補・質問名 `route` だけに対応する検査です。別の候補数や複数質問、Score/Noulには対応しません。応答の追加メタデータは無視し、使用量・モデル名の真正性は検査しません。

すべての出力に `human_review_required: true` を付けます。正しいJSONでも分類は間違え得ます。元の英文と人用の期待分類を見て、担当が合うか別途確認してください。この6問は小さな教材で、汎用精度の測定には使えません。

記録する項目: ケースID、モデル名、重みrevision、コードrevision、実行日時・機材、選択肢、各確率、confidence、人の判定、初回と通常時の待ち時間。速度・正答率の欄は実行前に埋めないでください。

本記事が確認したコード: https://github.com/firelex/jeff/tree/v1.1

確認した0.8B重み: https://huggingface.co/mstrasser/Jeff-Qwen3.5-0.8B/tree/0f212b3e72acb4dde3f7da61e925d6ab7f819990

choice confidence計算の一次資料: https://github.com/firelex/jeff/blob/v1.1/src/jeff/model.py

独立したJeffのソフトウェア/モデルの利用条件は公式LICENSEとモデルカードで確認してください。本教材を通しただけでは、Jeffの導入・実測・英語の品質確認をしたことにはなりません。
