画像と文章から、選択肢ごとの確率を返す判断 API

選択肢に A, B, C… の記号を振った問題をモデルに 1 トークンだけ答えさせ、 記号の確率を正規化して返します(1 トークン判定)。自由記述をパースする必要はなく、 閾値判定や「自信が無いときは人に回す」がそのまま書けます。

Google でログイン API リファレンス 空き枠を確認しています…

会員登録は Google アカウントでのログインのみです。定員制のため、満員のときはログインしたアドレスでウェイトリストに登録されます。

確率で返る

答えは probabilities(選択肢ごとの確率)と confidence つき。しきい値で自動処理と人手確認を分けられます。

画像に対応

1 リクエストに画像 4 枚・質問 10 個まで。画像はリクエスト内で使い回すので、質問を増やしても画像の料金は 1 回分です。

位置バイアスを打ち消す比較

/v1/compare は 2 枚の画像、または 2 つの文章の順番を入れ替えて 2 回聞き、答えが食い違えば undecided を返します。/v1/rank で多数の候補の順位付けもできます。

リクエストと応答の例

文章(state)・画像(images、data: URL)・選択肢つきの質問(questions)を送ります。

POST https://gyojy.hakadoru.ai/api/v1/judge

{
  "state": "今日は半袖でも心地良い気温でした。",
  "images": ["data:image/jpeg;base64,/9j/4AAQ..."],
  "questions": {
    "temperature": {
      "type": "choice",
      "instructions": "気温として最も適切なのは?",
      "criteria": {"18度": null, "22度": null, "26度": "暑い日"}
    }
  }
}

200 OK

{
  "model": "gyojy-1",
  "served_by": "gvj",
  "answers": {
    "temperature": {
      "type": "choice",
      "choice": "22度",
      "probabilities": {"18度": 0.0001, "22度": 0.8599, "26度": 0.1401},
      "confidence": 0.7897,
      "coverage": 0.9981
    }
  },
  "usage": {"input_tokens": 117, "output_tokens": 0, "elapsed_ms": 112, "credits": 5}
}

temperature の確率

  • 18度0.01%
  • 22度85.99%
  • 26度14.01%

coverage は選択肢の記号に落ちた確率の合計です。0.5 を下回るときはモデルが選択肢以外を答えたがっているので、問い方を見直してください。

料金の要点

前払いのクレジット制です。1 クレジット = 0.01 円(税別)。推論・画像・文章の単価を足してリクエストごとに 1 回だけ切り上げるので、送る前に計算できます。

例クレジット円(税別)
短い文章(100 文字)で質問 1 つ350.35 円
画像 1 枚 + 短い文章で質問 1 つ1731.73 円
compare 1 回(2 回推論 × 画像 2 枚)5785.78 円
画像 10 枚の順位付け(20 戦)11,035110.35 円

購入は 1,000 円(100,000 クレジット)から 1,000 円単位で、税は決済時に加算されます。残高が減ったらメールでお知らせします。料金の詳細

はじめ方

  1. Google でログインし、ダッシュボードでクレジットを購入する
  2. ダッシュボードで API クライアント(client_id / client_secret)を発行する
  3. POST /oauth/token でアクセストークンを受け取り、POST /v1/judge を呼ぶ

API リファレンスとサンプルコード(curl / Python / TypeScript)

解説記事

仕組みと使い方の解説は Qiita で公開予定です: https://qiita.com/mrpepper