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 或上游逾時請降低併發並退避重試。渠道可用性與價格以模型廣場為準。
