Embeddings — векторизация текста

Преобразуйте текст в числовые векторы для семантического поиска, кластеризации, рекомендаций и RAG. Эндпоинт полностью совместим с OpenAI Embeddings — те же поля и формат ответа.

Без кода — в Студии. Во вкладке Эмбеддинги ИИ-Студии можно получить вектор текста, запустить семантический поиск по своим документам и сравнить два текста по смыслу — наглядно, прямо в браузере.
ЭндпоинтPOST https://megaapi.ru/v1/embeddings
ВходСтрока или массив строк (батч до 2048 элементов)
ВыходМассив векторов data[].embedding + usage

Модели и цены

МодельРазмерностьНазначениеЦена (с наценкой)
text-embedding-3-small1536Лучшее соотношение цена/качество$0.030 / 1M токенов
text-embedding-3-large3072Высокая точность поиска$0.195 / 1M токенов
text-embedding-ada-0021536Классическая, совместимость$0.150 / 1M токенов
text-embedding-v4многоязычнаяСильная на русском и азиатских языках$0.105 / 1M токенов

Цены финальные (уже с наценкой). Полный список и тарифы — в разделе Модели и цены. Для большинства задач начните с text-embedding-3-small и переходите на -large при высоких требованиях к точности.

Размерность вектора (параметр dimensions)

Модели text-embedding-3-small (до 1536) и text-embedding-3-large (до 3072) позволяют усечь вектор параметром dimensions. Меньшая размерность экономит память и ускоряет поиск в векторной БД при небольшой потере точности. В Студии нужное значение выбирается в поле «Размерность вектора» (появляется только для моделей -3-*); для ada-002 и v4 параметр не применяется.

{
    "model": "text-embedding-3-large",
    "input": "Искусственный интеллект меняет мир",
    "dimensions": 1024
}

Запрос

POST https://megaapi.ru/v1/embeddings
Authorization: Bearer sk-...
Content-Type: application/json

{
    "model": "text-embedding-3-small",
    "input": "Искусственный интеллект меняет мир"
}

Батч (несколько текстов за раз)

Отправляйте до 2048 строк одним запросом — это снижает сетевые издержки:

{
    "model": "text-embedding-3-small",
    "input": ["первый текст", "второй текст", "третий текст"]
}

Ответ

{
    "object": "list",
    "data": [{ "object": "embedding", "index": 0,
              "embedding": [-0.0069, 0.0240, -0.0140, ...] }],
    "model": "text-embedding-3-small",
    "usage": { "prompt_tokens": 5, "total_tokens": 5 }
}

Пример: семантический поиск

Векторизуйте запрос и документы, ранжируйте по косинусной близости:

import numpy as np
from openai import OpenAI

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

def cosine(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

documents = [
    "Python — высокоуровневый язык программирования",
    "Машинное обучение требует много данных",
    "Глубокое обучение — важная ветвь ИИ",
]
query = "искусственный интеллект и обучение"

resp = client.embeddings.create(model="text-embedding-3-small", input=[query] + documents)
vecs = [d.embedding for d in resp.data]
scores = [cosine(vecs[0], v) for v in vecs[1:]]

for doc, s in sorted(zip(documents, scores), key=lambda x: -x[1]):
    print(f"{s:.4f}  {doc}")

Сценарии применения

Лучшие практики

Важные лимиты

Длина одного текстадо ~8191 токенов
Размер батчадо 2048 строк за запрос

Открыть в Студии → Полный справочник API Все модели