「Jevex」を入れたら、Enum.filterの中でLLMが要否を判定してくれた
- 公開
- 正式公開 2026-09-18
- 作り手
- kentaro(個人)
- 対応
- Elixir ライブラリ(Hex)
- 言語
- 英語
- 価格
- 無料(MIT ライセンス)
- アカウント・広告
- 要 API キー(TypeSafe など)
- 評価
- GitHub のスター 1(2026-10-05)
どんなアプリか
Jevex は、判断に特化したモデル Jev の推論を、普通の Elixir コードと組み合わせて使えるようにするライブラリです。use Jevex と書くと演算子が2つ増えます。~> は判断の結果をそのまま返し、~>> は with や case で扱いやすいタグ付きの結果を返します。スキーマを用意しなくても使えます。
~> の左に評価したいデータを、右に質問を書きます。返ってくる値は質問の書き方で決まります。質問を文字列で書けば真偽値、{:noul, 質問} なら 0〜1 の確率、選択肢をキーワードで添えれば :billing のようなアトム、段階のリストを添えれば 0 から最後の段階の番号までのスコアです。
README の例では、問い合わせのチケットを Enum.filter で「対応が必要か」で絞り込み、Enum.group_by で担当チームごとに分け、Enum.sort_by で深刻度の高い順に並べ替えています。if や case、関数節での振り分けにもそのまま使えます。
評価に失敗すると、~> は Jevex.Error を発生させ、~>> は {:error, %Jevex.Error{}} を返します。失敗が false や 0、適当な選択肢に化けて、成功したように見えることはない作りです。
接続先は TypeSafe 公式の Jev API が基本です。ほかに Lolipop AI Gateway、OpenRouter、Cloudflare Workers AI、Vercel AI Gateway、独自のエンドポイントにも対応しています。接続先を変えるときは実行時の設定を書き換え、式のコードは同じまま使えます。確信度が足りないときや通信に失敗したときに、別の接続先へ切り替える設定もあります。
料金とデータの置き場所
ライブラリは MIT ライセンスで公開されています。公式の Jev API を使うには、TYPESAFE_API_KEY を環境変数に設定し、config/runtime.exs に接続先を書きます。Lolipop AI Gateway を使う場合は LOLIPOP_AI_GATEWAY_API_KEY が要ります。
これまでの更新
GitHub のリポジトリは 2026-09-18 に作られ、Hex でも同じ日に最終更新された 0.1.0 が公開されています。2026-10-06時点で、Hex に出ているバージョンはこの1つです。
入れる前に
対応しているのは Elixir 1.17〜1.20 で、OTP は選んだ Elixir のバージョンが対応するものです。推論はモジュールのコンパイル時や演算子の読み込み時には行われず、実行時に設定を読んでから行われます。
演算子の式は、実行されるたびにその質問についての評価を行います。まとめて送る仕組みやキャッシュ、並列化は自動では入りません。同じデータについて独立した質問をいくつもするなら、ひとつのリクエストにまとめて問える直接 API(Jevex.evaluate)を使うよう README は勧めています。並べ替えの比較関数の中で推論させるのも避けるよう書かれています。
入力や型、選択肢の範囲は検証されますが、モデルの判断そのものが正しいかどうかまでは保証しないと明記されています。オフラインで動く例とテストは API キーなしで実行できます。ただし、各接続先と実際に連携できるかどうかは、これらでは確かめられないとされています。