Документация · Эмбеддинги

Эмбеддинги

Векторы текстов для поиска по смыслу, RAG, кластеризации и рекомендаций. Формат OpenAI /v1/embeddings.

POST/v1/embeddings

Эмбеддинг — это вектор чисел, который описывает смысл текста. Близкие по смыслу тексты получают близкие векторы, поэтому их сравнивают косинусным сходством. Подробно о том, зачем это нужно, — на странице Эмбеддинги. Модели и цены — в /v1/models?type=embedding.

from openai import OpenAI

client = OpenAI(base_url="https://sujik.ru/v1", api_key="sk-sujik-...")

result = client.embeddings.create(
    model="text-embedding-3-small",
    input=["Как вернуть товар?", "Условия возврата и обмена"],
)
vectors = [item.embedding for item in result.data]
print(len(vectors[0]), result.usage.total_tokens)

Тело запроса

modelstringобязательный
id из /v1/models?type=embedding.
inputstring | string[]обязательный
Текст или массив текстов, до 2048 штук за запрос. Пустые строки не принимаются. Массивы токенов не поддерживаются.
dimensionsinteger
Длина вектора, если модель умеет её менять (в supported_parameters есть dimensions). Короткий вектор занимает меньше места в базе.
encoding_formatstring
float (по умолчанию) — массив чисел, base64 — float32 в base64, так ответ меньше.
{
  "object": "list",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456, 0.0789, …] },
    { "object": "embedding", "index": 1, "embedding": [0.0098, -0.0411, 0.0802, …] }
  ],
  "model": "text-embedding-3-small",
  "usage": { "prompt_tokens": 14, "total_tokens": 14 }
}
  • Оплата — только за входные токены из usage, по цене модели со скидкой API. При ошибке модели заряды возвращаются.
  • Эмбеддинги оплачиваются с баланса: бесплатные лимиты и подписки на них не расходуются.
  • Векторы одной модели сравнивайте только между собой: у разных моделей разные пространства.
  • Векторы text-embedding-3-* нормированы, поэтому косинусное сходство равно скалярному произведению.
Embeddings API: векторы текста как у OpenAI | SUJIK AI