text-embedding-3-small · 요청 보내기
기본 1536차원 벡터를 반환하는 OpenAI 임베딩 모델로, 의미 검색과 지식베이스 인덱싱에 적합합니다. APIMaster에서 dimensions를 통한 512차원 출력도 테스트했습니다.
기본 1536차원 벡터를 반환하는 OpenAI 임베딩 모델로, 의미 검색과 지식베이스 인덱싱에 적합합니다. 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입니다. 긴 문서는 나누고 배치 크기는 작게 유지하세요. 한도와 토큰화는 경로에 따라 다를 수 있습니다.
여기서 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나 업스트림 시간 초과에는 동시 요청 수를 줄이고 대기 시간을 늘려 재시도합니다. 경로 상태와 최신 가격은 모델 마켓플레이스를 확인하세요.
