APIMaster.ai

text-embedding-3-small · リクエストを送る

標準で1536次元を返すOpenAIの埋め込みモデルです。意味検索とナレッジベースの索引作成に適しています。APIMasterではdimensionsによる512次元の出力も実測済みです。

標準で1536次元を返すOpenAIの埋め込みモデルです。意味検索とナレッジベースの索引作成に適しています。APIMasterではdimensionsによる512次元の出力も実測済みです。

2026-10-02確認:稼働中の経路は入力100万tokensあたり$0.02からです。APIMasterの経路価格であり、提供元の一律公式価格ではありません。最新のモデルカードを優先してください。 最新のモデルカード

リクエストを送る

POST /v1/embeddings · model: text-embedding-3-small

cURL

export APIMASTER_API_KEY="YOUR_APIMASTER_API_KEY"
curl --fail-with-body "https://apimaster.ai/v1/embeddings" \
  -H "Authorization: Bearer $APIMASTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "text-embedding-3-small", "input": "Semantic search retrieves related documents.", "encoding_format": "float"}'

Python · OpenAI SDK

pip install openai
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["APIMASTER_API_KEY"],
    base_url="https://apimaster.ai/v1",
)
result = client.embeddings.create(
    model="text-embedding-3-small",
    input=["Semantic search retrieves related documents.", "猫在窗边休息。"],
    encoding_format="float",
)
for item in result.data:
    print(item.index, len(item.embedding))  # 1536
print(result.usage.prompt_tokens)

JavaScript · Node.js

const response = await fetch("https://apimaster.ai/v1/embeddings", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APIMASTER_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "text-embedding-3-small",
    input: ["Semantic search retrieves related documents.", "猫在窗边休息。"],
    encoding_format: "float",
  }),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
console.log(result.data.map((item) => [item.index, item.embedding.length]));
console.log(result.usage.prompt_tokens);

パラメーターと制限

inputには空でない文字列、または空でない文字列の配列を指定します。encoding_format: floatで数値配列を取得できます。messages、max_tokens、streamは送信しません。モデルの参考上限はテキストごとに8192 tokensです。長い文書は分割し、バッチを小さくしてください。制限やトークン化は経路によって異なる場合があります。

ここでdimensionsを案内するのはtext-embedding-3-smallのみです。標準は1536次元で、512次元も検証済みです。文書とクエリには同じ次元数を使ってください。

次元を減らす

compact = client.embeddings.create(
    model="text-embedding-3-small",
    input="Semantic search retrieves related documents.",
    encoding_format="float",
    dimensions=512,
)
print(len(compact.data[0].embedding))  # 512

応答を読む

data[i].embeddingを読み、data[i].indexで入力に対応付けます。usage.prompt_tokensとusage.total_tokensは入力使用量です。ベクトルは生成テキストではないため出力tokensとして課金されません。base64も検証済みですが、floatの方が確認しやすい形式です。

単一入力、中国語・英語のバッチ、ベクトル長、同一入力の一貫性を実際のAPIで検証しました。API動作の検証であり、あらゆるデータの検索品質を保証するものではありません。

意味検索とRAG

文書を分割して各部分のベクトルを作成・保存します。同じモデルと次元数でクエリをベクトル化し、コサイン類似度で順位付けして、検索したテキストを別のチャットモデルに渡します。異なるモデルや次元数を同じ索引に混在させないでください。モデル変更時は索引を再作成します。

トラブルシューティング

401はAPIキーを確認します。400はモデルID、空でないinput、パラメーターを確認します。429や上流のタイムアウトでは同時リクエスト数を減らし、待機時間を増やして再試行します。経路の稼働状況と価格はモデル広場で確認してください。

次のステップと参考資料