Cookieを使用しています. Cookieとブラウザストレージは、ログイン状態の維持と設定の保存に使われます。許可いただいた場合は、サイトの利用状況も計測します。はいつでも変更できます。詳しくはCookieポリシーをご覧ください。

埋め込み

エンドポイント

埋め込み

POST /embeddings でテキストをベクトルに変換し、セマンティック検索やクラスタリング、重複排除、RAG に使う方法です。リクエスト形式、レスポンス、モデルの選び方、料金、エラーを説明します。OpenAI SDK の embeddings.create がそのまま動作します。

プレイグラウンドで試す

テキストをベクトルに変換し、セマンティック検索、クラスタリング、重複排除、検索拡張生成(RAG)に利用します。エンドポイントの形式は OpenAI の POST /embeddings と同じため、client.embeddings.create(...) がそのまま動作します。

POST https://api14.com/api/v1/embeddings

リクエスト

パラメーター型必須説明
modelstringはい埋め込みモデルの ID。例: openai/text-embedding-3-small。
inputstring または string[]はい埋め込み対象のテキスト。配列を渡すと、1 回のリクエストで複数の入力を埋め込めます。
dimensionsintegerいいえ出力ベクトルのサイズ。短縮に対応するモデル(text-embedding-3-* など)向け。
encoding_formatstringいいえfloat(デフォルト)または base64。
userstringいいえ独自のエンドユーザー ID。上流にそのまま渡されます。
providerobjectいいえプロバイダールーティングの設定。プロバイダールーティングを参照してください。

例

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.embeddings.create({
  "model": "openai/text-embedding-3-small",
  "input": [
    "The quick brown fox",
    "Lorem ipsum"
  ]
});
console.log(result.data.map((d) => d.embedding.length));

レスポンス

{
  "object": "list",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0023, -0.0091, 0.0154, "..."] }
  ],
  "model": "openai/text-embedding-3-small",
  "usage": { "prompt_tokens": 8, "total_tokens": 8, "cost": 0.00000016 }
}

data[i].index は、input 配列内の入力の位置に対応します。

モデルの選び方

埋め込みモデルとその価格の一覧は、API キーなしで取得できます。

curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"

異なるモデルのベクトルは比較できません。すべてのベクトルとあわせてモデル ID を保存し、モデルを切り替えるときはコーパスを再度埋め込んでください。

料金

埋め込みは、モデルの表示価格(「$ / 1M tokens」)で入力トークンごとに課金されます。各リクエストの料金は usage.cost(USD)で返され、残高から差し引かれます。料金と請求を参照してください。

ヒント

  • 入力をまとめる: 100 個の文字列を 1 回のリクエストで送ると高速で、レート制限上は 1 リクエストとして数えられます。
  • 各入力はモデルのコンテキスト長以内に収めてください。それより長いテキストは上流で拒否されます。
  • ベクトルは正規化し(ほとんどのモデルは単位長で返します)、コサイン類似度を使います。

エラー

ステータスコード発生条件
400model_required / invalid_jsonmodel がない、またはボディが JSON オブジェクトではない。
401invalid_api_keyキーがない、または無効。
402insufficient_balanceUSD 残高が $0。
403model_not_allowedキーのモデル許可リストにこのモデルが含まれていない。
404model_not_foundモデル ID が不明、または無効化されている。
429rate_limited毎分のリクエスト数を超えた。

全一覧はエラーを参照してください。