問い合わせに画面の写真が添付されていると、本文だけでは「入力の間違い」なのか「サービスの障害」なのか分からないことがあります。写真を見て担当先を選ぶ、その小さな判断をプログラムへ組み込みたいときの候補が、Cloudflareのです。
Cloudflareは2026年10月1日、日本時間では10月2日0時34分にClefとClef-flashを発表しました。文章を生成する代わりに、用意した選択肢の確率を返し、画像も判断材料にできます。本記事は公式資料に基づく仕様解説です。日本語画像を使ったモデルの動作・精度・速度は測定していません。公式発表
Clefが返すのは、文章ではなく選択肢の確率
Clefには、状況を表すstateと、何を判断するかを表すquestionsを渡します。質問ごとに答えの範囲を決めるため、「担当先を一つ返して」と頼んだのに長い説明が付いてくる、といった後処理を減らせます。ただし、形式が決まることと内容が正しいことは別です。
| 質問の型 | 用途 | 返り値の読み方 |
|---|---|---|
noul | 「画面の文字が読めるか」 | 真である確率を表す0〜1の値 |
choice | 「入力案内・障害調査・要確認のどれか」 | 選択されたID、各選択肢の確率、confidence |
score | 「影響なし・軽い・大きい」の段階評価 | 0から始まる段階番号の確率加重スコア、各段階の確率など |
scoreは自動的に100点満点になるわけではありません。3段階なら番号は0・1・2です。confidenceも正答率の保証としては扱わず、手元の正解付き事例で誤判定との関係を確認します。既存のJevと同じ名前の項目でも、同じ閾値をそのまま移植しないほうがよいでしょう。Clefモデルカード
CloudflareはJev/SystemOneとのAPI互換性を説明しています。既存の質問形式を使いやすい一方、画像はClef側の拡張です。接続先、認証、画像の渡し方まで変えずに済むという意味ではありません。Jevの基本と実装例を知っている方は、今回は画像と提供環境の差に注目してください。
27B版と9B版、最初に選ぶ基準
| 項目 | Clef | Clef-flash |
|---|---|---|
| 規模 | 27B | 9B |
| 基盤モデル | Qwen3.8-27B | Qwen3.5-9B |
| 想定する比較軸 | 分類の正しさを重視 | 待ち時間・費用を重視 |
| Workers AIの入力100万トークン単価 | 0.240米ドル | 0.090米ドル |
両方とも画像を扱う構成で、重みはで公開されています。軽量版から試しても、常に大きい版より不正確になるとは限りません。公式の評価表でも項目によって順位が変わります。比較するときは同じ画像・質問・選択肢を使い、業務で困る誤りがどちらに出るかを見ます。Clef-flashモデルカード
には1日10,000 Neuronsの無料枠があります。NeuronsはCloudflareの利用量単位で、10,000回の判断が無料という意味ではありません。無料枠を超える利用にはWorkers Paidが必要で、超過分は1,000 Neuronsあたり0.011米ドルです。上表はモデルごとの入力単価であり、Workerなど周辺サービスを含めた総額ではありません。公式料金表
たとえば、画像等を含めて計測された入力が1回2,000、月1万回なら、入力は計2,000万トークンです。無料枠や他の料金を考慮しない単純換算でClefは4.80米ドル、Flashは1.80米ドルになります。これは料金計算の仮定であり、画像1枚が2,000トークンになるという測定結果ではありません。
日本語のエラー画面を3択で分ける
最初の題材は「問い合わせの添付画面を見て、次に誰が確認するかを選ぶ」に絞ります。画面内の文言を根拠に振り分け案を作り、実際の障害原因や返金可否まで一度に決めさせない設計です。画像にない情報を補わず、読めない場合の出口を用意します。
以下は人が先に決める検収用の目安です。Clefがこの通りに答えたという結果ではありません。架空の画面を3枚用意し、ファイル名から正解が推測できないようA・B・CのIDで管理します。
| 架空の画面 | 期待する分類 | 確認したいこと |
|---|---|---|
| 入力欄の横に「メールアドレスは必須です」 | form_error | 本文が「サービスが壊れた」でも画面の表示を確認するか |
| 「503 Service Unavailable」の表示 | server_error | 連絡先入力の不足と混同しないか |
| 文字が小さすぎて読めない画面 | needs_review | 無理に担当先を決めず、追加情報を求めるか |
同じA画像でも、問い合わせ本文を「送れません」「障害ですか」「入力が足りないのでしょうか」に変えてみます。文体や言い切り方に引きずられないかを確かめるためです。さらに画像なしの条件も別に試せば、本文だけで答えていないかを点検できます。画像付きと画像なしの結果を混ぜて平均しないことが大切です。
Workers AIへ送る最小の入力を作る
ホスト版を利用するにはCloudflareのアカウントIDと、対象アカウントでWorkers AIを使う権限のあるAPIトークンが必要です。以下は公式の形式に合わせた入力の作り方です。sample-screen.pngには個人情報のない架空画面を置き、コードをmake_request.pyとして保存します。このスクリプト単体は外部通信しません。
import base64import jsonfrom pathlib import Path
image = Path("sample-screen.png").read_bytes()if not image.startswith(b"\x89PNG\r\n\x1a\n"): raise ValueError("PNG画像を用意してください")if len(image) > 4 * 1024 * 1024: raise ValueError("画像は4 MiB以下にしてください")
request = { "model": "clef-flash", "state": "添付の架空画面の表示だけで分類してください。読めなければ要確認です。", "images": ["data:image/png;base64," + base64.b64encode(image).decode("ascii")], "questions": { "screen_kind": { "type": "choice", "instructions": "画面に明示された状況はどれですか?", "criteria": { "form_error": "入力欄の不足や形式エラーが表示されている", "server_error": "サーバーまたは接続の障害が表示されている", "needs_review": "読めない、材料不足、または複数の分類が当てはまる" } } }}print(json.dumps(request, ensure_ascii=False))次のコマンドのうち、curlが実際の画像送信と推論を行います。アカウントIDとAPIトークンは事前に自分の環境変数へ設定し、公開ファイルに書き込まないでください。この記事ではAPIを呼び出していません。 コードの構文と、ローカルで作られる入力の形だけを確認しています。
python3 make_request.py > clef-request.jsoncurl --fail-with-body \ "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/run/@cf/cloudflare/clef-flash" \ -H "Authorization: Bearer ${CLOUDFLARE_AUTH_TOKEN}" \ -H 'Content-Type: application/json' \ --data-binary @clef-request.json返り値のanswers内には、質問IDscreen_kindに対応した選択と確率が入ります。CloudflareのREST応答では成功・エラー情報と結果本体を分けて確認してください。値が返らなかった試行を「要確認」と同じ成功件数に入れず、通信失敗・入力エラー・分類の誤りを別々に記録します。公式API仕様
画像の制限と、ローカル版の違い
ホスト版の画像はPNG・JPEG・WebPで、最大4枚、各4 MiB・1,600万画素、復号後の合計8 MiBまでです。リクエスト全体にも13 MiBの上限があり、外部画像URLは受け付けません。上のスクリプトは形式の目印とファイルサイズしか確認しないため、画像の寸法も送信前に確認してください。質問は1〜64個、入力の上限は65,536トークンで、長いstateは切り詰められます。ホスト版の入力制限
画像を外部へ送らずに扱いたい場合は、公開重みと専用Pythonコードでローカル実行する方法があります。ただし公式モデルカードの検証環境はH200一枚、torch 2.11、transformers 5.10.2です。一般的なノートPCで同じ速度になるとは考えないでください。基盤モデルがある実行ツールに対応していても、Clef専用の判断部分が動くことまでは保証されません。
ローカルのencode_recordは既定の最大長が16,384で、ホスト版の上限とは別です。また、モデルカードの画像・動画フレーム入力と、Workers AIのimages引数は入力方法が違います。動画ファイルをそのままホスト版へ送れると読み替えないようにします。ローカル実行の公式例
返った確率を、そのまま自動処理の許可にしない
分類が一つに強く偏っていても、その画像が読めている、質問が適切、答えが正しいという保証にはなりません。検証では、人が決めた正解との一致に加え、読めない画像を要確認へ戻せたか、明瞭な画像を戻しすぎていないかを分けて数えます。日本語の細字、略語、画面の一部欠けなども別の条件として残してください。
最初は人が全件確認し、誤りの種類と確率を記録します。正解ラベルを作った事例だけで閾値を決めず、別に用意した事例でも確かめてから自動化の範囲を広げます。今回確認した公式資料には、日本語の問い合わせ画面に限定した精度の実測はありません。判断モデルの比較で揃える条件も参考になります。 画像を使わず小型モデルを手元で試したい場合は、Strands Deciderの日本語分類検証と用途を比べてください。