pub struct ModelRegistrar {
model_repo: Arc<dyn ModelRepository>,
gguf_parser: Arc<dyn GgufParserPort>,
model_files_repo: Option<Arc<dyn ModelFilesRepositoryPort>>,
}Expand description
Implementation of the model registrar port.
This service composes over ModelRepository for persistence and
GgufParserPort for metadata extraction.
Fields§
§model_repo: Arc<dyn ModelRepository>Repository for persisting models.
gguf_parser: Arc<dyn GgufParserPort>Parser for extracting GGUF metadata.
model_files_repo: Option<Arc<dyn ModelFilesRepositoryPort>>Repository for persisting model file metadata.
Implementations§
Source§impl ModelRegistrar
impl ModelRegistrar
Sourcepub fn new(
model_repo: Arc<dyn ModelRepository>,
gguf_parser: Arc<dyn GgufParserPort>,
model_files_repo: Option<Arc<dyn ModelFilesRepositoryPort>>,
) -> Self
pub fn new( model_repo: Arc<dyn ModelRepository>, gguf_parser: Arc<dyn GgufParserPort>, model_files_repo: Option<Arc<dyn ModelFilesRepositoryPort>>, ) -> Self
Create a new model registrar.
§Arguments
model_repo- Repository for persisting modelsgguf_parser- Parser for extracting GGUF metadatamodel_files_repo- Optional repository for persisting model file metadata
Filter HuggingFace tags using a blocklist.
Removes noisy tags like gguf, arxiv:*, region:*, license:*, dataset:*.
Merge GGUF-derived tags with filtered HF tags, removing duplicates.
GGUF-derived tags are prioritized (appear first in the result).
Trait Implementations§
Source§impl ModelRegistrarPort for ModelRegistrar
impl ModelRegistrarPort for ModelRegistrar
Source§fn register_model<'life0, 'life1, 'async_trait>(
&'life0 self,
download: &'life1 CompletedDownload,
) -> Pin<Box<dyn Future<Output = Result<Model, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn register_model<'life0, 'life1, 'async_trait>(
&'life0 self,
download: &'life1 CompletedDownload,
) -> Pin<Box<dyn Future<Output = Result<Model, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Register a downloaded model in the database. Read more
Source§fn register_model_from_path<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
repo_id: &'life1 str,
commit_sha: &'life2 str,
file_path: &'life3 Path,
quantization: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<Model, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn register_model_from_path<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
repo_id: &'life1 str,
commit_sha: &'life2 str,
file_path: &'life3 Path,
quantization: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<Model, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Register a model using raw path parameters. Read more
Auto Trait Implementations§
impl Freeze for ModelRegistrar
impl !RefUnwindSafe for ModelRegistrar
impl Send for ModelRegistrar
impl Sync for ModelRegistrar
impl Unpin for ModelRegistrar
impl !UnwindSafe for ModelRegistrar
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more