pub mod chat;
pub mod crossencoder;
pub mod encoder;
pub mod errors;
pub mod llm;
pub mod memory;
pub mod sampler_config;
pub mod template;
pub mod tokenizer;
pub mod tool_calling;
pub fn send_llamacpp_logs_to_tracing() {
llama_cpp_2::send_logs_to_tracing(llama_cpp_2::LogOptions::default().with_logs_enabled(true));
}
#[cfg(test)]
pub mod test_utils {
use crate::llm::{get_model, Model};
use std::sync::{Arc, Once};
static INIT: Once = Once::new();
pub fn init_test_tracing() {
INIT.call_once(|| {
tracing_subscriber::fmt()
.with_max_level(tracing::Level::TRACE)
.with_timer(tracing_subscriber::fmt::time::uptime())
.with_span_events(tracing_subscriber::fmt::format::FmtSpan::CLOSE)
.try_init()
.ok();
});
}
pub fn test_model_path() -> String {
std::env::var("TEST_MODEL").unwrap_or_else(|_| "model.gguf".to_string())
}
pub fn test_embeddings_model_path() -> String {
std::env::var("TEST_EMBEDDINGS_MODEL").unwrap_or_else(|_| "embeddings.gguf".to_string())
}
pub fn test_crossencoder_model_path() -> String {
std::env::var("TEST_CROSSENCODER_MODEL").unwrap_or_else(|_| "crossencoder.gguf".to_string())
}
pub fn test_mmproj_path() -> String {
std::env::var("TEST_MMPROJ").unwrap_or_else(|_| "mmproj.gguf".to_string())
}
pub fn test_vision_model_path() -> String {
std::env::var("TEST_VISION_MODEL").unwrap_or_else(|_| "vision-model.gguf".to_string())
}
pub fn load_test_model() -> Arc<Model> {
let path = test_model_path();
Arc::new(
get_model(&path, true, None)
.unwrap_or_else(|e| panic!("Failed to load test model from {}: {:?}", path, e)),
)
}
pub fn load_embeddings_model() -> Arc<Model> {
let path = test_embeddings_model_path();
Arc::new(
get_model(&path, false, None).unwrap_or_else(|e| {
panic!("Failed to load embeddings model from {}: {:?}", path, e)
}),
)
}
pub fn load_crossencoder_model() -> Arc<Model> {
let path = test_crossencoder_model_path();
Arc::new(
get_model(&path, false, None).unwrap_or_else(|e| {
panic!("Failed to load crossencoder model from {}: {:?}", path, e)
}),
)
}
}