Partager via


Informations de référence sur le SDK Foundry Local

Important

  • Foundry Local est disponible en préversion. Les versions en préversion publique fournissent un accès anticipé aux fonctionnalités en cours de déploiement.
  • Les fonctionnalités, approches et processus peuvent changer ou avoir des capacités limitées avant la disponibilité générale (GA).

Le SDK Local Foundry vous permet d’expédier des fonctionnalités IA dans vos applications capables d’exploiter des modèles IA locaux par le biais d’une API simple et intuitive. Le Kit de développement logiciel (SDK) extrait la complexité de la gestion des modèles IA et offre une expérience transparente pour l’intégration des fonctionnalités d’IA locales dans vos applications. Cette référence documente les implémentations du Kit de développement logiciel (SDK) pour JavaScript et C#. D’autres langues seront ajoutées à l’avenir.

Le Kit de développement logiciel (SDK) ne nécessite pas l’installation de l’interface CLI locale Foundry sur l’ordinateur des utilisateurs finaux, ce qui vous permet d’expédier vos applications sans étapes de configuration supplémentaires pour vos utilisateurs. Vos applications sont autonomes. Les avantages supplémentaires du SDK Local Foundry sont les suivants :

  • Détection et optimisation du matériel : évaluation automatique des fonctionnalités pour GPU, NPU et PROCESSEUR.
  • Gestion des fournisseurs d’exécution (Windows) : téléchargement et inscription automatiques des fournisseurs d’exécution ONNX Runtime appropriés (CUDA, Vitis, QNN, OpenVINO, TensorRT) en fonction des fonctionnalités de l’appareil.
  • Prise en charge des métaux via WebGpu (macOS) : prise en charge native de l’exécution de modèles sur Apple Silicon avec des performances optimisées.
  • Acquisition de modèle : téléchargement transparent à partir du catalogue de modèles de Foundry avec contrôle de version, mises à jour et sélection automatique de modèles optimisés pour le matériel avec prise en charge de repli.
  • Exécution efficace : ajoute <20 Mo à la taille de l’application, s’exécute sur les appareils des téléphones mobiles vers des ordinateurs de bureau.
  • Compatibilité de l’API OpenAI : intégration facile aux modèles et outils OpenAI.
  • Serveur REST facultatif : Run Foundry Local en tant que service local accessible par d’autres applications.

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

Configuration du projet

L’architecture de haut niveau du SDK Local Foundry est la suivante :

Diagramme de la nouvelle architecture pour Foundry Local.

Le kit de développement logiciel (SDK) est un wrapper (ou enveloppe) léger autour de la Core Local C API de Foundry (.dll/.so/.dylib) qui offre une interface plus accessible pour les développeurs JavaScript. Le Kit de développement logiciel (SDK) gère le chargement de la bibliothèque native, la gestion de la mémoire et la conversion des types de données entre JavaScript et C. L’API Local Core C de Foundry a deux versions, mais la même surface d’API :

  • WindowsML (WinML) : spécifique à Windows qui utilise WindowsML pour acquérir les pilotes et fournisseurs d’exécution nécessaires pour le matériel disponible. Il s’agit de l’option recommandée pour les utilisateurs Windows, car elle offre de meilleures performances et une meilleure compatibilité avec un large éventail de matériels.
  • Multiplateforme : peut être utilisé sur Windows, macOS et Linux. Il convient de noter que sur les appareils macOS avec Apple Silicon, le SDK multiplateforme utilisera l’infrastructure Metal d’Apple pour l’accélération matérielle via le fournisseur d’exécution webGPU du runtime ONNX.

Lorsque vous installez le package du SDK Local Foundry dans votre projet, vous pouvez choisir d’installer la version WinML ou multiplateforme.

Utilisez Foundry Local dans votre projet JavaScript en suivant ces instructions spécifiques à Windows ou multiplateformes (macOS/Linux/Windows) :

  1. Créez un projet JavaScript :
    mkdir app-name
    cd app-name
    npm init -y
    npm pkg set type=module
    
  2. Installez le package du Kit de développement logiciel (SDK) Local Foundry :
    npm install --winml foundry-local-sdk
    npm install openai
    

Démarrage rapide

Utilisez cet extrait de code pour vérifier que le Kit de développement logiciel (SDK) peut initialiser et accéder au catalogue de modèles local.

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

console.log('Initializing Foundry Local SDK...');

const manager = FoundryLocalManager.create({
    appName: 'foundry_local_samples',
    logLevel: 'info'
});
console.log('✓ SDK initialized successfully');

// Explore available models
console.log('\nFetching available models...');
const catalog = manager.catalog;
const models = await catalog.getModels();

console.log(`Found ${models.length} models:`);
for (const model of models) {
    console.log(`  - ${model.alias}`);
}

Cet exemple génère la liste des modèles disponibles pour votre matériel.

Échantillons

Référence d’API

References

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

Guide de configuration du projet

Il existe deux packages NuGet pour le SDK Local Foundry ( WinML et un package multiplateforme) qui ont la même surface d’API, mais qui sont optimisés pour différentes plateformes :

  • Windows : utilise le package Microsoft.AI.Foundry.Local.WinML spécifique aux applications Windows, qui utilise l'infrastructure Windows Machine Learning (WinML).
  • Multiplateforme : utilise le Microsoft.AI.Foundry.Local package qui peut être utilisé pour les applications multiplateformes (Windows, Linux, macOS).

Selon votre plateforme cible, suivez ces instructions pour créer une application C# et ajouter les dépendances nécessaires :

Utilisez Foundry Local dans votre projet C# en suivant ces instructions spécifiques à Windows ou multiplateformes (macOS/Linux/Windows) :

  1. Créez un nouveau projet C# et accédez-y :
    dotnet new console -n app-name
    cd app-name
    
  2. Ouvrez et modifiez le app-name.csproj fichier dans :
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net9.0-windows10.0.26100</TargetFramework>
        <RootNamespace>app-name</RootNamespace>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <WindowsAppSDKSelfContained>false</WindowsAppSDKSelfContained>
        <WindowsPackageType>None</WindowsPackageType>
        <EnableCoreMrtTooling>false</EnableCoreMrtTooling>
      </PropertyGroup>
    
      <PropertyGroup Condition="'$(RuntimeIdentifier)'==''">
        <RuntimeIdentifier>$(NETCoreSdkRuntimeIdentifier)</RuntimeIdentifier>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.AI.Foundry.Local.WinML" Version="0.9.0" />
        <PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.10" />
        <PackageReference Include="OpenAI" Version="2.5.0" />
      </ItemGroup>
    
    </Project>
    
  3. Créez un nuget.config fichier à la racine du projet avec le contenu suivant afin que les packages soient restaurés correctement :
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <packageSources>
        <clear />
        <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
        <add key="ORT" value="https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT/nuget/v3/index.json" />
      </packageSources>
      <packageSourceMapping>
        <packageSource key="nuget.org">
          <package pattern="*" />
        </packageSource>
        <packageSource key="ORT">
          <package pattern="*Foundry*" />
        </packageSource>
      </packageSourceMapping>
    </configuration>
    

Note

Le package NuGet Microsoft.AI.Foundry.Local cible net8.0. Avec la compatibilité ascendante de .NET, il fonctionne de manière transparente dans les projets ciblant .NET 9, .NET 10 et versions ultérieures, sans autre configuration nécessaire. Le Kit de développement logiciel (SDK) utilise uniquement les API .NET 8 et ne contient aucun chemin de code spécifique à l’infrastructure. Par conséquent, le comportement est identique, quel que soit le runtime cible de votre application. Nous ciblant .NET 8, car il s’agit de la version actuelle de support à long terme (LTS) avec la base d’installation la plus large.

Démarrage rapide

Utilisez cet extrait de code pour vérifier que le Kit de développement logiciel (SDK) peut initialiser et accéder au catalogue de modèles local.

using Microsoft.AI.Foundry.Local;
using Microsoft.Extensions.Logging;
using System.Linq;

var config = new Configuration
{
  AppName = "app-name",
  LogLevel = Microsoft.AI.Foundry.Local.LogLevel.Information,
};

using var loggerFactory = LoggerFactory.Create(builder =>
{
  builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information);
});
var logger = loggerFactory.CreateLogger<Program>();

await FoundryLocalManager.CreateAsync(config, logger);
var manager = FoundryLocalManager.Instance;

var catalog = await manager.GetCatalogAsync();
var models = await catalog.ListModelsAsync();

Console.WriteLine($"Models available: {models.Count()}");

Cet exemple montre comment imprimer le nombre de modèles disponibles pour votre matériel.

Échantillons

  • Pour obtenir des exemples d'applications qui montrent comment utiliser le Kit de développement logiciel (SDK) C# Local Foundry, consultez le dépôt GitHub Foundry Local C# SDK Samples.

Référence d’API