Skip to Content

Модель эмбеддингов (Embedding Model)

Описание

Компоненты моделей встраивания в конструкторе генерируют текстовые эмбеддинги (векторные представления), используя указанную большую языковую модель (LLM).

Langflow включает в себя базовый компонент Embedding Model, который имеет встроенную поддержку некоторых LLM. Кроме того, вместо базового компонента Embedding Model вы можете использовать любую дополнительную модель встраивания.

component24

Как это работает в потоке

Используйте компоненты моделей встраивания в любом месте потока, где требуется генерация эмбеддингов.

В данном примере показано, как создать систему семантического поиска. Этот поток загружает текстовый файл, разбивает его на фрагменты (чанки), генерирует эмбеддинги для каждого фрагмента и сохраняет их в векторное хранилище.

Пошаговая настройка

  1. Загрузка данных: Добавьте компонент Read File и выберите текстовый файл (например, PDF) для тестирования.

  2. Выбор модели: Добавьте базовый компонент Embedding Model и укажите API-ключ (напрямую или через глобальную переменную).

    ℹ️

    Если нужного провайдера нет в списке, используйте дополнительные модели из раздела Bundles, например Hugging Face Embeddings Inference.

  3. Разделение текста: Добавьте компонент Split Text, чтобы разбить текст на мелкие части для эффективной обработки.

  4. Векторное хранилище: Добавьте компонент векторной базы данных, например Chroma DB, для сохранения эмбеддингов и выполнения поиска по сходству.

Соединение компонентов

  • Соедините выход Loaded Files (Read File) с входом Data or DataFrame (Split Text).
  • Соедините выход Chunks (Split Text) с входом Ingest Data (векторное хранилище).
  • Соедините выход Embeddings (Embedding Model) с входом Embedding (векторное хранилище).

Настройка поиска (Query)

  • Добавьте компоненты Chat Input и Chat Output.
  • Подключите Chat Input к входу Search Query векторного хранилища.
  • Подключите выход Search Results хранилища к Chat Output.

Результат: Откройте Playground и введите запрос. Система найдет и выведет фрагменты текста, наиболее близкие по смыслу к вашему вопросу.

Параметры компонента

Следующие параметры относятся к базовому компоненту Embedding Model. Другие компоненты моделей встраивания могут иметь дополнительные или отличающиеся параметры.

Некоторые параметры по умолчанию скрыты в визуальном редакторе. Вы можете изменить все параметры через меню component1Controls (Управление) в заголовке компонента.

Название (Name)Отображаемое имяТипОписание (Description)
providerModel ProviderListВходной параметр. Выберите провайдера модели встраивания.
modelModel NameListВходной параметр. Выберите конкретную модель встраивания для использования.
api_keyOpenAI API KeySecret [String]Входной параметр. API-ключ, необходимый для аутентификации у провайдера.
api_baseAPI Base URLStringВходной параметр. Базовый URL для API. Оставьте пустым для использования значения по умолчанию.
dimensionsDimensionsIntegerВходной параметр. Количество измерений для выходных эмбеддингов.
chunk_sizeChunk SizeIntegerВходной параметр. Размер фрагментов текста для обработки. По умолчанию: 1000.
request_timeoutRequest TimeoutFloatВходной параметр. Время ожидания для API-запросов.
max_retriesMax RetriesIntegerВходной параметр. Максимальное количество попыток повтора запроса. По умолчанию: 3.
show_progress_barShow Progress BarBooleanВходной параметр. Определяет, нужно ли отображать индикатор выполнения во время генерации эмбеддингов.
model_kwargsModel KwargsDictionaryВходной параметр. Дополнительные именованные аргументы для передачи в модель.
embeddingsEmbeddingsEmbeddingsВыходной параметр. Экземпляр для генерации эмбеддингов с использованием выбранного провайдера.

Дополнительные модели встраивания

Если ваш провайдер или конкретная модель не поддерживаются базовым компонентом Embedding Model, вы можете заменить его любым другим компонентом, который генерирует эмбеддинги. Чтобы найти такие компоненты, загляните в раздел Bundles (Наборы) или воспользуйтесь поиском (Search) по названию нужного вам провайдера.

Связка моделей с векторными хранилищами

По своей сути векторные данные имеют решающее значение для приложений на базе LLM, таких как чат-боты и агенты.

Хотя LLM можно использовать саму по себе для обычного чата и простых задач, вы можете вывести свое приложение на новый уровень, добавив чувствительность к контексту (например, через RAG) и поддержку пользовательских наборов данных (таких как внутренние бизнес-данные). Для этого часто требуется интеграция векторных баз данных и векторного поиска, которые обеспечивают дополнительный контекст и позволяют формировать содержательные запросы.

Langflow включает в себя компоненты векторных хранилищ, которые могут считывать и записывать векторные данные, включая:

  • Хранилище эмбеддингов;
  • Поиск по сходству;
  • Обходы Graph RAG;
  • Выделенные поисковые инстансы, такие как OpenSearch.

Из-за их взаимозависимости компоненты векторного хранилища, языковой модели и модели встраивания обычно используются в одном потоке или в серии зависимых потоков. Чтобы найти доступные компоненты векторных хранилищ, изучите раздел Bundles или воспользуйтесь поиском по вашему провайдеру векторных баз данных.