Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
foundrycommande est disponible sur votrePATH. - 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
foundrycommande est disponible sur votrePATH.
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
foundrycommande est disponible sur votrePATH.
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
foundrycommande est disponible sur votrePATH. - 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 pourFoundryLocalManager.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 :truesi en cours d’exécution,falsesinon.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’instanceFoundryLocalManager.
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 uneFoundryModelInfoà 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.
CPUWebGPUCUDAQNN
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: DeviceTypeexecution_provider: ExecutionProvider