OpenAIのDecisions APIを試した 画像も判定できる、Jevとの違いと使いどころ

OpenAIが米国時間10月6日(日本時間7日)、「Decisions API」をすべての開発者向けにパブリックベータとして公開しました。文章を書かせるのではなく、決まった質問に、決まった形の答えと確率だけを返させるAPIです。
この形には見覚えがあります。私たちが9月に紹介し、自社の問い合わせフォームとSaaSに組み込んだTypeSafe AIのJevです。Xでも「OpenAI版のJev」という受け止めが出ています。
ただ、決定的な違いが1つあります。Decisions APIは、画像を見て判定できます。 Jevは今のところ文章しか受け取りません。この差で何ができるようになるのかを確かめるため、店舗の投稿を想定したサンプル画像で実際に試しました。
Decisions APIは、決まった質問に確率つきで答えるAPI
使い方は単純です。判定したい材料(文章や画像)と、聞きたい質問を渡すと、質問ごとの答えが返ってきます。質問の型は3つあります。
| 型 | 聞けること | 返ってくるもの |
|---|---|---|
| predicate | 「傷があるか」のような、正しいか正しくないかの判定 | 正しい確率(0〜1) |
| choice | 「どの部署が担当か」のような、選択肢から1つ選ぶ判定 | 選んだ答え、選択肢ごとの確率、確信度 |
| score | 「深刻度は3段階のどれか」のような、段階の評価 | 段階を確率で重み付けした点数、段階ごとの確率、確信度 |
1回の呼び出しに、型の違う質問をいくつも入れられます。前の答えによって次の質問が変わる場合は、呼び出しを分けます。
今使えるモデルはGPT-6 Lunaだけです。OpenAIは、同じLunaを通常のAPI(Responses API)で使うより最大10倍速いとしています。料金は標準で入力100万トークンあたり0.10ドルで、出力の料金はかかりません。入力が27万2,000トークンを超えると入力の単価が2倍になり、処理する地域を指定した場合にも割増があります(GPT-6 Lunaの料金)。正式版は「数週間以内」の予定です。
文章を書かせて、そこから答えを読み取るのではありません。最初から決まった形で返ってくるので、プログラムの分岐に使いやすくなります(質問によっては、答えの代わりに回答を断る返事(refusal)が返ることがあるので、それとエラーに備えた処理は別に要ります)。確率が付くので、「高ければ自動で処理、低ければ人が確認」と振り分けられます。この考え方は、Jevとほぼ同じです。
いちばんの違いは、画像を見て判定できること
公式ガイドの最初の例が、商品写真に「ひび、破れ、へこみなどの傷があるか」を判定するものです。影や箱の傷は除く、といった条件を文章で添え、画像と一緒に渡すと、傷がある確率が返ってきます。
画像と文章は1回の呼び出しにまとめられます。「この写真に傷はあるか」「商品の種類はどれか」を同時に聞くこともできます。画像はデータそのものを埋め込む形(base64)で渡す必要があり、画像のURLや、OpenAIにアップロード済みのファイルの指定は使えません。
音声とも組み合わせられます。Decisions APIが音声を直接受け取るのではなく、音声で会話するGPT-Liveに利用者の話を聞かせ、その文字起こしと画面の状態をDecisions APIに渡して、何をするかだけを決めさせる使い方です(音声との連携の公式ガイド)。公式の例では、「このページを再読み込みして」と話すと、「戻る/再読み込み/何もしない」の選択肢から再読み込みが選ばれ、アプリがそれを実行します。
Jevとどう違い、どちらを選ぶか
| Decisions API | Jev | |
|---|---|---|
| 提供元 | OpenAI | TypeSafe AI |
| 状態 | パブリックベータ | 先行アクセス |
| 受け取れるもの | 文章と画像 | 文章だけ(画像・音声・動画は「まだ」非対応) |
| 料金(入力100万トークンあたり) | 0.10ドル、出力は無料 | 0.042ドル、出力は無料 |
| 1回に入れられる量 | GPT-6 Lunaの入力の上限は92万2,000トークン | 6万4,000トークン |
| 速さ | 通常のAPIのLunaより最大10倍速い(秒数は非公表) | 私たちの計測で平均0.3秒 |
Jevの数字はJevの公式ドキュメントと、私たちが問い合わせフォームに組み込んだときの計測です。
料金だけを比べると、文章の判定はJevのほうが安く、トークンあたりで4割ほどです(数え方の違いがあるので、厳密な比較ではありません)。私たちは今も、問い合わせの営業判定と、自社のSaaSの中の文章チェックをJevで動かしています。文章だけを大量に判定するなら、乗り換える理由はまだありません。
逆に、画像が絡むならDecisions APIです。Jevでは、画像を一度文章に起こしてから渡すしかありませんでした。その手間がなくなり、文字に起こすときに情報が抜け落ちる心配も減ります。音声と組み合わせたい場合も、Decisions APIになります。
投稿を想定したサンプル画像で試した
画像の判定が実際にどこまで使えるかを確かめるため、Googleマップなどへの投稿を想定した、美容・健康関連などの店舗のサンプル画像で試しました。文字やぼかしを加えて作った確認用の画像も含めて、十数枚です。画像は縮めてから送り、1回の呼び出しで、人の顔や個人が分かる文字が写っていないか、言い切りや効果をうたう文字が入っていないか、ビフォーアフターの写真か、写りの品質はどうか、といった8つの質問をしました。
費用と速さは、十分に実用的でした。 1枚あたりの入力は2,000トークン前後で、約0.03円(1ドル150円で計算)です。1,000枚判定しても30円台です。応答は、画像の送信を含めて1秒を切りました。質問を足すと、その分だけ費用が増えます。
狙った項目には、多くの画像で高い確率が返りました。 言い切りや効果をうたう文字、商品と使う前後の写真を並べた画像、ビフォーアフターの写真は、はっきり高い確率で示されました。名札の氏名は中くらいの確率で、強くぼかした画像は品質が低いと判定されました。ただ、これはモデルが1枚ごとに返した確率で、すべての画像に正解を付けて当たり外れを数えたものではありません。精度の数字としては読まないでください。
いちばんの学びは、聞き方の漏れでした。最初の試行では、比べたり言い切ったりする文字だけを聞いていて、効果をうたう文字が入った画像を見落としました。モデルの誤りではありません。効果をうたう文字を別の質問にしたところ、きちんと拾えました。何を聞くかの設計が、結果をそのまま左右します。
拾えなかったものもあります。 車の写っていない画像に後から重ねた、ナンバープレート風の文字は見落としました。不自然な画像だったせいかもしれず、実際の写真で確かめ直す必要があります。強くぼかした画像では、品質は正しく低く出た一方で、ほかの項目の判定がぶれました。1枚だけなので確かなことは言えませんが、中身がよく見えない画像は、まず品質で弾き、ほかの判定は出さない順番にするのがよさそうです。
加工の有無や、撮影の条件が前後でそろっているか、写っている人が掲載に同意しているかは、画像を見ても分かりません。そこは投稿する人への確認で補うことになります。景品表示法や薬機法に当たるかどうかの最終判断も、これまでどおり人と専門家に残す前提です。
試して分かった、使う前に決めておくこと
今回試した投稿画像のチェックのほかに、公式の例には商品写真の検品(傷や汚れがあるか)があります。領収書や請求書の画像の振り分けも候補になりそうですが、文字の読み取りや社内ルールとの照合が要る場合もあり、私たちはまだ試していません。
使い方を決める前に、今回の検証でつまずいた点から言えることがあります。
- 合否の線は、自社の正解付きの例で決める。 公式も、正解を付けた自社の例を使い、誤判定の影響の大きさに応じて決めるよう勧めています。今回の15枚だけでは、線は決められません
- 画像を縮めると、小さな文字を見落とすかもしれない。 今回は費用を抑えるため長い辺1024ピクセルに縮めました。名札や小さな文字が大事な用途では、縮める大きさと読み取りの具合を、実際の画像で比べて決めるのが安全です
- 画像を送る前に、データの扱いを確かめる。 API経由の入力は、データの共有に自分から同意しない限り学習には使われません。ただし標準では、不正利用を監視するための記録として最大30日保存されます(OpenAIのデータの扱い)。保存しない設定は、OpenAIの承認を受けた顧客向けです。人の顔や氏名が写る画像を送るなら、画像の権利と同意、社内の取り扱いのルールを先に確かめてください
- まだベータです。 正式版までに仕様や料金が変わる可能性があります。データを処理する地域を指定できるのは米国と欧州だけで、対象の顧客や設定に条件があります。日本国内での処理は選べません
最後に 私たちは、文章はJev、画像はDecisions APIで分ける
Decisions APIは、Jevが開いた「文章を書かせず、決まった答えを速く安く返させる」使い方に、画像という入口を足したものだと私たちは見ています。私たちの場合、文章だけを大量にさばく判定は今もJevのほうが安く、乗り換える理由はありません。画像が絡む判定は、今回の条件で1枚約0.03円と、日々の業務に組み込める費用でした。どちらを選ぶかは、処理する地域やデータの扱いの条件でも変わるので、これは私たちの今の使い分けです。
試してみて実感したのは、今回の結果を大きく左右したのが質問の作り方だったことです。最初の試行で効果をうたう文字を見落としたのも、聞き方の問題でした。すぐ試すなら、自社の業務で「人が目で見て、数秒で決めている判断」を1つ選び、それを2〜3個の質問に分けて、OpenAIのAPIに送ってよいと確認できた画像10枚ほどで確かめるところから始めてみてください。今回と同じ条件なら、API利用料は1円未満です。