쿠키를 사용합니다. 쿠키와 브라우저 저장소는 로그인 상태를 유지하고 환경설정을 기억합니다. 동의하시면 사이트 이용 방식도 측정합니다. 언제든지 할 수 있습니다. 자세한 내용은 쿠키 정책을 참고하세요.

임베딩

엔드포인트

임베딩

POST /embeddings로 텍스트를 벡터로 바꿔 의미 검색, 클러스터링, RAG에 활용하는 방법을 설명합니다. 요청 파라미터, 응답 형식, 모델 선택 기준, 가격, 사용 팁, 오류를 다룹니다. 모델별 가격을 비교해 고를 수 있습니다.

플레이그라운드에서 사용해 보기

텍스트를 벡터로 변환해 의미 검색, 클러스터링, 중복 제거, 검색 증강 생성(RAG)에 사용하세요. 이 엔드포인트는 OpenAI의 POST /embeddings와 형식이 같으므로 client.embeddings.create(...)가 그대로 동작합니다.

POST https://api14.com/api/v1/embeddings

요청

파라미터타입필수설명
modelstring예임베딩 모델 ID. 예: openai/text-embedding-3-small.
inputstring 또는 string[]예임베딩할 텍스트. 배열을 전달하면 한 요청으로 여러 입력을 임베딩합니다.
dimensionsinteger아니요출력 벡터 크기. 축소를 지원하는 모델(예: text-embedding-3-*)용입니다.
encoding_formatstring아니요float(기본값) 또는 base64.
userstring아니요업스트림으로 전달되는 자체 최종 사용자 ID.
providerobject아니요제공자 라우팅 선호 설정. 제공자 라우팅을 참고하세요.

예제

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api14.com/api/v1",
  apiKey: process.env.API14_API_KEY,
});

const result = await client.embeddings.create({
  "model": "openai/text-embedding-3-small",
  "input": [
    "The quick brown fox",
    "Lorem ipsum"
  ]
});
console.log(result.data.map((d) => d.embedding.length));

응답

{
  "object": "list",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0023, -0.0091, 0.0154, "..."] }
  ],
  "model": "openai/text-embedding-3-small",
  "usage": { "prompt_tokens": 8, "total_tokens": 8, "cost": 0.00000016 }
}

data[i].index는 input 배열에서 해당 입력의 위치와 일치합니다.

모델 선택

API 키 없이 임베딩 모델과 가격 목록을 조회할 수 있습니다.

curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"

서로 다른 모델의 벡터는 비교할 수 없습니다. 모든 벡터와 함께 모델 ID를 저장하고, 모델을 바꾸면 코퍼스를 다시 임베딩하세요.

가격

임베딩은 모델에 표시된 가격("$ / 1M tokens")으로 입력 토큰당 과금됩니다. 각 요청의 비용은 usage.cost(USD)로 반환되고 잔액에서 차감됩니다. 요금 및 결제를 참고하세요.

팁

  • 입력을 배치로 묶으세요. 문자열 100개를 한 요청으로 보내면 더 빠르고 속도 제한에서도 요청 1건으로 계산됩니다.
  • 각 입력은 모델의 컨텍스트 길이 이내로 유지하세요. 더 긴 텍스트는 업스트림에서 거부됩니다.
  • 벡터를 정규화(대부분의 모델은 이미 단위 길이로 반환)하고 코사인 유사도를 사용하세요.

오류

상태코드발생 조건
400model_required / invalid_jsonmodel이 없거나 본문이 JSON 객체가 아닙니다.
401invalid_api_key키가 없거나 유효하지 않습니다.
402insufficient_balanceUSD 잔액이 $0입니다.
403model_not_allowed키의 모델 허용 목록에 이 모델이 없습니다.
404model_not_found알 수 없거나 비활성화된 모델 ID입니다.
429rate_limited분당 요청 수를 초과했습니다.

전체 목록: 오류.