Эмбеддинги превращают текст в вектор чисел, по которому ищут похожие тексты: это основа RAG, семантического поиска, дедупликации и кластеризации. В Heli эмбеддинги доступны через эндпоинт /v1/embeddings в формате OpenAI, с тем же ключом sk-heli-, что и чат-модели.
Какие модели есть
- openai/text-embedding-3-small — вектор длиной 1536. Хороший баланс качества и стоимости для большинства задач поиска, в том числе на русском.
- openai/text-embedding-3-large — вектор длиной 3072. Выше качество поиска на сложных и смешанных корпусах, но векторы больше и дороже хранить.
- Названия text-embedding-3-small и text-embedding-3-large без префикса тоже принимаются как алиасы.
- Актуальный список — GET /v1/models: у моделей эмбеддингов поле kind равно embeddings.
Запрос
- В input можно передать список строк — так индексация идёт пакетами, а не по одному запросу на фрагмент.
- Модели text-embedding-3 поддерживают параметр dimensions: например, dimensions=512 даёт более короткий вектор, что экономит место в векторной базе ценой небольшой потери качества.
- Слишком длинный фрагмент не поместится в лимит модели — режьте документы на части до индексации.
python
from openai import OpenAI
client = OpenAI(base_url="https://getheli.ru/v1", api_key=os.environ["HELI_API_KEY"])
resp = client.embeddings.create(
model="openai/text-embedding-3-small",
input=["Как оплатить API в рублях?", "Где взять ключ sk-heli-?"],
)
vectors = [item.embedding for item in resp.data]
print(len(vectors), len(vectors[0])) # 2 1536Как хранить векторы
- Сохраняйте вместе с вектором название модели и размерность: векторы разных моделей несравнимы, при смене модели корпус придётся переиндексировать.
- Векторы моделей text-embedding-3 нормированы на длину 1, поэтому косинусная близость совпадает со скалярным произведением.
- Для поиска подойдёт любая векторная база: Qdrant, pgvector в Postgres, Chroma и другие.
Когда нужны локальные эмбеддинги
Если тексты нельзя передавать во внешний API или корпус очень большой и часто переиндексируется, эмбеддинги можно считать локально открытыми моделями через sentence-transformers. Генерацию ответа при этом можно по-прежнему делать через Heli: эмбеддинги и chat-модель независимы, важно лишь индексировать и искать одной моделью.
Качество поиска
- Добавляйте в текст фрагмента заголовок документа и раздела — короткие фрагменты без контекста хуже находятся.
- Проверяйте поиск на наборе реальных вопросов до запуска: если нужный фрагмент не попадает в первые результаты, помогут другая нарезка, модель large или гибридный поиск.
Попробуйте Heli
Ключ sk-heli- появляется после подтверждения почты. Через Google и Яндекс — сразу в кабинете.