Expand description
Traits in Swiftide allow for easy extendability
All steps defined in the indexing pipeline and the generic transformers can also take a trait. To bring your own transformers, models and loaders, all you need to do is implement the trait and it should work out of the box.
Traitsยง
- Batchable
Transformer  - Transforms batched single nodes into streams of nodes
 - Chunker
Transformer  - Turns one node into many nodes
 - DynClone
 - This trait is implemented by any type that implements [
std::clone::Clone]. - Embedding
Model  - Embeds a list of strings and returns its embeddings. Assumes the strings will be moved.
 - Loader
 - Starting point of a stream
 - Node
Cache  - Caches nodes, typically by their path and hash Recommended to namespace on the storage
 - Persist
 - Persists nodes
 - Simple
Prompt  - Given a string prompt, queries an LLM
 - Sparse
Embedding Model  - Embeds a list of strings and returns its embeddings. Assumes the strings will be moved.
 - Transformer
 - Transforms single nodes into single nodes
 - With
Batch Indexing Defaults  - Allows for passing defaults from the pipeline to the batch transformer Required for batch transformers as at least a marker, implementation is not required
 - With
Indexing Defaults  - Allows for passing defaults from the pipeline to the transformer Required for batch transformers as at least a marker, implementation is not required