DeepInfra Embeddings — 텍스트를 벡터로 바꾸기
DeepInfra Embeddings — 텍스트를 벡터로 바꾸기
문장을 숫자 벡터로 바꿔서 유사도 검색이나 RAG(검색 증강 생성)에 쓰고 싶을 때가 있어요. DeepInfra는 OpenAI 호환 임베딩 API를 제공해서, 모든 임베딩 모델을 같은 방식으로 호출할 수 있어요. 엔드포인트는 아래와 같아요.
POST https://api.deepinfra.com/v1/openai/embeddings
예시
Python에서 텍스트 한 개를 임베딩하는 가장 간단한 예시예요.
from openai import OpenAI
openai = OpenAI(
api_key="$DEEPINFRA_TOKEN",
base_url="https://api.deepinfra.com/v1/openai",
)
input_text = "The food was delicious and the waiter..."
# Or a list: ["hello", "world"]
embeddings = openai.embeddings.create(
model="Qwen/Qwen3-Embedding-8B",
input=input_text,
encoding_format="float"
)
print(embeddings.data[0].embedding)
print(embeddings.usage.prompt_tokens)
JavaScript로도 동일하게 호출돼요.
import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://api.deepinfra.com/v1/openai",
apiKey: "$DEEPINFRA_TOKEN",
});
const input = "The quick brown fox jumped over the lazy dog";
// Or an array: ["hello", "world"]
const embedding = await openai.embeddings.create({
model: "Qwen/Qwen3-Embedding-8B",
input: input,
encoding_format: "float",
});
console.log(embedding.data[0].embedding);
console.log(embedding.usage.prompt_tokens);
curl로 확인하면 이렇게 돼요.
curl "https://api.deepinfra.com/v1/openai/embeddings" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEEPINFRA_TOKEN" \
-d '{
"input": "The food was delicious and the waiter...",
"model": "Qwen/Qwen3-Embedding-8B",
"encoding_format": "float"
}'
배치 임베딩
input에 배열을 넘기면 한 번의 요청으로 여러 텍스트를 임베딩할 수 있어요.
embeddings = openai.embeddings.create(
model="Qwen/Qwen3-Embedding-8B",
input=["Hello", "World", "How are you?"],
encoding_format="float"
)
for i, item in enumerate(embeddings.data):
print(f"Text {i}: {item.embedding[:5]}...") # First 5 dims
지원 파라미터
| 파라미터 | 설명 |
|---|---|
model |
임베딩 모델 이름 |
input |
문자열 또는 문자열 배열 |
encoding_format |
float만 지원 |
사용 가능한 모델
모든 임베딩 모델을 둘러볼 수 있어요 — Qwen3 Embedding, BAAI/bge, sentence-transformers 등이 포함돼요.