text-embedding-3-small · Kirim permintaan
Model embedding OpenAI dengan 1536 dimensi bawaan untuk pencarian semantik dan indeks basis pengetahuan. Keluaran 512 dimensi melalui dimensions juga telah diuji di APIMaster.
Model embedding OpenAI dengan 1536 dimensi bawaan untuk pencarian semantik dan indeks basis pengetahuan. Keluaran 512 dimensi melalui dimensions juga telah diuji di APIMaster.
Diverifikasi 2026-10-02: rute aktif mulai $0.02 per juta token input. Ini harga rute APIMaster, bukan harga resmi universal penyedia; kartu model terbaru menjadi acuan. Kartu model terkini
Kirim permintaan
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);
Parameter dan batas
input harus berupa string tidak kosong atau array string tidak kosong. encoding_format: float menghasilkan array angka. Jangan kirim messages, max_tokens, atau stream. Batas referensi model adalah 8192 token per teks; pecah dokumen panjang dan gunakan batch kecil. Batas dan tokenisasi dapat berbeda menurut rute.
dimensions di sini hanya dijelaskan untuk text-embedding-3-small: 1536 secara bawaan atau 512 pada contoh yang diuji. Gunakan dimensi yang sama untuk dokumen dan kueri.
Kurangi dimensi
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
Baca respons
Baca data[i].embedding dan cocokkan vektor dengan input melalui data[i].index. usage.prompt_tokens dan usage.total_tokens menunjukkan penggunaan input. Vektor tidak ditagih sebagai token teks keluaran. base64 juga telah diuji, tetapi float lebih mudah diperiksa.
Teks tunggal, batch bahasa Mandarin/Inggris, panjang vektor, dan konsistensi input berulang lolos uji langsung. Ini memverifikasi perilaku API, bukan kualitas pencarian untuk semua data.
Pencarian semantik dan RAG
Pecah dokumen menjadi bagian, buat dan simpan vektornya. Buat vektor kueri dengan model dan dimensi yang sama, urutkan berdasarkan kemiripan kosinus, lalu kirim teks yang ditemukan ke model chat terpisah. Jangan mencampur model atau dimensi dalam satu indeks; bangun ulang indeks saat mengganti model.
Pemecahan masalah
Untuk 401, periksa kunci API. Untuk 400, periksa ID model, input tidak kosong, dan parameter. Untuk 429 atau batas waktu penyedia, kurangi konkurensi dan coba lagi dengan jeda bertahap. Lihat marketplace untuk ketersediaan dan harga terkini.
