Эмбеддинг — это представление текста числами. Модель эмбеддингов не отвечает на вопросы и ничего не пишет: она переводит переданный текст в вектор — длинный список чисел, в котором зашифрован смысл написанного.
Смысл этой затеи в том, что расстояние между векторами отражает близость по смыслу. «Как вернуть товар» и «условия возврата покупки» состоят из разных слов, но их векторы окажутся рядом. Поэтому эмбеддинги — основа поиска по смыслу, а не по совпадению слов.
- Поиск по документации и базе знаний, когда пользователь спрашивает своими словами.
- Ответы по своим данным: подходящие куски документов находятся по эмбеддингам и подставляются в запрос к текстовой модели.
- Классификация и кластеризация — разложить обращения по темам, найти дубликаты.
- Рекомендации похожих товаров, статей, вакансий.
Эндпоинт — /v1/embeddings. Обязательных полей два: model и input с текстом.
curl "https://api.proxyapi.ru/v1/embeddings" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <КЛЮЧ>" \ -d '{ "model": "openai/text-embedding-3-small", "input": "Как вернуть товар" }'
Вектор приходит в data[0].embedding — массивом чисел. Его длина называется размерностью и у каждой модели своя: от нескольких сотен до нескольких тысяч.
{ "data": [ {"index": 0, "embedding": [-0.0142, 0.0311, -0.0078, "..."]} ], "usage": {"prompt_tokens": 5, "total_tokens": 5} }
В input можно передать массив строк — это заметно быстрее, чем отправлять их по одной. Векторы вернутся в том же порядке, а поле index подскажет, какой к чему относится.
{ "model": "openai/text-embedding-3-small", "input": ["Как вернуть товар", "Сроки доставки", "Способы оплаты"] }
Сам по себе вектор бесполезен — он нужен для сравнения. Обычная схема такая: заранее посчитать эмбеддинги всех документов и сложить их в хранилище, а при запросе пользователя посчитать эмбеддинг вопроса и найти ближайшие к нему. Близость измеряется косинусной мерой, а хранилищем служит либо векторная база данных, либо обычная база с расширением для векторов.
Сравнивать между собой можно только векторы, посчитанные одной и той же моделью. При смене модели эмбеддингов всю коллекцию придётся пересчитать заново.
Оплачиваются только входные токены — ответа как такового модель не порождает. Поэтому эмбеддинги стоят в разы дешевле генерации текста, и посчитать их для большого архива документов обычно вполне подъёмно.
- Генерация текста — вторая половина схемы с ответами по своим данным.
- Пакетная обработка — как посчитать эмбеддинги для большого объёма дешевле.
Частые вопросы
Что такое эмбеддинг простыми словами?
Это перевод текста в набор чисел, устроенный так, что близкие по смыслу тексты получают близкие наборы. Благодаря этому смысловую близость можно посчитать арифметически, не сравнивая слова.
Можно ли сравнивать векторы, посчитанные разными моделями?
Нет. У каждой модели своё пространство векторов, и числа из разных моделей несопоставимы. При переходе на другую модель коллекцию нужно пересчитать целиком.
Сколько текстов можно отправить в одном запросе?
В поле input допускается массив строк. Практический предел задают ограничение на длину входных данных у модели и размер запроса, поэтому большие объёмы обычно разбивают на части.
Нужна ли отдельная векторная база данных?
Для небольшой коллекции достаточно хранить векторы рядом с данными и сравнивать их в коде. Векторная база или расширение к обычной базе нужны, когда документов много и поиск должен быть быстрым.
Последняя редакция: 3 сентября 2026 г.