Создание эмбеддингов с text-embedding-3
Используйте OpenAI text-embedding-3-small/large, чтобы преобразовывать строки в векторы размерностью 1536 или 3072.
«Создание эмбеддингов с text-embedding-3» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Модели эмбеддингов OpenAI
OpenAI предлагает две модели эмбеддингов для рабочей среды:
- text-embedding-3-small — размерность 1536, низкая стоимость, высокая скорость
- text-embedding-3-large — размерность 3072, более высокое качество, меньшая скорость
Используйте малую модель в большинстве случаев, а большую — только когда качество важнее стоимости.
Ваш первый эмбеддинг
Одна строка кода SDK:
from openai import OpenAI
client = OpenAI()
resp = client.embeddings.create(
model='text-embedding-3-small',
input='Hello, world!'
)
vector = resp.data[0].embedding
print(len(vector)) # 1536Пакетное создание эмбеддингов
API поддерживает списки, что значительно быстрее последовательных одиночных вызовов:
texts = ['cat', 'dog', 'pizza', 'sushi']
resp = client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
vectors = [d.embedding for d in resp.data]
# vectors[0] is for 'cat', vectors[1] for 'dog', etc.Ограничения на количество токенов
Для каждого входного текста действует максимальное ограничение на количество токенов (8192 для text-embedding-3). Сначала длинные документы нужно разделить на фрагменты.
Уменьшение размерности
Можно запросить меньше измерений (эмбеддинги Матриошки), что удобно для экономии места:
resp = client.embeddings.create(
model='text-embedding-3-large',
input='Hello',
dimensions=512 # default would be 3072
)Стоимость
На момент написания:
- text-embedding-3-small: $0.02 за 1M токенов
- text-embedding-3-large: $0.13 за 1M токенов
Создание эмбеддингов для 1M слов стоит примерно $0.025 с малой моделью — практически бесплатно.
Создайте эмбеддинги один раз и используйте их всегда
Эмбеддинги не меняются при повторном создании, поэтому их можно вычислить один раз и сохранить. Кэширование необходимо для любой рабочей системы.
Нормализация векторов
Эмбеддинги OpenAI уже нормализованы по L2 (длина = 1). Поэтому косинусное сходство = скалярное произведение, что позволяет сэкономить вычисления:
import numpy as np
a = np.array(vec_a)
b = np.array(vec_b)
sim = np.dot(a, b) # since |a| = |b| = 1Асинхронное создание эмбеддингов
Для высокой пропускной способности используйте асинхронный клиент:
from openai import AsyncOpenAI
import asyncio
client = AsyncOpenAI()
async def embed_batch(texts):
resp = await client.embeddings.create(
model='text-embedding-3-small',
input=texts
)
return [d.embedding for d in resp.data]
vectors = asyncio.run(embed_batch(['a', 'b', 'c']))Повторная попытка при сбое
Вызовы для создания эмбеддингов, как и любые вызовы HTTP, могут завершаться сбоем. Оберните их в повторные попытки с экспоненциальной задержкой:
from tenacity import retry, wait_exponential, stop_after_attempt
@retry(wait=wait_exponential(multiplier=1, max=10), stop=stop_after_attempt(5))
def safe_embed(text):
return client.embeddings.create(model='text-embedding-3-small', input=text)Хранение эмбеддингов
Три распространённых варианта хранения:
- SQLite с расширением
sqlite-vec - Postgres с расширением
pgvector - Специализированная векторная БД (Pinecone, Qdrant, Weaviate)
Контроль стоимости
Сколько примерно стоит создать эмбеддинги для 1 миллиона слов с помощью text-embedding-3-small?
Итоги
Выберите text-embedding-3-small, объединяйте запросы в пакеты, сохраняйте векторы — и получите основу семантического поиска.
Часто задаваемые вопросы
Урок «Создание эмбеддингов с text-embedding-3» бесплатный?
Да — полный текст урока «Создание эмбеддингов с text-embedding-3» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Создание эмбеддингов с text-embedding-3»?
Используйте OpenAI text-embedding-3-small/large, чтобы преобразовывать строки в векторы размерностью 1536 или 3072. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Создание эмбеддингов с text-embedding-3»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое эмбеддинги (векторные представления)
- Создание эмбеддингов с text-embedding-3
- Косинусное сходство для поиска
- Сравнение моделей эмбеддингов (OpenAI, Cohere и OSS)