Data preprocessing library for Retrieval-Augmented Generation (RAG) systems.
Project description
The framework for unified document processing pipelines.
Klovis is a modular framework for loading, cleaning, chunking and transforming heterogeneous documents for Retrieval-Augmented Generation pipelines. It provides consistent abstractions and production-ready components so that developers can build robust data ingestion workflows without dealing with low-level parsing or text normalization details.
pip install klovis
Documentation:
- Official documentation: incoming
- API reference: incoming
Discussions: Community channels will be published soon.
Why use Klovis?
Klovis provides a structured approach to transforming unstructured data into RAG-ready chunks. It helps developers build reliable preprocessing pipelines using standardized modules for each stage of document handling.
Use Klovis for:
- Consistent document ingestion. Load text, HTML, JSON, PDF, or an entire directory tree using a unified API. Integrations preserve metadata and ensure predictable output formats across sources.
- Robust text cleaning. Apply standardized cleaning pipelines including HTML stripping, Unicode normalization, emoji removal, and whitespace correction. Each cleaner is modular and composable.
- Flexible chunking strategies. Split documents using Markdown headings, character windows, paragraphs or other strategies. Merge chunks intelligently while respecting size constraints.
- Structured transformations. Convert processed chunks into Markdown or custom output structures for storage, indexing or model ingestion.
- Extensibility. Every module in Klovis inherits from a base abstraction, allowing developers to extend or replace behaviors with minimal friction.
- Reproducible pipelines. Implement deterministic preprocessing flows that remain stable across formats and document structures.
Klovis ecosystem
Although Klovis can be used as a standalone preprocessing framework, it integrates naturally with downstream components in a RAG workflow.
Pair Klovis with:
- Vector databases such as FAISS, Weaviate or Chroma for chunk storage.
- Embedding models for encoding processed text.
- LLM frameworks for querying indexed content.
- Orchestration tools for pipeline automation.
Klovis focuses exclusively on document ingestion, empowering other layers of the stack with clean, structured and consistent input.
Installation
pip install klovis
Or with Poetry:
poetry add klovis
Quick Start
from klovis.loaders import DirectoryLoader
from klovis.cleaning import HTMLCleaner, TextCleaner
from klovis.chunking import MarkdownChunker
from klovis.transforming import MarkdownTransformer
loader = DirectoryLoader(path="data/", recursive=True)
documents = loader.load()
cleaner = HTMLCleaner()
documents = cleaner.clean(documents)
chunker = MarkdownChunker(max_chunk_size=1200)
chunks = chunker.chunk(documents)
transformer = MarkdownTransformer()
output = transformer.transform(chunks)
Project structure
klovis/
base/ Base interfaces for loaders, cleaners, chunkers, transformers
loaders/ Format-specific document loaders
cleaning/ Cleaning and normalization utilities
chunking/ Document chunking strategies
transforming/ Output formatting and transformation modules
models/ Core data structures for documents and chunks
utils/ Logging and shared helpers
tests/ Test suite
Running tests
pytest
Contributing
Contributions are welcome. To contribute:
- Fork the repository.
- Create a feature branch.
- Implement your changes and update or add tests.
- Submit a pull request with a clear explanation of the modification.
License
This project is released under the MIT License.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file klovis-0.6.1.tar.gz.
File metadata
- Download URL: klovis-0.6.1.tar.gz
- Upload date:
- Size: 316.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.10.12 Linux/6.5.0-1027-oem
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7be2eedfe9b5abe48b36ffc399652278f54ec54be7ce98ae0168ce17c3e47abf
|
|
| MD5 |
a98bf32c60f5ae6796e37235c234069d
|
|
| BLAKE2b-256 |
5174b09d73fa2b87d85bce6358dafb3962597800b7948e6cbaec5561591983b5
|
File details
Details for the file klovis-0.6.1-py3-none-any.whl.
File metadata
- Download URL: klovis-0.6.1-py3-none-any.whl
- Upload date:
- Size: 408.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.10.12 Linux/6.5.0-1027-oem
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0827bd257b093e35016f8b5e1116c2c268d4b4d64568a53eb8f5d312d9ba27ce
|
|
| MD5 |
cbfd2269b712dee73fa793beb71e7f56
|
|
| BLAKE2b-256 |
b2eb54cd55a4813fc6cbe806ec38a366aed587c0a2dd6a45552a553e97d139b9
|