Référence du SDK Foundry Local Legacy

Avertissement

Cette référence s’applique aux versions antérieures du SDK Local Foundry qui dépendent de l’interface CLI locale Foundry pour la gestion des services.

Pour le nouveau développement, utilisez la référence actuelle du Kit de développement logiciel (SDK).

Le tableau suivant présente les versions du Kit de développement logiciel (SDK) où il y avait une dépendance sur l’interface CLI :

Language Package Versions dépendantes de l’interface CLI
C# Microsoft.AI.Foundry.Local 0.3.0 et versions antérieures
JavaScript foundry-local-sdk 0.5.0 et versions antérieures
Python foundry-local-sdk 0.5.1 et versions antérieures
Rust foundry-local / foundry-local-sdk 0.x

La prise en charge des versions dépendantes de l’interface CLI se termine le 31 août 2026.

Informations de référence sur Python SDK

Prerequisites

  • Installez l’interface CLI locale Foundry et vérifiez que la foundry commande est disponible sur votre PATH.
  • Utilisez Python 3.9 ou version ultérieure.

Installation

Installez le package Python :

pip install foundry-local-sdk==0.5.1

Démarrage rapide

Utilisez cet extrait de code pour vérifier que le Kit de développement logiciel (SDK) peut démarrer le service et atteindre le catalogue local.

from foundry_local import FoundryLocalManager

manager = FoundryLocalManager()
manager.start_service()

catalog = manager.list_catalog_models()
print(f"Catalog models available: {len(catalog)}")

Cet exemple montre comment imprimer un nombre non nul lorsque le service est en cours d’exécution et que le catalogue est disponible.

Références :

Classe FoundryLocalManager

La FoundryLocalManager classe fournit des méthodes pour gérer les modèles, le cache et le service Local Foundry.

Initialisation

from foundry_local import FoundryLocalManager

# Initialize and optionally bootstrap with a model
manager = FoundryLocalManager(alias_or_model_id=None, bootstrap=True)
  • alias_or_model_id: (facultatif) Alias ou ID de modèle à télécharger et charger au démarrage.
  • bootstrap: (valeur true par défaut) Si true, démarre le service s’il n’est pas en cours d’exécution et charge le modèle s’il est fourni.

Remarque sur les alias

De nombreuses méthodes décrites dans cette référence ont un alias_or_model_id paramètre dans la signature. Vous pouvez passer à la méthode un alias ou un ID de modèle en tant que valeur. L’utilisation d’un alias est la suivante :

  • Sélectionnez le meilleur modèle pour le matériel disponible. Par exemple, si un GPU Nvidia CUDA est disponible, Foundry Local sélectionne le modèle CUDA. Si un NPU pris en charge est disponible, Foundry Local sélectionne le modèle NPU.
  • Autorisez-vous à utiliser un nom plus court sans avoir à mémoriser l’ID de modèle.

Conseil / Astuce

Nous vous recommandons de passer au alias_or_model_id paramètre un alias , car lorsque vous déployez votre application, Foundry Local acquiert le meilleur modèle pour l’ordinateur de l’utilisateur final au moment de l’exécution.

Note

Si vous disposez d’un NPU Intel sur Windows, vérifiez que vous avez installé le pilote NPU Intel NPU pour une accélération NPU optimale.

Management des services

Méthode Signature Description
is_service_running() () -> bool Vérifie si le service local Foundry est en cours d’exécution.
start_service() () -> None Démarre le service local Foundry.
service_uri @property -> str Retourne l’URI du service.
endpoint @property -> str Retourne le point de terminaison de service.
api_key @property -> str Retourne la clé API (à partir d’env ou de la valeur par défaut).

Gestion du catalogue

Méthode Signature Description
list_catalog_models() () -> list[FoundryModelInfo] Répertorie tous les modèles disponibles dans le catalogue.
refresh_catalog() () -> None Actualise le catalogue de modèles.
get_model_info() (alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None Obtient les informations du modèle via l'alias ou l'ID.

Gestion du cache

Méthode Signature Description
get_cache_location() () -> str Retourne le chemin du répertoire du cache du modèle.
list_cached_models() () -> list[FoundryModelInfo] Répertorie les modèles téléchargés dans le cache local.

Gestion des modèles

Méthode Signature Description
download_model() (alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo Télécharge un modèle dans le cache local.
load_model() (alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo Charge un modèle dans le serveur d’inférence.
unload_model() (alias_or_model_id: str, force: bool = False) -> None Décharge un modèle à partir du serveur d’inférence.
list_loaded_models() () -> list[FoundryModelInfo] Répertorie tous les modèles actuellement chargés dans le service.

FoundryModelInfo

Les méthodes list_catalog_models(), list_cached_models()et list_loaded_models() retournent une liste d’objets FoundryModelInfo . Vous pouvez utiliser les informations contenues dans cet objet pour affiner davantage la liste. Vous pouvez également obtenir les informations d’un modèle directement en appelant la get_model_info(alias_or_model_id) méthode.

Ces objets contiennent les champs suivants :

Champ Type Description
alias str Alias du modèle.
id str Identifiant unique du modèle.
version str Version du modèle.
execution_provider str Accélérateur (fournisseur d’exécution) utilisé pour exécuter le modèle.
device_type DeviceType Type d’appareil du modèle : PROCESSEUR, GPU, NPU.
uri str URI du modèle.
file_size_mb int Taille du modèle sur le disque en Mo.
supports_tool_calling bool Indique si le modèle prend en charge l’appel d’outils.
prompt_template dict \| None Modèle de requête du modèle.
provider str Fournisseur du modèle (où le modèle est publié).
publisher str Publisher du modèle (qui a publié le modèle).
license str Nom de la licence du modèle.
task str Tâche du modèle. Un de chat-completions ou automatic-speech-recognition.
ep_override str \| None Remplacement du fournisseur d’exécution, s’il diffère de la valeur par défaut du modèle.

Fournisseurs d’exécution

L'un des:

  • CPUExecutionProvider - Exécution basée sur le processeur
  • CUDAExecutionProvider - Exécution du GPU NVIDIA CUDA
  • WebGpuExecutionProvider - Exécution de WebGPU
  • QNNExecutionProvider - Exécution du réseau neuronal Qualcomm (NPU)
  • OpenVINOExecutionProvider - Exécution d’Intel OpenVINO
  • NvTensorRTRTXExecutionProvider - Exécution de TensorRT NVIDIA
  • VitisAIExecutionProvider - Exécution d’AMD Vitis AI

Exemple d’utilisation

Le code suivant montre comment utiliser la FoundryLocalManager classe pour gérer les modèles et interagir avec le service Local Foundry.

from foundry_local import FoundryLocalManager

# By using an alias, the most suitable model will be selected
# to your end-user's device.
alias = "qwen2.5-0.5b"

# Create a FoundryLocalManager instance. This will start the Foundry.
manager = FoundryLocalManager()

# List available models in the catalog
catalog = manager.list_catalog_models()
print(f"Available models in the catalog: {catalog}")

# Download and load a model
model_info = manager.download_model(alias)
model_info = manager.load_model(alias)
print(f"Model info: {model_info}")

# List models in cache
local_models = manager.list_cached_models()
print(f"Models in cache: {local_models}")

# List loaded models
loaded = manager.list_loaded_models()
print(f"Models running in the service: {loaded}")

# Unload a model
manager.unload_model(alias)

Cet exemple répertorie les modèles, télécharge et charge un modèle, puis le décharge.

Références :

Intégrer avec le Kit de développement logiciel (SDK) OpenAI

Installez le package OpenAI :

pip install openai

Le code suivant montre comment intégrer le FoundryLocalManager Kit de développement logiciel (SDK) OpenAI pour interagir avec un modèle local.

import openai
from foundry_local import FoundryLocalManager

# By using an alias, the most suitable model will be downloaded
# to your end-user's device.
alias = "qwen2.5-0.5b"

# Create a FoundryLocalManager instance. This will start the Foundry
# Local service if it is not already running and load the specified model.
manager = FoundryLocalManager(alias)

# The remaining code uses the OpenAI Python SDK to interact with the local model.

# Configure the client to use the local Foundry service
client = openai.OpenAI(
    base_url=manager.endpoint,
    api_key=manager.api_key  # API key is not required for local usage
)

# Set the model to use and generate a streaming response
stream = client.chat.completions.create(
    model=manager.get_model_info(alias).id,
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
    stream=True
)

# Print the streaming response
for chunk in stream:
    if chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="", flush=True)

Cet exemple diffuse une réponse de complétion de conversation à partir du modèle local.

Références :

Informations de référence sur le Kit de développement logiciel (SDK) JavaScript

Prerequisites

  • Installez l’interface CLI locale Foundry et vérifiez que la foundry commande est disponible sur votre PATH.

Installation

Installez le package à partir de npm :

npm install foundry-local-sdk@0.5.0

Démarrage rapide

Utilisez cet extrait de code pour vérifier que le Kit de développement logiciel (SDK) peut démarrer le service et atteindre le catalogue local.

import { FoundryLocalManager } from "foundry-local-sdk";

const manager = new FoundryLocalManager();

await manager.startService();
const catalogModels = await manager.listCatalogModels();

console.log(`Catalog models available: ${catalogModels.length}`);

Cet exemple montre comment imprimer un nombre non nul lorsque le service est en cours d’exécution et que le catalogue est disponible.

Références :

Classe FoundryLocalManager

La FoundryLocalManager classe vous permet de gérer des modèles, de contrôler le cache et d’interagir avec le service Local Foundry dans les environnements de navigateur et de Node.js.

Initialisation

import { FoundryLocalManager } from "foundry-local-sdk";

const foundryLocalManager = new FoundryLocalManager();

Options disponibles :

  • host: URL de base du service local Foundry
  • fetch: (facultatif) Implémentation d’extraction personnalisée pour les environnements tels que Node.js

Remarque sur les alias

De nombreuses méthodes décrites dans cette référence ont un aliasOrModelId paramètre dans la signature. Vous pouvez passer à la méthode un alias ou un ID de modèle en tant que valeur. L’utilisation d’un alias est la suivante :

  • Sélectionnez le meilleur modèle pour le matériel disponible. Par exemple, si un GPU Nvidia CUDA est disponible, Foundry Local sélectionne le modèle CUDA. Si un NPU pris en charge est disponible, Foundry Local sélectionne le modèle NPU.
  • Autorisez-vous à utiliser un nom plus court sans avoir à mémoriser l’ID de modèle.

Conseil / Astuce

Nous vous recommandons de passer au aliasOrModelId paramètre un alias , car lorsque vous déployez votre application, Foundry Local acquiert le meilleur modèle pour l’ordinateur de l’utilisateur final au moment de l’exécution.

Note

Si vous disposez d’un NPU Intel sur Windows, vérifiez que vous avez installé le pilote NPU Intel NPU pour une accélération NPU optimale.

Management des services

Méthode Signature Description
init() (aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> Initialise le Kit de développement logiciel (SDK) et charge éventuellement un modèle.
isServiceRunning() () => Promise<boolean> Vérifie si le service local Foundry est en cours d’exécution.
startService() () => Promise<void> Démarre le service local Foundry.
serviceUrl string URL de base du service local Foundry.
endpoint string Point de terminaison de l’API (serviceUrl + /v1).
apiKey string Clé API (aucune).

Gestion du catalogue

Méthode Signature Description
listCatalogModels() () => Promise<FoundryModelInfo[]> Répertorie tous les modèles disponibles dans le catalogue.
refreshCatalog() () => Promise<void> Actualise le catalogue de modèles.
getModelInfo() (aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> Obtient les informations du modèle via l'alias ou l'ID.

Gestion du cache

Méthode Signature Description
getCacheLocation() () => Promise<string> Retourne le chemin du répertoire du cache du modèle.
listCachedModels() () => Promise<FoundryModelInfo[]> Répertorie les modèles téléchargés dans le cache local.

Gestion des modèles

Méthode Signature Description
downloadModel() (aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> Télécharge un modèle dans le cache local.
loadModel() (aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> Charge un modèle dans le serveur d’inférence.
unloadModel() (aliasOrModelId: string, force = false) => Promise<void> Décharge un modèle à partir du serveur d’inférence.
listLoadedModels() () => Promise<FoundryModelInfo[]> Répertorie tous les modèles actuellement chargés dans le service.

Exemple d’utilisation

Le code suivant montre comment utiliser la FoundryLocalManager classe pour gérer les modèles et interagir avec le service Local Foundry.

import { FoundryLocalManager } from "foundry-local-sdk";

// By using an alias, the most suitable model will be downloaded
// to your end-user's device.
// TIP: You can find a list of available models by running the
// following command in your terminal: `foundry model list`.
const alias = "qwen2.5-0.5b";

const manager = new FoundryLocalManager();

// Initialize the SDK and optionally load a model
const modelInfo = await manager.init(alias);
console.log("Model Info:", modelInfo);

// Check if the service is running
const isRunning = await manager.isServiceRunning();
console.log(`Service running: ${isRunning}`);

// List available models in the catalog
const catalog = await manager.listCatalogModels();

// Download and load a model
await manager.downloadModel(alias);
await manager.loadModel(alias);

// List models in cache
const localModels = await manager.listCachedModels();

// List loaded models
const loaded = await manager.listLoadedModels();

// Unload a model
await manager.unloadModel(alias);

Cet exemple télécharge et charge un modèle, puis répertorie les modèles mis en cache et chargés.

Références :

Intégration à OpenAI Client

Installez le package OpenAI :

npm install openai

Le code suivant montre comment intégrer le FoundryLocalManager avec le client OpenAI pour interagir avec un modèle local.

import { OpenAI } from "openai";
import { FoundryLocalManager } from "foundry-local-sdk";

// By using an alias, the most suitable model will be downloaded
// to your end-user's device.
// TIP: You can find a list of available models by running the
// following command in your terminal: `foundry model list`.
const alias = "qwen2.5-0.5b";

// Create a FoundryLocalManager instance. This will start the Foundry
// Local service if it is not already running.
const foundryLocalManager = new FoundryLocalManager();

// Initialize the manager with a model. This will download the model
// if it is not already present on the user's device.
const modelInfo = await foundryLocalManager.init(alias);
console.log("Model Info:", modelInfo);

const openai = new OpenAI({
  baseURL: foundryLocalManager.endpoint,
  apiKey: foundryLocalManager.apiKey,
});

async function streamCompletion() {
  const stream = await openai.chat.completions.create({
    model: modelInfo.id,
    messages: [{ role: "user", content: "What is the golden ratio?" }],
    stream: true,
  });

  for await (const chunk of stream) {
    if (chunk.choices[0]?.delta?.content) {
      process.stdout.write(chunk.choices[0].delta.content);
    }
  }
}

streamCompletion();

Cet exemple diffuse une réponse de complétion de conversation à partir du modèle local.

Références :

Utilisation du navigateur

Le Kit de développement logiciel (SDK) inclut une version compatible avec le navigateur, où vous devez spécifier manuellement l’URL de l’hôte :

import { FoundryLocalManager } from "foundry-local-sdk/browser";

// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry server start`
// and use the URL from the CLI output
const host = "HOST";

const manager = new FoundryLocalManager({ host });

// Note: The `init`, `isServiceRunning`, and `startService` methods
// are not available in the browser version

Note

La version du navigateur ne prend pas en charge les méthodes init, isServiceRunning, et startService. Vous devez vous assurer que le service local Foundry est en cours d’exécution avant d’utiliser le Kit de développement logiciel (SDK) dans un environnement de navigateur. Vous pouvez démarrer le service à l’aide de l’interface CLI locale Foundry : foundry server start. Vous pouvez glaner l’URL du service à partir de la sortie CLI.

Exemple d’utilisation

import { FoundryLocalManager } from "foundry-local-sdk/browser";

// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry server start`
// and use the URL from the CLI output
const host = "HOST";

const manager = new FoundryLocalManager({ host });

const alias = "qwen2.5-0.5b";

// Get all available models
const catalog = await manager.listCatalogModels();
console.log("Available models in catalog:", catalog);

// Download and load a specific model
await manager.downloadModel(alias);
await manager.loadModel(alias);

// View models in your local cache
const localModels = await manager.listCachedModels();
console.log("Cached models:", localModels);

// Check which models are currently loaded
const loaded = await manager.listLoadedModels();
console.log("Loaded models in inference service:", loaded);

// Unload a model when finished
await manager.unloadModel(alias);

Références :

Informations de référence sur le SDK C#

Prerequisites

  • Installez l’interface CLI locale Foundry et vérifiez que la foundry commande est disponible sur votre PATH.

Installation

Pour utiliser le SDK C# local Foundry, vous devez installer le package NuGet :

dotnet add package Microsoft.AI.Foundry.Local --version 0.3.0 

Remarque sur les alias

De nombreuses méthodes décrites dans cette référence ont un aliasOrModelId paramètre dans la signature. Vous pouvez passer à la méthode un alias ou un ID de modèle en tant que valeur. L’utilisation d’un alias est la suivante :

  • Sélectionnez le meilleur modèle pour le matériel disponible. Par exemple, si un GPU Nvidia CUDA est disponible, Foundry Local sélectionne le modèle CUDA. Si un NPU pris en charge est disponible, Foundry Local sélectionne le modèle NPU.
  • Autorisez-vous à utiliser un nom plus court sans avoir à mémoriser l’ID de modèle.

Conseil / Astuce

Nous vous recommandons de passer au aliasOrModelId paramètre un alias , car lorsque vous déployez votre application, Foundry Local acquiert le meilleur modèle pour l’ordinateur de l’utilisateur final au moment de l’exécution.

Note

Si vous disposez d’un NPU Intel sur Windows, vérifiez que vous avez installé le pilote NPU Intel NPU pour une accélération NPU optimale.

Énumérations

DeviceType

Représente le type d’appareil utilisé pour l’exécution du modèle.

Valeur Description
CPU (Unité centrale de traitement) Dispositif CPU
GPU (unité de traitement graphique) Appareil GPU
NPU Appareil NPU
Non valide Non valide/inconnu

ExecutionProvider

Représente le fournisseur d’exécution pour l’inférence de modèle.

Valeur Description
Non valide Fournisseur non valide
CPUExecutionProvider Exécution du processeur
WebGpuExecutionProvider Exécution de WebGPU
CUDAExecutionProvider Exécution du GPU CUDA
QNNExecutionProvider Exécution du NPU de Qualcomm
OpenVINOExecutionProvider Exécution d’Intel OpenVINO
NvTensorRTRTXExecutionProvider Exécution de NVIDIA TensorRT
VitisAIExecutionProvider Exécution d’AMD Vitis AI

La classe FoundryLocalManager

Point d’entrée principal pour la gestion des modèles, du cache et du service local Foundry.

Construction

var manager = new FoundryLocalManager();

Propriétés

Propriété Type Description
ServiceUri Uri URI de base du service local Foundry.
Point de terminaison Uri Point de terminaison de l’API (ServiceUri + /v1).
ApiKey string Clé API (par défaut : "OPENAI_API_KEY").
IsServiceRunning bool Indique si le service est en cours d’exécution.

Management des services

Démarrer le service
await manager.StartServiceAsync(CancellationToken.None);

Démarre le service Foundry Local s’il n’est pas déjà en cours d’exécution.

Arrêter le service
await manager.StopServiceAsync(CancellationToken.None);

Arrête le service local Foundry.

Démarrer et charger un modèle (assistance statique)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");

Démarre le service et charge le modèle spécifié.

Gestion du catalogue

Répertorier tous les modèles de catalogue
List<ModelInfo> models = await manager.ListCatalogModelsAsync();

Renvoie tous les modèles disponibles dans le catalogue.

Actualiser le catalogue
manager.RefreshCatalog();

Efface le catalogue mis en cache afin qu’il soit rechargé lors de l’accès suivant.

Obtenir des informations de modèle par alias ou ID
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");

Renvoie les informations du modèle ou null si elles sont introuvables.

Gestion du cache

Obtenir l’emplacement du cache
string cachePath = await manager.GetCacheLocationAsync();

Retourne le chemin d’accès au répertoire où les modèles sont mis en cache.

Répertorier les modèles mis en cache
List<ModelInfo> cached = await manager.ListCachedModelsAsync();

Retourne les modèles téléchargés dans le cache local.

Gestion des modèles

Télécharger un modèle
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");

Télécharge un modèle dans le cache local.

Télécharger un modèle avec progression
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
    // progress.Percentage, progress.Status, etc.
}

Diffuse les mises à jour de la progression du téléchargement.

Charger un modèle
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");

Charge un modèle dans le serveur d’inférence.

Répertorier les modèles chargés
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();

Répertorie tous les modèles actuellement chargés dans le service.

Décharger un modèle
await manager.UnloadModelAsync("aliasOrModelId");

Décharge un modèle à partir du serveur d’inférence.

Élimination

Implémente à la fois IDisposable et IAsyncDisposable pour un nettoyage approprié.

manager.Dispose();
// or
await manager.DisposeAsync();

Types de modèles

Cette page documente les types de données clés utilisés par le SDK C# Local Foundry pour décrire les modèles, les téléchargements et les informations d’exécution.

PromptTemplate

Représente le modèle de requête d’un modèle.

Propriété Type Description
Assistant ficelle Modèle de requête de l’assistant.
Prompt ficelle Modèle d’invite utilisateur.

Runtime

Décrit l’environnement d’exécution d’un modèle.

Propriété Type Description
Type de périphérique DeviceType Type d’appareil (PROCESSEUR, GPU, etc.).
FournisseurD'exécution ExecutionProvider Fournisseur d’exécution (CUDA, PROCESSEUR, etc.).

ModelSettings

Représente des paramètres spécifiques au modèle.

Propriété Type Description
Paramètres Liste <JsonElement> Collection de paramètres de modèle

ModelInfo

Décrit un modèle dans le catalogue local ou le cache Foundry.

Propriété Type Description
ModelId ficelle Identificateur de modèle unique.
DisplayName ficelle Nom du modèle lisible par l’homme.
ProviderType ficelle Type de fournisseur (par exemple, « CUDA », « PROCESSEUR »).
Uri ficelle Téléchargez l’URI du modèle.
Version ficelle Version du modèle.
Type de Modèle ficelle Type de modèle (par exemple, « llm »).
PromptTemplate PromptTemplate Modèle de requête du modèle.
Éditeur ficelle Éditeur du modèle.
Tâche ficelle Type de tâche (par exemple, « conversation », « achèvement »).
Temps d'exécution Temps d'exécution Informations sur l’environnement d’exécution.
FileSizeMb long Taille du fichier de modèle en Mo.
Paramètres du modèle Paramètres du modèle Paramètres spécifiques au modèle.
Alias ficelle Alias du modèle.
SupportsToolCalling bool Indique si l’appel d’outils est pris en charge.
Licence ficelle Identificateur de licence.
Description de la licence ficelle Description de la licence.
ParentModelUri ficelle URI du modèle parent, le cas échéant.

ModelDownloadProgress

Représente la progression d’une opération de téléchargement de modèle.

Propriété Type Description
Pourcentage double Pourcentage d’achèvement du téléchargement (0-100).
IsCompleted bool Indique si le téléchargement est terminé.
ModelInfo ModelInfo ? Informations de modèle si le téléchargement est terminé.
Message d'erreur corde? Message d’erreur si le téléchargement a échoué.

Méthodes statiques :

  • Progress(double percentage): Créez une mise à jour sur l'avancement.
  • Completed(ModelInfo modelInfo) : Créer un résultat de progression terminé.
  • Error(string errorMessage) : Créer un résultat d’erreur.

Exemple d’utilisation

using Microsoft.AI.Foundry.Local;

var manager = new FoundryLocalManager();
await manager.StartServiceAsync();

var models = await manager.ListCatalogModelsAsync();
var alias = "qwen2.5-0.5b";

await manager.DownloadModelAsync(alias);
await manager.LoadModelAsync(alias);

var loaded = await manager.ListLoadedModelsAsync();

await manager.UnloadModelAsync(alias);

manager.Dispose();

Référence du SDK Rust

Le Kit de développement logiciel (SDK) Rust pour Foundry Local permet de gérer les modèles, de contrôler le cache et d’interagir avec le service Local Foundry.

Prerequisites

  • Installez l’interface CLI locale Foundry et vérifiez que la foundry commande est disponible sur votre PATH.
  • Utilisez Rust 1.70.0 ou version ultérieure.

Installation

Pour utiliser le Kit de développement logiciel (SDK) Rust local Foundry, ajoutez ce qui suit à votre Cargo.toml:

[dependencies]
foundry-local = "0.1.0"

Vous pouvez également ajouter le crate Foundry Local à l’aide de cargo :

cargo add foundry-local@0

Démarrage rapide

Utilisez cet extrait de code pour vérifier que le Kit de développement logiciel (SDK) peut démarrer le service et lire le catalogue local.

use anyhow::Result;
use foundry_local::FoundryLocalManager;

#[tokio::main]
async fn main() -> Result<()> {
  let mut manager = FoundryLocalManager::builder().bootstrap(true).build().await?;

  let models = manager.list_catalog_models().await?;
  println!("Catalog models available: {}", models.len());

  Ok(())
}

Cet exemple montre comment imprimer un nombre différent de zéro lorsque le service est en cours d’exécution et que le catalogue est disponible.

Références :

FoundryLocalManager

Gestionnaire des opérations du Kit de développement logiciel (SDK) local Foundry.

Fields

  • service_uri: Option<String>: URI du service Foundry.
  • client: Option<HttpClient>: client HTTP pour les requêtes d’API.
  • catalog_list: Option<Vec<FoundryModelInfo>>: liste mise en cache des modèles de catalogue.
  • catalog_dict: Option<HashMap<String, FoundryModelInfo>>: dictionnaire mis en cache des modèles de catalogue.
  • timeout: Option<u64>: délai d’expiration du client HTTP facultatif.

Méthodes

  • pub fn builder() -> FoundryLocalManagerBuilder
    Créer un générateur pour FoundryLocalManager.

  • pub fn service_uri(&self) -> Result<&str>
    Obtenez l’URI du service.
    Retourne : URI du service Foundry.

  • fn client(&self) -> Result<&HttpClient>
    Obtenez l’instance du client HTTP.
    Retourne : Client HTTP.

  • pub fn endpoint(&self) -> Result<String>
    Obtenir le point de terminaison du service.
    Retourne : URL du point de terminaison.

  • pub fn api_key(&self) -> String
    Obtenez la clé API pour l’authentification.
    Retourne : Clé API.

  • pub fn is_service_running(&mut self) -> bool
    Vérifiez si le service est en cours d’exécution et définissez l’URI du service s’il est trouvé.
    Retourne :true si en cours d’exécution, false sinon.

  • pub fn start_service(&mut self) -> Result<()>
    Démarrez le service Foundry Local.

  • pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
    Obtenez la liste des modèles disponibles dans le catalogue.

  • pub fn refresh_catalog(&mut self)
    Actualisez le cache du catalogue.

  • pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
    Obtenez des informations sur le modèle par alias ou ID.
    Arguments :

    • alias_or_model_id: Alias ou ID de modèle.
    • raise_on_not_found : Si VRAI, erreur si introuvable.
  • pub async fn get_cache_location(&self) -> Result<String>
    Obtenez l’emplacement du cache sous forme de chaîne.

  • pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    Répertorier les modèles mis en cache.

  • pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
    Téléchargez un modèle.
    Arguments :

    • alias_or_model_id: Alias ou ID de modèle.
    • token: jeton d’authentification facultatif.
    • force : forcer le téléchargement si déjà mis en cache.
  • pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
    Chargez un modèle pour l’inférence.
    Arguments :

    • alias_or_model_id: Alias ou ID de modèle.
    • ttl: durée de vie facultative en secondes.
  • pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
    Décharger un modèle.
    Arguments :

    • alias_or_model_id: Alias ou ID de modèle.
    • force : force le déchargement même en cours d’utilisation.
  • pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    Lister les modèles chargés.

FoundryLocalManagerBuilder

Générateur pour la création d’une FoundryLocalManager instance.

Fields

  • alias_or_model_id: Option<String> — Alias ou ID de modèle à télécharger et charger.
  • bootstrap: bool — Indique si le service doit être démarré s’il n’est pas en cours d’exécution.
  • timeout_secs: Option<u64> — Délai d’expiration du client HTTP en secondes.

Méthodes

  • pub fn new() -> Self
    Créez une nouvelle instance de constructeur.

  • pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
    Définissez l’alias ou l’ID de modèle à télécharger et charger.

  • pub fn bootstrap(mut self, bootstrap: bool) -> Self
    Définissez s’il faut démarrer le service s’il n’est pas en cours d’exécution.

  • pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
    Définissez le délai d’expiration du client HTTP en secondes.

  • pub async fn build(self) -> Result<FoundryLocalManager>
    Générez l’instance FoundryLocalManager .

FoundryModelInfo

Représente des informations sur un modèle.

Fields

  • alias: String — Alias de modèle.
  • id: String — ID de modèle.
  • version: String — Version du modèle.
  • runtime: ExecutionProvider — Fournisseur d’exécution (PROCESSEUR, CUDA, etc.).
  • uri: String — URI du modèle.
  • file_size_mb: i32 — Taille du fichier de modèle en Mo.
  • prompt_template: serde_json::Value — Modèle de requête du modèle.
  • provider: String — Nom du fournisseur.
  • publisher: String — nom de l'éditeur.
  • license: String — Type de licence.
  • task: String — Tâche de modèle (par exemple, génération de texte).

Méthodes

  • from_list_response(response: &FoundryListResponseModel) -> Self
    Crée une FoundryModelInfo à partir d’une réponse de catalogue.

  • to_download_body(&self) -> serde_json::Value
    Convertit les informations du modèle en corps JSON pour les demandes de téléchargement.

ExecutionProvider

Énumération pour les fournisseurs d’exécution pris en charge.

  • CPU
  • WebGPU
  • CUDA
  • QNN
Méthodes
  • get_alias(&self) -> String
    Retourne une chaîne d’alias pour le fournisseur d’exécution.

ModelRuntime

Décrit l’environnement d’exécution d’un modèle.

  • device_type: DeviceType
  • execution_provider: ExecutionProvider