Fondant#

Fondant - фреймворк с открытым исходным кодом, который предназначен для упрощения и ускорения крупномасштабной обработки данных путем повторного использования контейнеризованных компонентов в конвейерах и средах выполнения. Пользуйтесь встроенными функциями, такими как автоматическое масштабирование, отслеживание происхождения данных и кеширование конвейеров, а также развертывайте их на платформах (управляемых), таких как Vertex AI, Sagemaker и Kubeflow Pipelines.

Fondant поставляется с библиотекой повторно используемых компонентов, которые можно использовать для создания собственного конвейера, включая компонент Vector DB для записи вложений в Vector DB.

Использование#

Коллекция Vector DB должна быть заранее создана

Конвейер загрузки данных для RAG с использованием Vector DB#

Простой конвейер загрузки может выглядеть следующим образом:

import pyarrow as pa
from fondant.pipeline import Pipeline

indexing_pipeline = Pipeline(
    name="ingestion-pipeline",
    description="Pipeline to prepare and process data for building a RAG solution",
    base_path="./fondant-artifacts",
)

# An custom implemenation of a read component. 
text = indexing_pipeline.read(
    "path/to/data-source-component",
    arguments={
        # your custom arguments 
    }
)

chunks = text.apply(
    "chunk_text",
    arguments={
        "chunk_size": 512,
        "chunk_overlap": 32,
    },
)

embeddings = chunks.apply(
    "embed_text",
    arguments={
        "model_provider": "huggingface",
        "model": "all-MiniLM-L6-v2",
    },
)

embeddings.write(
    "index_qdrant",
    arguments={
        "url": "http:localhost:6333",
        "collection_name": "some-collection-name",
    },
    cache=False,
)

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

Первый компонент представляет собой настраиваемый модуль чтения, который необходимо реализовать самостоятельно и который нельзя использовать «прямо из коробки». Подробное руководство по восстановлению этого конвейера представлено на GitHub.

Дополнительная документация#

Дополнительную информацию о создании собственных конвейеров и компонентов можно найти в документации Fondant.