BazaarLinkBazaarLink
Войти
ДокументацияAPI СсылкаSDK СсылкаАгентное использованиеAI Навыки
Содержание

Embeddings

Embeddings

Embeddings — это числовые представления текста, которые отражают семантическое значение. Они преобразуют текст в векторы (массивы чисел), которые можно использовать для ряда задач машинного обучения. BazaarLink предоставляет унифицированную конечную точку, совместимую с OpenAI Embeddings API, поэтому вы можете вызывать модели внедрения от нескольких поставщиков через один интерфейс.

Ответы Embeddings используют непрозрачный ID запроса BazaarLink, совпадающий с x-request-id; используйте его с GET /v1/generation. Нестриминговый ответ также возвращает тот же ID в x-generation-id. usage.cost — сумма в USD, списанная с клиента за этот запрос. Статистика может появиться через несколько секунд после завершения; при 404 ненадолго повторите запрос.

Что такое встраивания?

Вложения преобразуют текст в многомерные векторы, где семантически схожие тексты расположены ближе друг к другу в векторном пространстве — например, «кошка» и «котенок» будут иметь схожие вложения, а «кошка» и «самолет» будут далеко друг от друга. Эти векторные представления позволяют машинам понимать взаимосвязи между фрагментами текста, что делает их основой для многих приложений искусственного интеллекта.

Общие случаи использования

Случай использования
Описание
RAG (генерация с расширенным поиском)Создавайте системы, которые извлекают соответствующий контекст из базы знаний перед генерированием ответа — встраивания находят наиболее релевантные документы для включения в контекст LLM.
Семантический поискПреобразуйте документы и запросы во встраивания, а затем находите наиболее релевантные документы по векторному сходству — это позволяет понять смысл, а не просто сопоставить ключевые слова, что дает лучшие результаты, чем поиск по ключевым словам.
Системы рекомендацийСоздавайте вложения для элементов (продуктов, статей, видео) и предпочтений пользователя, чтобы рекомендовать похожие элементы — векторное сравнение позволяет выявить семантически связанные элементы даже без общих ключевых слов.
Кластеризация и классификацияГруппируйте похожие документы или классифицируйте текст путем анализа шаблонов встраивания — документы со схожими вложениями обычно относятся к одной и той же теме или категории.
Обнаружение дубликатовНаходите повторяющийся или почти повторяющийся контент путем сравнения сходства встраивания — это работает, даже если контент был перефразирован или переформулирован.
Обнаружение аномалийВыявляйте необычное или необычное содержимое, выявляя встраивания, которые значительно отличаются от типичного шаблона набора данных.
POST/v1/embeddings
Note
Если upstream-источник не поддерживает запрошенную модель эмбеддингов, запрос может попробовать другой доступный источник. Если подходящих источников нет, запрос вернёт ошибку.

Параметры

modelобязательно
string
Используемая модель внедрения, например. "openai/text-embedding-3-small".
inputобязательно
string | string[] | ContentItem[]
Текст для встраивания — одна строка, массив строк для одного пакетного вызова или (для моделей, которые это поддерживают) массив элементов {content:[...]}, смешивающих части text и image_url.
dimensions
integer
Запрошенный размер выходного вектора. Уважается только моделями, поддерживающими переменные размеры (например, семейство OpenAI text-embedding-3); пересылается вышестоящему поставщику как есть и игнорируется моделями, которые его не поддерживают.
encoding_format
string
Запрошенная кодировка внедрения, например «плавающее» или «base64». Пересылается вышестоящему поставщику в неизменном виде — поддержка зависит от модели.
provider
object
Unsupported. The entire object is ignored and removed before forwarding; it cannot select an upstream or price tier.

Основной запрос

from openai import OpenAI

client = OpenAI(
    base_url="https://api.bazaarlink.ai/v1",
    api_key="sk-bl-YOUR_API_KEY",
)

response = client.embeddings.create(
    model="openai/text-embedding-3-small",
    input="The quick brown fox jumps over the lazy dog",
)

print(response.data[0].embedding)  # 1536-dimensional vector

Пакетная обработка

Отправьте массив строк для встраивания нескольких текстов в один запрос — дешевле и быстрее, чем один вызов для каждого текста.

response = client.embeddings.create(
    model="openai/text-embedding-3-small",
    input=[
        "Machine learning is a subset of artificial intelligence",
        "Deep learning uses neural networks with multiple layers",
        "Natural language processing enables computers to understand text",
    ],
)

for i, item in enumerate(response.data):
    print(f"Embedding {i}: {len(item.embedding)} dimensions")

Многомодальный ввод (изображение + текст)

Модели с поддержкой ввода изображений (output_modalities включает «embeddings», а inputModalities включает «image») принимают элементы ввода в форме {content:[{type:"text",...}, {type:"image_url",...}]}, что позволяет встраивать изображение отдельно или вместе с текстом.

В зависимости от модели
Только некоторые модели внедрения принимают входные изображения — перед отправкой содержимого image_url проверьте поддерживаемые модели модальности на странице «Модели». Модели, содержащие только текст, отклонят эту форму.
import requests

response = requests.post(
    "https://api.bazaarlink.ai/v1/embeddings",
    headers={
        "Authorization": "Bearer sk-bl-YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "google/gemini-embedding-2-preview",
        "input": [{
            "content": [
                {"type": "text", "text": "A scenic boardwalk through a green meadow"},
                {"type": "image_url", "image_url": {"url": "https://example.com/boardwalk.jpg"}},
            ]
        }],
        "encoding_format": "float",
    },
)

embedding = response.json()["data"][0]["embedding"]
print(f"Embedding dimension: {len(embedding)}")

Поиск моделей внедрения

Нет специальной конечной точки для списка моделей внедрений — вызовите GET /v1/models и отфильтруйте на стороне клиента записи, выходные_модальности которых включают «внедрения», или просмотрите страницу «Модели».

Ограничения

  • Нет потоковой передачи — встраивания всегда возвращаются как полный ответ, в отличие от завершения чата.
  • Каждая модель имеет максимальную входную длину; текст, выходящий за этот предел, обрезается или отклоняется в восходящем направлении.
  • Вложения для идентичных входных данных являются детерминированными — температура или случайность не учитываются.

Передовые практики

  • Выберите модель для достижения компромисса между speed/quality и стоимостью — модели меньшего размера (например, qwen/qwen3-embedding-4b) дешевле и быстрее; более крупные (например, openai/text-embedding-3-large) обычно встраиваются с более высокой точностью.
  • Объедините несколько текстовых сообщений в один запрос вместо одного звонка на одно текстовое сообщение — меньше циклов обработки, меньше накладных расходов.
  • Кэшируйте результаты — внедрения для одних и тех же входных данных никогда не меняются, поэтому сохраняйте их, а не восстанавливайте.
  • Сравнивайте с косинусным сходством, а не с евклидовым расстоянием — оно масштабно-инвариантно и лучше работает для многомерных векторов.
  • Следите за длиной контекста каждой модели — перед встраиванием длинных документов может потребоваться разделение на фрагменты.
Поддержка
Здравствуйте! Чем мы можем помочь?
Отправьте сообщение, и мы ответим в ближайшее время.
Embeddings | BazaarLink