Перейти к основному содержанию
POST
/
v1
/
embeddings
Создать эмбеддинги
curl --request POST \
  --url https://polza.ai/api/v1/embeddings \
  --header 'Content-Type: application/json' \
  --data '
{
  "input": "Пример текста для создания эмбеддинга",
  "model": "thenlper/gte-base",
  "encoding_format": "float",
  "dimensions": 768,
  "user": "user-123"
}
'
{
  "id": "gen_581761234567890123",
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [
        0.0023064255,
        -0.009327292,
        0.015797347
      ],
      "index": 0
    }
  ],
  "model": "thenlper/gte-base",
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8,
    "cost_rub": 0.00001,
    "cost": 0.00001
  }
}

Доступные модели

МодельIDРазмерность
text-embedding-3-largetext-embedding-3-large3072
text-embedding-3-smalltext-embedding-3-small1536

Параметры запроса

ПараметрТипОбязательныйОписание
modelstringДаID модели
inputstring/arrayДаТекст или массив текстов
encoding_formatstringНетФормат: float, base64
dimensionsintegerНетРазмерность вывода
userstringНетИдентификатор конечного пользователя

Примеры

curl -X POST "https://polza.ai/api/v1/embeddings" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-large",
    "input": ["Пример текста для поиска", "Второй пример"]
  }'

Ответ (200)

{
  "id": "emb_123456",
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [0.01, -0.02, 0.03, "..."],
      "index": 0
    },
    {
      "object": "embedding",
      "embedding": [0.03, 0.11, -0.05, "..."],
      "index": 1
    }
  ],
  "model": "text-embedding-3-large",
  "usage": {
    "prompt_tokens": 42,
    "total_tokens": 42,
    "cost_rub": 0.05,
    "cost": 0.05
  }
}

Применения

Семантический поиск

Поиск по смыслу, а не по ключевым словам

RAG

Retrieval-Augmented Generation для LLM

Кластеризация

Группировка похожих документов

Классификация

Категоризация текстов

Рекомендации

1

Нормализуйте тексты

Приведите тексты к единому формату перед получением эмбеддингов
2

Разделяйте на чанки

Оптимальный размер чанка: 200-800 токенов
3

Используйте косинусное сходство

Для сравнения эмбеддингов используйте cosine similarity или dot-product
4

Кэшируйте результаты

Сохраняйте эмбеддинги и кэшируйте повторяющиеся по хешу текста

Тело

application/json
input
обязательно

Входной текст или массив текстов для создания эмбеддингов

Пример:

"Пример текста для создания эмбеддинга"

model
string
обязательно

Идентификатор модели для создания эмбеддингов

Пример:

"thenlper/gte-base"

encoding_format
enum<string>
по умолчанию:float

Формат кодирования эмбеддингов

Доступные опции:
float,
base64
Пример:

"float"

dimensions
number

Размерность выходного эмбеддинга (если модель поддерживает). Должна быть меньше или равна максимальной размерности модели

Требуемый диапазон: x >= 1
Пример:

768

user
string

Уникальный идентификатор конечного пользователя для отслеживания и предотвращения злоупотреблений

Пример:

"user-123"

Ответ

id
string
обязательно

Уникальный идентификатор запроса

Пример:

"gen_581761234567890123"

object
enum<string>
обязательно

Тип объекта (всегда "list")

Доступные опции:
list
Пример:

"list"

data
object[]
обязательно

Массив эмбеддингов

model
string
обязательно

ID модели, которая создала эмбеддинги

Пример:

"thenlper/gte-base"

usage
object
обязательно

Информация об использовании токенов