pub struct Model { /* private fields */ }Expand description
The object used to interact with the model. This can be used with many varietes of models,
and as such may be created with one of:
Implementations§
Source§impl Model
impl Model
pub fn new(runner: Arc<MistralRs>) -> Self
Sourcepub async fn stream_chat_request<R: RequestLike>(
&self,
request: R,
) -> Result<Stream<'_>>
pub async fn stream_chat_request<R: RequestLike>( &self, request: R, ) -> Result<Stream<'_>>
Generate with the model (streaming).
Sourcepub async fn stream_chat_request_with_model<R: RequestLike>(
&self,
request: R,
model_id: Option<&str>,
) -> Result<Stream<'_>>
pub async fn stream_chat_request_with_model<R: RequestLike>( &self, request: R, model_id: Option<&str>, ) -> Result<Stream<'_>>
Generate with a specific model (streaming).
If model_id is None, the request is sent to the default model.
Sourcepub async fn send_chat_request<R: RequestLike>(
&self,
request: R,
) -> Result<ChatCompletionResponse>
pub async fn send_chat_request<R: RequestLike>( &self, request: R, ) -> Result<ChatCompletionResponse>
Generate with the model (non-streaming).
Sourcepub async fn send_chat_request_with_model<R: RequestLike>(
&self,
request: R,
model_id: Option<&str>,
) -> Result<ChatCompletionResponse>
pub async fn send_chat_request_with_model<R: RequestLike>( &self, request: R, model_id: Option<&str>, ) -> Result<ChatCompletionResponse>
Send a chat request to a specific model.
If model_id is None, the request is sent to the default model.
Sourcepub async fn send_raw_chat_request<R: RequestLike>(
&self,
request: R,
) -> Result<(Vec<Tensor>, Vec<u32>)>
pub async fn send_raw_chat_request<R: RequestLike>( &self, request: R, ) -> Result<(Vec<Tensor>, Vec<u32>)>
Generate with the model, returning raw logits of the first token generated.
Returns the chunks of the logits (1 or more, determined by prompt batchsize) and the tokens.
Sourcepub async fn send_raw_chat_request_with_model<R: RequestLike>(
&self,
request: R,
model_id: Option<&str>,
) -> Result<(Vec<Tensor>, Vec<u32>)>
pub async fn send_raw_chat_request_with_model<R: RequestLike>( &self, request: R, model_id: Option<&str>, ) -> Result<(Vec<Tensor>, Vec<u32>)>
Generate with a specific model, returning raw logits of the first token generated.
If model_id is None, the request is sent to the default model.
Sourcepub async fn generate_image(
&self,
prompt: impl ToString,
response_format: ImageGenerationResponseFormat,
generation_params: DiffusionGenerationParams,
) -> Result<ImageGenerationResponse>
pub async fn generate_image( &self, prompt: impl ToString, response_format: ImageGenerationResponseFormat, generation_params: DiffusionGenerationParams, ) -> Result<ImageGenerationResponse>
Generate an image using the default model.
Sourcepub async fn generate_image_with_model(
&self,
prompt: impl ToString,
response_format: ImageGenerationResponseFormat,
generation_params: DiffusionGenerationParams,
model_id: Option<&str>,
) -> Result<ImageGenerationResponse>
pub async fn generate_image_with_model( &self, prompt: impl ToString, response_format: ImageGenerationResponseFormat, generation_params: DiffusionGenerationParams, model_id: Option<&str>, ) -> Result<ImageGenerationResponse>
Generate an image using a specific model.
If model_id is None, the request is sent to the default model.
Sourcepub async fn generate_speech(
&self,
prompt: impl ToString,
) -> Result<(Arc<Vec<f32>>, usize, usize)>
pub async fn generate_speech( &self, prompt: impl ToString, ) -> Result<(Arc<Vec<f32>>, usize, usize)>
Generate audio given a (model specific) prompt.
This returns: (pcm, sampling rate, channels)
Sourcepub async fn generate_speech_with_model(
&self,
prompt: impl ToString,
model_id: Option<&str>,
) -> Result<(Arc<Vec<f32>>, usize, usize)>
pub async fn generate_speech_with_model( &self, prompt: impl ToString, model_id: Option<&str>, ) -> Result<(Arc<Vec<f32>>, usize, usize)>
Generate audio given a (model specific) prompt using a specific model.
If model_id is None, the request is sent to the default model.
This returns: (pcm, sampling rate, channels)
Sourcepub async fn generate_embeddings(
&self,
request: EmbeddingRequestBuilder,
) -> Result<Vec<Vec<f32>>>
pub async fn generate_embeddings( &self, request: EmbeddingRequestBuilder, ) -> Result<Vec<Vec<f32>>>
Generate embeddings for one or more inputs configured via an EmbeddingRequestBuilder.
Returns one embedding vector per input in the same order they were added.
Sourcepub async fn generate_embeddings_with_model(
&self,
request: EmbeddingRequestBuilder,
model_id: Option<&str>,
) -> Result<Vec<Vec<f32>>>
pub async fn generate_embeddings_with_model( &self, request: EmbeddingRequestBuilder, model_id: Option<&str>, ) -> Result<Vec<Vec<f32>>>
Generate embeddings for one or more inputs using a specific model.
If model_id is None, the request is sent to the default model.
Returns one embedding vector per input in the same order they were added.
Sourcepub async fn generate_embedding(
&self,
prompt: impl ToString,
) -> Result<Vec<f32>>
pub async fn generate_embedding( &self, prompt: impl ToString, ) -> Result<Vec<f32>>
Convenience wrapper for generating a single embedding.
Sourcepub async fn generate_embedding_with_model(
&self,
prompt: impl ToString,
model_id: Option<&str>,
) -> Result<Vec<f32>>
pub async fn generate_embedding_with_model( &self, prompt: impl ToString, model_id: Option<&str>, ) -> Result<Vec<f32>>
Convenience wrapper for generating a single embedding using a specific model.
If model_id is None, the request is sent to the default model.
Sourcepub async fn re_isq_model(&self, isq_type: IsqType) -> Result<()>
pub async fn re_isq_model(&self, isq_type: IsqType) -> Result<()>
Reapply ISQ to the model. This will be done on whatever device the model is already on.
Sourcepub async fn re_isq_model_with_model(
&self,
isq_type: IsqType,
model_id: Option<&str>,
) -> Result<()>
pub async fn re_isq_model_with_model( &self, isq_type: IsqType, model_id: Option<&str>, ) -> Result<()>
Reapply ISQ to a specific model.
If model_id is None, the request is sent to the default model.
Sourcepub async fn tokenize(
&self,
text: Either<TextMessages, String>,
tools: Option<Vec<Tool>>,
add_special_tokens: bool,
add_generation_prompt: bool,
enable_thinking: Option<bool>,
) -> Result<Vec<u32>>
pub async fn tokenize( &self, text: Either<TextMessages, String>, tools: Option<Vec<Tool>>, add_special_tokens: bool, add_generation_prompt: bool, enable_thinking: Option<bool>, ) -> Result<Vec<u32>>
Tokenize some text or messages.
toolsis only used if messages are provided.
Sourcepub async fn tokenize_with_model(
&self,
text: Either<TextMessages, String>,
tools: Option<Vec<Tool>>,
add_special_tokens: bool,
add_generation_prompt: bool,
enable_thinking: Option<bool>,
model_id: Option<&str>,
) -> Result<Vec<u32>>
pub async fn tokenize_with_model( &self, text: Either<TextMessages, String>, tools: Option<Vec<Tool>>, add_special_tokens: bool, add_generation_prompt: bool, enable_thinking: Option<bool>, model_id: Option<&str>, ) -> Result<Vec<u32>>
Tokenize some text or messages using a specific model.
If model_id is None, the request is sent to the default model.
toolsis only used if messages are provided.
Sourcepub async fn detokenize(
&self,
tokens: Vec<u32>,
skip_special_tokens: bool,
) -> Result<String>
pub async fn detokenize( &self, tokens: Vec<u32>, skip_special_tokens: bool, ) -> Result<String>
Detokenize some tokens.
Sourcepub async fn detokenize_with_model(
&self,
tokens: Vec<u32>,
skip_special_tokens: bool,
model_id: Option<&str>,
) -> Result<String>
pub async fn detokenize_with_model( &self, tokens: Vec<u32>, skip_special_tokens: bool, model_id: Option<&str>, ) -> Result<String>
Detokenize some tokens using a specific model.
If model_id is None, the request is sent to the default model.
Sourcepub fn config(&self) -> Result<MistralRsConfig, String>
pub fn config(&self) -> Result<MistralRsConfig, String>
Retrieve some information about this model.
Sourcepub fn config_with_model(
&self,
model_id: Option<&str>,
) -> Result<MistralRsConfig, String>
pub fn config_with_model( &self, model_id: Option<&str>, ) -> Result<MistralRsConfig, String>
Retrieve some information about a specific model.
If model_id is None, returns config for the default model.
Sourcepub fn max_sequence_length(&self) -> Result<Option<usize>, MistralRsError>
pub fn max_sequence_length(&self) -> Result<Option<usize>, MistralRsError>
Returns the maximum supported sequence length for this model, if applicable.
Sourcepub fn max_sequence_length_with_model(
&self,
model_id: Option<&str>,
) -> Result<Option<usize>, MistralRsError>
pub fn max_sequence_length_with_model( &self, model_id: Option<&str>, ) -> Result<Option<usize>, MistralRsError>
Returns the maximum supported sequence length for a specific model, if applicable.
If model_id is None, returns for the default model.
Sourcepub fn get_default_model_id(&self) -> Result<Option<String>, String>
pub fn get_default_model_id(&self) -> Result<Option<String>, String>
Get the current default model ID.
Sourcepub fn set_default_model_id(&self, model_id: &str) -> Result<(), String>
pub fn set_default_model_id(&self, model_id: &str) -> Result<(), String>
Set the default model ID.
Sourcepub async fn add_model(
&self,
model_id: String,
pipeline: Arc<Mutex<dyn Pipeline>>,
method: SchedulerConfig,
config: AddModelConfig,
) -> Result<(), String>
pub async fn add_model( &self, model_id: String, pipeline: Arc<Mutex<dyn Pipeline>>, method: SchedulerConfig, config: AddModelConfig, ) -> Result<(), String>
Add a new model dynamically.
Sourcepub fn unload_model(&self, model_id: &str) -> Result<(), MistralRsError>
pub fn unload_model(&self, model_id: &str) -> Result<(), MistralRsError>
Unload a model from memory (can be reloaded later).
Sourcepub async fn reload_model(&self, model_id: &str) -> Result<(), MistralRsError>
pub async fn reload_model(&self, model_id: &str) -> Result<(), MistralRsError>
Reload a previously unloaded model.
Sourcepub fn is_model_loaded(&self, model_id: &str) -> Result<bool, MistralRsError>
pub fn is_model_loaded(&self, model_id: &str) -> Result<bool, MistralRsError>
Check if a model is currently loaded.
Sourcepub fn list_models_with_status(
&self,
) -> Result<Vec<(String, ModelStatus)>, MistralRsError>
pub fn list_models_with_status( &self, ) -> Result<Vec<(String, ModelStatus)>, MistralRsError>
List all models with their status (Loaded, Unloaded, Reloading).
Auto Trait Implementations§
impl Freeze for Model
impl RefUnwindSafe for Model
impl Send for Model
impl Sync for Model
impl Unpin for Model
impl UnwindSafe for Model
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
§impl<T> Downcast for Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.