Документация · Эмбеддинги
Эмбеддинги
Векторы текстов для поиска по смыслу, 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_formatstringfloat(по умолчанию) — массив чисел,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-*нормированы, поэтому косинусное сходство равно скалярному произведению.