MistralClient.API.Models (mistralex_ai v0.1.0)
View SourceModels API for the Mistral AI client.
This module provides functions for managing and retrieving information about available models, including listing models, retrieving model details, and managing fine-tuned models.
Features
- List available models
- Retrieve model details
- Delete fine-tuned models
- Update model metadata
- Archive and unarchive models
- Model permission management
Usage
# List all available models
{:ok, models} = MistralClient.API.Models.list()
# Get details for a specific model
{:ok, model} = MistralClient.API.Models.retrieve("mistral-large-latest")
# Delete a fine-tuned model
{:ok, _} = MistralClient.API.Models.delete("ft:mistral-small:my-org:custom-suffix")
Summary
Functions
Archive a model.
Delete a fine-tuned model.
Check if a model exists and is available.
Filter models by type.
List all available models.
Retrieve details for a specific model.
Unarchive a model.
Update metadata for a fine-tuned model.
Types
Functions
@spec archive(model_id(), MistralClient.Client.t() | nil) :: {:ok, MistralClient.Models.ArchiveFTModelOut.t()} | {:error, Exception.t()}
Archive a model.
Archived models are not available for inference but are still accessible for management operations.
Parameters
model_id
- The ID of the model to archiveclient
- HTTP client (optional, uses default if not provided)
Examples
{:ok, model} = MistralClient.API.Models.archive("ft:mistral-small:my-org:custom-suffix")
@spec delete(model_id(), MistralClient.Client.t() | nil) :: {:ok, MistralClient.Models.DeleteModelOut.t()} | {:error, Exception.t()}
Delete a fine-tuned model.
You can only delete fine-tuned models that you own. Base models cannot be deleted.
Parameters
model_id
- The ID of the fine-tuned model to deleteclient
- HTTP client (optional, uses default if not provided)
Examples
{:ok, result} = MistralClient.API.Models.delete("ft:mistral-small:my-org:custom-suffix")
@spec exists?(model_id(), MistralClient.Client.t() | nil) :: boolean()
Check if a model exists and is available.
Parameters
model_id
- The ID of the model to checkclient
- HTTP client (optional, uses default if not provided)
Examples
true = MistralClient.API.Models.exists?("mistral-large-latest")
false = MistralClient.API.Models.exists?("non-existent-model")
@spec filter_models( [ MistralClient.Models.BaseModelCard.t() | MistralClient.Models.FTModelCard.t() ], atom() ) :: [ MistralClient.Models.BaseModelCard.t() | MistralClient.Models.FTModelCard.t() ]
Filter models by type.
Parameters
models
- List of models to filterfilter_type
- Type of filter to apply
Filter Types
:base
- Base models owned by Mistral AI:fine_tuned
- Fine-tuned models:owned
- Models owned by the current user/organization
Examples
{:ok, all_models} = MistralClient.API.Models.list()
base_models = MistralClient.API.Models.filter_models(all_models, :base)
fine_tuned = MistralClient.API.Models.filter_models(all_models, :fine_tuned)
@spec list(MistralClient.Client.t() | nil) :: {:ok, MistralClient.Models.ModelList.t()} | {:error, Exception.t()}
List all available models.
Returns a list of models that are available for use, including both base models and fine-tuned models.
Parameters
client
- HTTP client (optional, uses default if not provided)
Examples
{:ok, models} = MistralClient.API.Models.list()
# Filter for specific model types
{:ok, models} = MistralClient.API.Models.list()
base_models = Enum.filter(models, &(&1.owned_by == "mistralai"))
@spec retrieve(model_id(), MistralClient.Client.t() | nil) :: {:ok, MistralClient.Models.BaseModelCard.t() | MistralClient.Models.FTModelCard.t()} | {:error, Exception.t()}
Retrieve details for a specific model.
Parameters
model_id
- The ID of the model to retrieveclient
- HTTP client (optional, uses default if not provided)
Examples
{:ok, model} = MistralClient.API.Models.retrieve("mistral-large-latest")
{:ok, model} = MistralClient.API.Models.retrieve("ft:mistral-small:my-org:custom-suffix")
@spec unarchive(model_id(), MistralClient.Client.t() | nil) :: {:ok, MistralClient.Models.UnarchiveFTModelOut.t()} | {:error, Exception.t()}
Unarchive a model.
Makes an archived model available for inference again.
Parameters
model_id
- The ID of the model to unarchiveclient
- HTTP client (optional, uses default if not provided)
Examples
{:ok, model} = MistralClient.API.Models.unarchive("ft:mistral-small:my-org:custom-suffix")
@spec update(model_id(), update_options(), MistralClient.Client.t() | nil) :: {:ok, MistralClient.Models.BaseModelCard.t() | MistralClient.Models.FTModelCard.t()} | {:error, Exception.t()}
Update metadata for a fine-tuned model.
Parameters
model_id
- The ID of the model to updateupdates
- Map of fields to updateclient
- HTTP client (optional, uses default if not provided)
Update Options
:name
- New name for the model:description
- New description for the model:metadata
- Additional metadata
Examples
{:ok, model} = MistralClient.API.Models.update("ft:mistral-small:my-org:custom-suffix", %{
name: "My Custom Model",
description: "A model fine-tuned for my specific use case"
})