Convert models between APR, SafeTensors, and GGUF formats.
From To Supported
SafeTensors APR ✅
GGUF APR ✅
APR GGUF ✅
APR SafeTensors ✅
use apr_cookbook::convert::{AprConverter, TensorData, DataType, ConversionMetadata};
// Create converter
let mut converter = AprConverter::new();
// Set metadata
converter.set_metadata(ConversionMetadata {
name: Some("my-model".to_string()),
architecture: Some("transformer".to_string()),
..Default::default()
});
// Add tensors
converter.add_tensor(TensorData {
name: "embed.weight".to_string(),
shape: vec![32000, 4096],
dtype: DataType::F16,
data: embedding_bytes,
});
// Generate APR
let apr_bytes = converter.to_apr()?;
Type Size Use Case
F324 bytes Full precision
F162 bytes Half precision
BF162 bytes Brain float
Q8_01 byte 8-bit quantized
Q4_00.5 byte 4-bit quantized
use apr_cookbook::convert::{AprConverter, ConversionFormat};
let supported = AprConverter::is_conversion_supported(
ConversionFormat::Gguf,
ConversionFormat::Apr
);
assert!(supported);
use apr_cookbook::convert::ConversionFormat;
let format = ConversionFormat::from_extension("safetensors");
assert_eq!(format, Some(ConversionFormat::SafeTensors));
let format = ConversionFormat::from_path("model.gguf");
assert_eq!(format, Some(ConversionFormat::Gguf));