Skip to main content

Loader components for the Sayou Data Platform

Project description

sayou-loader

PyPI version License Docs

Overview

The Universal Data Transport Engine for Sayou Fabric.

sayou-loader is the final mile delivery system. It abstracts the complexity of writing to external systems, providing a Unified Interface to save your Knowledge Graph, Embeddings, or Structured Records.

Whether you are saving to a local file for debugging or pushing millions of vectors to a production database, the interface remains consistent: just call process().


1. Architecture & Role

The Loader takes the Assembled Payload (Nodes, Edges, Documents) and reliably transports it to the target destination based on the selected strategy.

graph LR
    Payload[Assembled Payload] --> Pipeline[Loader Pipeline]
    
    subgraph Strategies
        File[File System]
        RDB[PostgreSQL]
        NoSQL[MongoDB]
        Graph[Neo4j]
        Search[Elasticsearch]
        Vector[ChromaDB]
    end
    
    Pipeline -->|Config Routing| Strategies

1.1. Core Features

  • Unified Write API: Switch from JSON to PostgreSQL by changing just one config string.
  • Resilience: Built-in retry logic with exponential backoff for database connections.
  • Batching: Automatically handles bulk inserts for high-throughput performance.

2. Available Strategies

sayou-loader supports the following storage backends out-of-the-box.

Category Strategy Key Description
File System file Saves as JSON, JSONL, or Pickle. Ideal for local debugging.
Graph DB neo4j Pushes Nodes and Edges via Cypher queries.
RDB postgres Maps structured attributes to Relational Tables.
NoSQL mongo Stores raw documents and metadata collections.
Vector DB chroma Upserts embeddings for semantic search.
Search Engine elasticsearch Indexes text fields for keyword search (BM25).

3. Installation

pip install sayou-loader

4. Usage

The LoaderPipeline is the entry point. You must provide a Strategy and the corresponding Configuration (credentials).

Case A: Local File (Simple)

Useful for checking the output of the Assembler during development.

from sayou.loader import LoaderPipeline

payload = {
    "nodes": [{"id": "1", "label": "Topic"}],
    "edges": [{"source": "1", "target": "2", "type": "LINK"}]
}

LoaderPipeline().process(
    data=payload,
    destination="./output/graph.json",
    strategy="file"
)

Case B: Knowledge Graph (Neo4j)

Connects to a Neo4j instance and synchronizes the graph topology.

from sayou.loader import LoaderPipeline

neo4j_config = {
    "uri": "bolt://localhost:7687",
    "user": "neo4j",
    "password": "password",
    "batch_size": 1000
}

LoaderPipeline().process(
    data=payload,
    destination="Neo4j Connection",
    strategy="neo4j",
    config=neo4j_config
)

Case C: Vector Database (Chroma)

Stores text chunks and their vector embeddings.

from sayou.loader import LoaderPipeline

chroma_config = {
    "host": "localhost",
    "port": 8000,
    "collection_name": "sayou_rag"
}

LoaderPipeline().process(
    data=payload,
    destination="ChromaDB",
    strategy="chroma",
    config=chroma_config
)

5. Configuration Keys

When using Database strategies, the config dictionary is mandatory.

  • neo4j: uri, user, password, database (optional), batch_size.
  • postgres: host, port, user, password, dbname, table_name.
  • mongo: connection_string, db_name, collection_name.
  • elasticsearch: hosts, index_name, http_auth (user, pass).
  • chroma: path (for local), host, port, collection_name.

6. License

Apache 2.0 License © 2026 Sayouzone

7. Plugin List

Plugin Example Description
File Loader
PosrgreSQL Loader
MongoDB Loader
Neo4J Loader
Chroma Loader
Elastic Search Loader

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sayou_loader-0.5.0.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sayou_loader-0.5.0-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file sayou_loader-0.5.0.tar.gz.

File metadata

  • Download URL: sayou_loader-0.5.0.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayou_loader-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e5ebd418962c445551900de7320a0b0e961bdc5305159624d4d07c094745a17c
MD5 db8fcd2323f2b31c5bd24df22b748dfe
BLAKE2b-256 fbc94aaec426868d8de32126876df827f8a8c1c0d22ff99ce0537d987b16de58

See more details on using hashes here.

File details

Details for the file sayou_loader-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: sayou_loader-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayou_loader-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0370fc20303b05e8d74bd6e0ed5b3ecb47fb0f9421c485f576afccc50a98bc71
MD5 df8ccbb55c1a6db505b7c0c208ff5daa
BLAKE2b-256 be95d39be430990e2d5a58420f92c052a815f212cb8f722448960ca746ca892a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page