Dela via


Foundry Local SDK-referens

Viktigt!

  • Foundry Local är tillgängligt i förhandsversionen. Offentliga förhandsversioner ger tidig åtkomst till funktioner som är i aktiv distribution.
  • Funktioner, metoder och processer kan ändra eller ha begränsade funktioner, före allmän tillgänglighet (GA).

Med Foundry Local SDK kan du skicka AI-funktioner i dina program som kan utnyttja lokala AI-modeller via ett enkelt och intuitivt API. SDK:n abstraherar bort komplexiteten i att hantera AI-modeller och ger en sömlös upplevelse för att integrera lokala AI-funktioner i dina program. Den här referensen dokumenterar SDK-implementeringar för JavaScript och C#. Fler språk kommer att läggas till i framtiden.

SDK:t kräver inte att Foundry Local CLI installeras på slutanvändarens dator, vilket gör att du kan skicka dina program utan ytterligare installationssteg för dina användare – dina program är fristående. De extra fördelarna med Foundry Local SDK är:

  • Identifiering och optimering av maskinvara: Automatisk kapacitetsbedömning för GPU, NPU och CPU.
  • Körningsproviderhantering (Windows): Automatisk nedladdning och registrering av lämpliga ONNX Runtime-körningsproviders (CUDA, Vitis, QNN, OpenVINO, TensorRT) baserat på enhetsfunktioner.
  • Metallstöd via WebGpu (macOS): Internt stöd för att köra modeller på Apple Silicon med optimerad prestanda.
  • Modellförvärv: Sömlös nedladdning från Foundry Model Catalog med versionshantering, uppdateringar och automatiskt maskinvaruoptimerat modellval samt stöd för reservfunktioner.
  • Effektiv körning: Lägger till <20 MB i appstorlek, körs på enheter från mobiltelefoner till stationära datorer.
  • OpenAI API-kompatibilitet: Enkel integrering med OpenAI-modeller och -verktyg.
  • Valfri REST-server: Kör Foundry Local som en lokal tjänst som är tillgänglig för andra program.

JavaScript SDK-referens

Projektinställningar

Arkitekturen på hög nivå för Foundry Local SDK är följande:

Diagram över den nya arkitekturen för Foundry Local.

SDK är en lätt omslutning runt ett Foundry Local Core C API (.dll/.so/.dylib) som tillhandahåller ett mer användarvänligt gränssnitt för JavaScript-utvecklare. SDK hanterar inläsning av det interna biblioteket, hantering av minne och konvertering av datatyper mellan JavaScript och C. Foundry Local Core C-API:et har två smaker men samma API-yta:

  • WindowsML (WinML) – Specifikt för Windows som använder WindowsML för att hämta nödvändiga drivrutiner och körningstjänster för den tillgängliga maskinvaran. Detta är det rekommenderade alternativet för Windows-användare eftersom det ger bättre prestanda och kompatibilitet med ett brett utbud av maskinvara.
  • Plattformsoberoende – kan användas i Windows, macOS och Linux. Det bör noteras att på macOS-enheter med Apple Silicon använder det plattformsoberoende SDK:t Apples Metal-ramverket för maskinvaruacceleration via ONNX-körningens WebGPU-exekveringsleverantör.

När du installerar Foundry Local SDK-paketet i projektet kan du välja att installera WinML- eller plattformsoberoende version.

Använd Foundry Local i ditt JavaScript-projekt genom att följa dessa Windows-specifika eller plattformsoberoende instruktioner (macOS/Linux/Windows):

  1. Skapa ett nytt JavaScript-projekt:
    mkdir app-name
    cd app-name
    npm init -y
    npm pkg set type=module
    
  2. Installera Foundry Local SDK-paketet:
    npm install --winml foundry-local-sdk
    npm install openai
    

Snabbstart

Använd det här kodfragmentet för att kontrollera att SDK:et kan initiera och komma åt den lokala modellkatalogen.

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}`);
}

I det här exemplet visas en lista över tillgängliga modeller för maskinvaran.

Exempel

API-referens

Referenser

C# SDK-referens

installationsguide för Project

Det finns två NuGet-paket för Foundry Local SDK – en WinML och ett plattformsoberoende paket – som har samma API-yta men är optimerade för olika plattformar:

  • Windows: Använder paketet Microsoft.AI.Foundry.Local.WinML som är specifikt för Windows-program, som använder WinML-ramverket (Windows Machine Learning).
  • Plattformsoberoende: Använder paketet Microsoft.AI.Foundry.Local som kan användas för plattformsoberoende program (Windows, Linux, macOS).

Beroende på målplattformen följer du de här anvisningarna för att skapa ett nytt C#-program och lägger till nödvändiga beroenden:

Använd Foundry Local i ditt C#-projekt genom att följa dessa Windows-specifika eller plattformsoberoende instruktioner (macOS/Linux/Windows):

  1. Skapa ett nytt C#-projekt och navigera in i det.
    dotnet new console -n app-name
    cd app-name
    
  2. Öppna app-name.csproj-filen och redigera den för att:
    <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. Skapa en nuget.config fil i projektroten med följande innehåll så att paketen återställs korrekt:
    <?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>
    

Anmärkning

NuGet-paketet Microsoft.AI.Foundry.Local riktar sig till net8.0. Med. NET:s framåtkompatibilitet fungerar sömlöst i projekt som riktar sig till .NET 9, .NET 10 och senare – ingen annan konfiguration behövs. SDK använder endast .NET 8 API:er och innehåller inga ramverksspecifika kodsökvägar, så beteendet är identiskt oavsett vilken körning som appen riktar in sig på. Vi riktar in oss på .NET 8 eftersom det är den aktuella lts-versionen (Long Term Support) med den bredaste installationsbasen.

Snabbstart

Använd det här kodfragmentet för att kontrollera att SDK:et kan initiera och komma åt den lokala modellkatalogen.

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()}");

I det här exemplet skrivs antalet tillgängliga modeller ut för maskinvaran.

Exempel

API-referens