Embedding-модели в Heli API: text-embedding-3-small и large

Эмбеддинги превращают текст в вектор чисел, по которому ищут похожие тексты: это основа 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.

text-embedding-3-small

text-embedding-3-large

Запрос

  • В 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 и другие.

Qdrant + LangChain + Heli

Когда нужны локальные эмбеддинги

Если тексты нельзя передавать во внешний API или корпус очень большой и часто переиндексируется, эмбеддинги можно считать локально открытыми моделями через sentence-transformers. Генерацию ответа при этом можно по-прежнему делать через Heli: эмбеддинги и chat-модель независимы, важно лишь индексировать и искать одной моделью.

Какую модель выбрать для RAG

Heli + RAGFlow

Python SDK + Heli

Качество поиска

  • Добавляйте в текст фрагмента заголовок документа и раздела — короткие фрагменты без контекста хуже находятся.
  • Проверяйте поиск на наборе реальных вопросов до запуска: если нужный фрагмент не попадает в первые результаты, помогут другая нарезка, модель large или гибридный поиск.

Попробуйте Heli

Ключ sk-heli- появляется после подтверждения почты. Через Google и Яндекс — сразу в кабинете.

Документация API · Модели и цены

Читайте также