0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

無料 JEV API はどこで使える?n8n のテキスト分類と型付き応答の検証

0
Posted at

無料 JEV API:n8n のテキスト分類

無料 JEV API はどこで使えますか?

分類先が決まっている n8n のテキスト分類では、HTTP Request ノードから BeatAPI の無料 JEV API を呼び出し、型付き応答を検証して Switch ノードへ渡せます。モデル ID は jev-1.13-free。入力・出力は USD 0 で、残高ゼロでも利用できます。分類名を文章として生成させる必要はありません。

  • リクエストの前に、許可する分類名を決めます。
  • BeatAPI のキーで POST https://api.beatapi.io/v1/systemone を呼び出します。
  • 生成文章を解釈せず、応答の answers を読みます。
  • 不正な応答や不確かな判定には確認用の分岐を設けます。
  • 元の入力 ID を保持し、アカウントの頻度上限に合わせます。

接続の入口は無料 JEV API のページです。既存の JEV ガイドが扱う幅広い用途とは分け、このチュートリアルでは n8n の分類処理に集中します。

無料 JEV API の接続設定

確認項目 BeatAPI の接続先
キーの作成 ダッシュボードの API Keys。グループは auto
無料モデル jev-1.13-free
エンドポイント POST https://api.beatapi.io/v1/systemone
リクエストの項目 model、state、questions
応答 answers 内の名前付き判定
初回チャージ前 成功したリクエストが毎分 1 回まで
チャージ後 成功したリクエストが毎分最大 10 回。モデルは自動で変わらない

BeatAPI の無料 JEV API には BeatAPI のキーを使います。他社のキーや追加ノードがそのまま使えるとは限りません。標準の HTTP Request ノードなら、接続設定を一つずつ確認できます。

無料 JEV API は、決められた候補の中から文脈に応じて選ぶ作業に向きます。この例では、分類結果を型付きで受け取り、検証して分岐することが目的です。

無料 JEV API の提供条件を区別する

以下は 2026 年 10 月 2 日の確認内容です。BeatAPI の無料 JEV API は、外部アプリにも使うキーと無料モデルを明示して接続する方式です。他の提供方法とは条件が異なります。

接続先 公開情報で確認できたこと 選ぶ際の違い
TypeSafe への直接接続 TypeSafe のキー、https://api.typesafe.ai/v1/systemone、jev-latest 別の認証情報が必要。入門文書だけでは継続的な無料枠を確認できない
OpenRouter の JEV 入力 100 万トークンあたり USD 0.042、出力 USD 0 出力が無料でも呼び出し全体は無料にならない
n8n Cloud の期間限定提供 対象プランでは 2026 年 10 月 10 日 23:59 UTC まで Gateway のクレジットを消費せず利用可能 外部 API キーの提供ではない。期間終了後は通常の料金
Vercel Academy の案内 記載された無料期間は 2026 年 9 月 25 日に終了 過去のチュートリアルだけでは現在も無料と判断できない

無料 JEV API の接続先は、再利用できる外部キーが必要か、既存のサービス内で使いたいか、処理量を増やしたいかで選びます。古い無料期間を現在の条件として扱わないでください。

どの解析処理を省けるのか

n8n の利用者による質問には、分類テンプレートで、期待した JSON の代わりに Markdown を含む文章が返り、解析に失敗した例があります。対象はローカルモデルと n8n 1.72.1 です。現在の n8n 全体に同じ不具合があるという証拠ではありません。

「決めた候補から一つ選ぶ」だけなら、アプリは最初から有効な回答を把握できます。JEV はその候補に対する型付きの判定結果を返します。HTTP 応答の JSON 読み取りと項目の検証は引き続き必要です。省けるのは、生成された文章をもう一度 JSON として解釈する工程です。

要約や返信文が必要なら文章生成モデルを使います。完全に一致する条件で決まるなら普通の規則で分岐します。JEV は、候補が限定されているものの、判断には文脈が必要な場面に向きます。

小さな分類処理から始める

この例では更新情報を三つに分けます。

分類 ID 定義 次の処理
feature 利用者向けの新しい機能 機能紹介の下書き待ち
fix 既存機能の不具合修正 修正情報の下書き待ち
other どちらにも明確に当てはまらない 通常の確認待ち
手動開始 → サンプル入力 → HTTP Request → 応答の検証 → Switch
                                            ↓
                                   不確かな結果は確認へ

最初は Manual Trigger と架空の 1 件だけを使います。id を note-001、text を Fixed duplicate rows in CSV downloads. にします。本番の受信箱への接続やメール送信は、分類の確認には不要です。

表示名を翻訳しても分類 ID は維持します。ID は分岐条件、保存済み結果、評価用の正解ラベルに使います。

n8n で無料 JEV API を呼び出す

HTTP Request ノードを次のように設定します。

設定 値
メソッド POST
URL https://api.beatapi.io/v1/systemone
認証 Header Auth の認証情報
認証ヘッダー Authorization: Bearer YOUR_BEATAPI_KEY
本文形式 JSON
応答形式 JSON

キーは n8n の認証情報として保存し、BeatAPI 側のグループは auto にします。JEV は Chat Completions のモデルではないため、この例では OpenAI Chat Model ノードを使いません。

最初の手動確認には、次の固定本文を送ります。

{
  "model": "jev-1.13-free",
  "state": {
    "id": "note-001",
    "text": "Fixed duplicate rows in CSV downloads."
  },
  "questions": {
    "category": {
      "type": "choice",
      "instructions": "Classify this release note by its main user-visible change.",
      "criteria": {
        "feature": "Adds a new user-facing capability.",
        "fix": "Corrects a failure in an existing capability.",
        "other": "Does not clearly fit feature or fix."
      }
    }
  }
}

次に JSON 本文全体を、オブジェクトを返す n8n の式へ変更します。

{{ ({
  model: 'jev-1.13-free',
  state: { id: $json.id, text: $json.text },
  questions: {
    category: {
      type: 'choice',
      instructions: 'Classify this release note by its main user-visible change.',
      criteria: {
        feature: 'Adds a new user-facing capability.',
        fix: 'Corrects a failure in an existing capability.',
        other: 'Does not clearly fit feature or fix.'
      }
    }
  }
}) }}

この式では、引用符の中に入力文章を埋め込んで JSON を組み立てません。送信する本文に実際の入力が含まれ、$json.text という文字列のままになっていないことを確認してください。例は公開仕様に基づく構成であり、この記事では実際の n8n 環境で接続を実測していません。

型付き応答を検証してから分岐する

Decisions API のドキュメントでは、質問名をキーにした回答が answers に返ります。Choice では選ばれた値、各候補の確率、確信度を確認します。次の数値は変換処理を確認するための架空の応答で、実測結果ではありません。

{
  "answers": {
    "category": {
      "type": "choice",
      "choice": "fix",
      "probabilities": { "feature": 0.03, "fix": 0.95, "other": 0.02 },
      "confidence": 0.94
    }
  }
}

Code ノードを「Run Once for Each Item」に設定し、次のように判定を検証します。

const answer = $json.answers?.category;
const allowed = ['feature', 'fix', 'other'];
const labelValid = answer?.type === 'choice' && allowed.includes(answer.choice);
const confidenceValid = Number.isFinite(answer?.confidence)
  && answer.confidence >= 0 && answer.confidence <= 1;
const probabilities = allowed.map(label => answer?.probabilities?.[label]);
const distributionValid = probabilities.every(p => Number.isFinite(p) && p >= 0 && p <= 1)
  && Math.abs(probabilities.reduce((sum, p) => sum + p, 0) - 1) < 0.01;
const valid = labelValid && confidenceValid && distributionValid;
const threshold = 0.8; // Illustrative starting policy; evaluate before operational use.

return { json: {
  request_id: $json.id ?? null,
  category: valid ? answer.choice : null,
  confidence: valid ? answer.confidence : null,
  route: valid && answer.confidence >= threshold ? answer.choice : 'review'
} };

HTTP Request ノードで応答全体を出力する設定では、本文が body の下に入る場合があります。実際の出力に合わせて参照先を変更してください。回答が欠けているときに、正常な分類へ置き換えてはいけません。

Switch には feature、fix、other、review の分岐を作り、正規化した route を条件にします。既定の分岐も確認へつなぎます。other は有効な分類、review は不確かさや応答異常のための保留です。

入力との対応と確信度の基準を確認する

応答の id は API のリクエスト識別子で、元の note-001 ではありません。入力 ID は n8n の item linking または Merge ノードを使って別に保持します。再試行や同時分岐がある場合、配列の順番だけで結果と入力を結び付けないでください。

後続処理を自動化する前に、分かりやすい新機能、明らかな修正、複数内容が混ざった文章、情報不足の文章を少量ずつ人が分類します。予測と正解を比較し、確信度が高いのに誤った回答と、不確かさを正しく保留した回答の両方を確認します。

コードの 0.8 は説明用の初期方針であり、現実の正解率 80% を意味しません。自分のデータと誤分類の影響に基づいて調整します。初回は下書き待ちや記録だけに接続してください。

無料提供の呼び出し上限を守る

無料 JEV API は、アカウント全体で初回チャージ前は成功したリクエストが毎分 1 回まで、チャージ後は毎分最大 10 回です。少量の試験から始め、複数の処理が重なる場合はまとめて調整してください。429 ではドキュメントの Retry-After に従い、再試行回数を制限します。

学習や小さな試験には使えますが、大量の受信データを継続的に無料処理できる根拠にはなりません。チャージしても無料モデルは無料のままです。有料利用は jev-1.13 を明示して選びます。

よくある質問

コミュニティの追加ノードを入れずに利用できますか?

この例は標準の HTTP Request、Code、Switch ノードを使います。第三者のノードが BeatAPI のキーや接続先に対応すると仮定していません。

JSON の解析が全部なくなりますか?

いいえ。API 応答の読み取りは必要です。生成文章や Markdown を別の JSON オブジェクトに変換する工程を省きます。

JEV はメールの文章も生成しますか?

このリクエストは分類を選びます。分岐の検証後に、別の文章生成モデルで下書きを作れます。

残高ゼロでも試せますか?

公開された jev-1.13-free の仕様では、auto グループのキーで残高ゼロでも利用できます。無料 JEV API のページで最新条件を確認してください。

確率が最大の分類に必ず流してよいですか?

いいえ。不確かな判定、不正な応答、想定外の入力には確認用の分岐を残します。モデルの確率は、重大な操作を許可するものではありません。

過去の解析エラーは現在の n8n の不具合を証明しますか?

いいえ。過去の利用者の問題が設計のきっかけです。導入前に現在の n8n と実際の処理で確認してください。


著者は BeatAPI の開発に関わっています。例は公開 API 仕様に基づく構成です。JEV の応答数値は説明用の架空データであり、この記事では n8n 環境での接続を実測していません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?