#![allow(clippy::too_many_arguments)]
#![allow(clippy::needless_range_loop)]
pub mod attention;
pub mod forward;
pub mod model;
pub mod tokenizer;
pub mod weights;
pub mod download;
pub mod error;
pub mod generate;
pub mod kv_cache;
pub mod lora_hook;
pub mod pool;
pub mod quant;
pub mod rope;
pub mod sampling;
pub mod speculative;
use std::path::PathBuf;
pub(crate) fn default_cache_dir() -> Result<PathBuf, error::InferenceError> {
if let Ok(path) = std::env::var("LATTICE_MODEL_CACHE") {
return Ok(PathBuf::from(path));
}
let home = std::env::var("HOME").map_err(|_| {
error::InferenceError::ModelNotFound(
"unable to determine cache directory; HOME and LATTICE_MODEL_CACHE are unset".into(),
)
})?;
Ok(PathBuf::from(home).join(".lattice").join("models"))
}
pub use crate::error::InferenceError;
pub use crate::model::{
BertConfig, BertModel, CrossEncoderModel, LayerTimings, ProfileTimings, QwenConfig, QwenModel,
};
pub use crate::tokenizer::{
BpeTokenizer, SentencePieceTokenizer, TokenizedInput, Tokenizer, WordPieceTokenizer,
load_tokenizer,
};