APIMaster.ai

text-embedding-3-small · 傳送請求

OpenAI 文字向量模型,預設回傳 1536 維向量,適合語意搜尋與知識庫索引。APIMaster 已實測透過 dimensions 參數回傳 512 維向量。

OpenAI 文字向量模型,預設回傳 1536 維向量,適合語意搜尋與知識庫索引。APIMaster 已實測透過 dimensions 參數回傳 512 維向量。

2026-10-02 核查:在售渠道每百萬輸入 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;長文件請分段並控制批次大小。限制與分詞方式可能依渠道而異。

此處僅為 text-embedding-3-small 提供 dimensions 用法:預設 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 行為,不代表所有資料集的檢索品質。

語意搜尋與 RAG

將文件分段,產生並儲存每段向量;使用相同模型與維度產生查詢向量,按餘弦相似度排序,再將檢索文字交給另一個聊天模型。不同模型或維度的向量不可混用同一索引;更換模型時需重建索引。

常見問題

401 請檢查 API Key;400 請檢查模型 ID、非空 input 與選用參數;429 或上游逾時請降低併發並退避重試。渠道可用性與價格以模型廣場為準。

下一步與參考資料