Foundry Local SDK-referencia

A Foundry Local SDK lehetővé teszi olyan AI-funkciók szállítását az alkalmazásokban, amelyek képesek helyi AI-modellek használatára egy egyszerű és intuitív API-val. Az SDK elvonja az AI-modellek kezelésének összetettségeit, és zökkenőmentes felületet biztosít a helyi AI-képességek alkalmazásokba való integrálásához. Ez a referencia a C#, JavaScript, Python és Rust SDK-implementációit ismerteti.

Az SDK-hoz nem szükséges telepíteni a Foundry helyi parancssori felületét a végfelhasználói gépre, így a felhasználók számára további beállítási lépések nélkül is szállíthatja az alkalmazásokat – az alkalmazások önállóak. Az Foundry Local SDK további előnyei a következők:

  • Hardverészlelés és -optimalizálás: Automatikus képességfelmérés GPU, NPU és CPU esetén.
  • Execution provider management (Windows): A megfelelő ONNX futtatókörnyezeti végrehajtási szolgáltatók (CUDA, Vitis, QNN, OpenVINO, TensorRT) automatikus letöltése és regisztrálása az eszköz képességei alapján.
  • Metal support via WebGpu (macOS): Natív támogatás modellek futtatásához az Apple Silicon-en optimalizált teljesítménnyel.
  • Modell beszerzése: Zökkenőmentes letöltés az Foundry Modellkatalógusból verziószámozással, frissítésekkel és automatikusan hardveroptimalizált modellkiválasztással tartalék támogatással.
  • Hatékony futtatókörnyezet: Körülbelül 20 MB-ot ad hozzá az alkalmazás méretéhez, mobileszközökön és asztali számítógépeken fut.
  • OpenAI API-kompatibilitás: Egyszerű integráció az OpenAI-modellekkel és -eszközökkel.
  • Választható REST-kiszolgáló: Futtassa a Foundry Local parancsot helyi szolgáltatásként, amelyet más alkalmazások is elérhetnek.

C# SDK-referencia

Csomagok telepítése

Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.

dotnet add package Microsoft.AI.Foundry.Local.WinML
dotnet add package OpenAI

A GitHub adattár C#-mintái előre konfigurált projektek. Ha az alapoktól épít, olvassa el a Foundry Local SDK-referenciáját , amelyből megtudhatja, hogyan állíthatja be a C#-projektet a Foundry Local használatával.

Projektkonfiguráció

A mintaadattárak olyan fájlokat .csproj tartalmaznak, amelyek automatikusan kezelik a platformészlelést. Ha az alapoktól épít egy projektet, használja ezt a konfigurációt referenciaként:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <!-- Windows: target Windows SDK for WinML hardware acceleration -->
  <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
    <TargetFramework>net8.0-windows10.0.18362.0</TargetFramework>
    <Platforms>ARM64;x64</Platforms>
    <WindowsPackageType>None</WindowsPackageType>
    <EnableCoreMrtTooling>false</EnableCoreMrtTooling>
  </PropertyGroup>

  <!-- Non-Windows: standard .NET -->
  <PropertyGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
    <TargetFramework>net8.0</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(RuntimeIdentifier)'==''">
    <RuntimeIdentifier>$(NETCoreSdkRuntimeIdentifier)</RuntimeIdentifier>
  </PropertyGroup>

  <!-- Windows: WinML for hardware acceleration -->
  <ItemGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
    <PackageReference Include="Microsoft.AI.Foundry.Local.WinML" />
  </ItemGroup>

  <!-- Non-Windows: standard SDK -->
  <ItemGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
    <PackageReference Include="Microsoft.AI.Foundry.Local" />
  </ItemGroup>

  <!-- Linux GPU support -->
  <ItemGroup Condition="'$(RuntimeIdentifier)' == 'linux-x64'">
    <PackageReference Include="Microsoft.ML.OnnxRuntime.Gpu" />
    <PackageReference Include="Microsoft.ML.OnnxRuntimeGenAI.Cuda" />
  </ItemGroup>

  <!-- Shared utilities -->
  <ItemGroup>
    <Compile Include="../Shared/*.cs" />
  </ItemGroup>

</Project>

Az alábbi táblázat a projekt legfontosabb beállításait ismerteti:

Setting Leírás
TargetFramework Windows net9.0-windows10.0.26100 WinML hardvergyorsítást célozza meg. Más platformokon a célokat .net9.0
WindowsAppSDKSelfContained Állítsa false a rendszer által telepített Windows App SDK használatára ahelyett, hogy összekapcsolja.
WindowsPackageType None Csomagolatlan asztali alkalmazásként való buildelésre van beállítva (MSIX-csomagolás nélkül).
EnableCoreMrtTooling Állítsa be az false MRT Core erőforrás-eszközkészlet letiltására, amelyre nincs szükség a konzolalkalmazásokhoz.
RuntimeIdentifier Az aktuális SDK futtatókörnyezet-azonosítójának alapértelmezett értéke, biztosítva, hogy a megfelelő platform bináris fájljai legyenek kiválasztva.
Microsoft.AI.Foundry.Local.WinML Windows csak WinML-t használó csomag hardveres gyorsításhoz és automatikus végrehajtási szolgáltató-felügyelethez.
Microsoft.AI.Foundry.Local Platformfüggetlen csomag macOS, Linux és Windows rendszerekhez, WinML nélkül.
Microsoft.ML.OnnxRuntime.Gpu / OnnxRuntimeGenAI.Cuda Linux GPU-támogatási csomagok CUDA-kompatibilis hardverekhez.

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.

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

Ez a példa a hardverhez elérhető modellek számát nyomtatja ki.

Példák

API-referencia

Natív hangátírási API

A C# SDK tartalmaz egy natív hangügyfélt, amely hangfájlokat ír át az eszközön a Whisper-modellek használatával. Ez a folyamat közbeni következtetést futtatja a REST-webkiszolgáló nélkül.

Hangügyfél lekérése

A Whisper-modell betöltése után kérje le az audio klienst:

var audioClient = await model.GetAudioClientAsync();

Hangátírási módszerek

Módszer Signature Leírás
TranscribeAudioStreamingAsync() (string audioFilePath, CancellationToken ct) => IAsyncEnumerable<TranscriptionChunk> A streamek átiratának eredményeit részenként továbbítja. Minden adattömbnek van tulajdonsága Text .

AudioClient-beállítások

Ingatlan Típus Leírás
Language string ISO 639-1 nyelvi kód (például "en"). Javítja a pontosságot.
Temperature float Mintavételi hőmérséklet (0,0–1,0). Az alacsonyabb értékek determinisztikusabbak.

Example

var audioClient = await model.GetAudioClientAsync();
audioClient.Settings.Language = "en";
audioClient.Settings.Temperature = 0.0f;

await foreach (var chunk in audioClient.TranscribeAudioStreamingAsync(
    "recording.mp3", CancellationToken.None))
{
    Console.Write(chunk.Text);
}

Referenciák:

JavaScript SDK-referencia

Csomagok telepítése

Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.

npm install foundry-local-sdk-winml openai

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.

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

Ez a példa a hardverhez elérhető modellek listáját adja ki.

Példák

API-referencia

Hivatkozások

Python SDK-referencia

Csomagok telepítése

Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.

pip install foundry-local-sdk-winml openai

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.

import asyncio
from foundry_local_sdk import Configuration, FoundryLocalManager


async def main():
    config = Configuration(app_name="app-name")
    FoundryLocalManager.initialize(config)
    manager = FoundryLocalManager.instance

    models = manager.catalog.list_models()
    print(f"Models available: {len(models)}")


if __name__ == "__main__":
    asyncio.run(main())

Ez a példa a hardverhez elérhető modellek számát nyomtatja ki.

Példák

Konfiguráció

Az Configuration osztály lehetővé teszi az SDK viselkedésének testreszabását:

from foundry_local_sdk import Configuration

config = Configuration(
    app_name="app-name",
    log_level="info",
    model_cache_dir="./foundry_local_data/model_cache",
    web={"urls": "http://127.0.0.1:55588"},
)
Paraméter Típus Leírás
app_name str Az alkalmazás neve.
log_level str Naplózási szint (például "info", "debug").
model_cache_dir str Gyorsítótárazott modellek könyvtára.
web dict Webszolgáltatás konfigurálása kulccsal urls .

Core API

Módszer Leírás
FoundryLocalManager.initialize(config) Inicializálja a singleton managert egy Configuration.
FoundryLocalManager.instance Hozzáférés az inicializált kezelőpéldányhoz.
manager.catalog.list_models() Listázz minden elérhető modellt a katalógusban.
manager.catalog.get_model(alias) Modell lekérése alias alapján.
manager.catalog.get_cached_models() Modellek listázása a helyi gyorsítótárban.
manager.catalog.get_loaded_models() A jelenleg betöltött modellek listázása.
model.download(progress_callback) Töltse le a modellt (gyorsítótárazás esetén kihagyja).
model.load() Töltse be a modellt a következtetéshez.
model.unload() Távolítsa el a modellt.
model.is_cached Ellenőrizze, hogy a modell helyileg van-e gyorsítótárazva.
model.is_loaded Ellenőrizze, hogy a modell be van-e töltve.

Natív csevegésvégzítési API

A modell betöltése után szerezze be a csevegőügyfélt:

client = model.get_chat_client()
Módszer Leírás
client.complete_chat(messages) Teljes csevegési válasz létrehozása.
client.complete_streaming_chat(messages) Csevegési választömbök streamelése.

Natív hangátírási API

A Whisper-modell betöltése után kérje le az audio klienst:

audio_client = model.get_audio_client()
Módszer Leírás
audio_client.transcribe(file_path) Hangfájl átírása. Tulajdonsággal rendelkező text objektumot ad vissza.

Referenciák:

Rust SDK-referencia

Csomagok telepítése

Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.

cargo add foundry-local-sdk --features winml
cargo add tokio --features full
cargo add tokio-stream anyhow

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.

use foundry_local_sdk::{FoundryLocalConfig, FoundryLocalManager};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let manager = FoundryLocalManager::create(FoundryLocalConfig::new("app-name"))?;

    let models = manager.catalog().get_models().await?;
    println!("Models available: {}", models.len());

    Ok(())
}

Ez a példa a hardverhez elérhető modellek számát nyomtatja ki.

Példák

Konfiguráció

A FoundryLocalConfig szerkezet lehetővé teszi az SDK viselkedésének testreszabását:

use foundry_local_sdk::FoundryLocalConfig;

let config = FoundryLocalConfig::new("app-name")
    .with_log_level("info")
    .with_model_cache_dir("./foundry_local_data/model_cache")
    .with_web_urls("http://127.0.0.1:55588");

Core API

Módszer Leírás
FoundryLocalManager::create(config) Hozzon létre egy új kezelőt egy FoundryLocalConfig.
manager.catalog().get_models().await Az összes elérhető modell listázása.
manager.catalog().get_model(alias).await Modell lekérése alias alapján.
manager.catalog().get_cached_models().await Modellek listázása a helyi gyorsítótárban.
manager.catalog().get_loaded_models().await A jelenleg betöltött modellek listázása.
model.download(callback).await Töltse le a modellt (gyorsítótárazás esetén kihagyja).
model.load().await Töltse be a modellt a következtetéshez.
model.unload().await Távolítsa el a modellt.

Natív csevegésvégzítési API

A modell betöltése után hozzon létre egy csevegőügyfélt az opcionális beállításokkal:

let client = model.create_chat_client()
    .temperature(0.7)
    .max_tokens(256);
Módszer Leírás
client.complete_chat(&messages, tools).await Teljes csevegési válasz létrehozása.
client.complete_streaming_chat(&messages, tools).await Csevegési választömbök streamelése.

Üzenettípusok: ChatCompletionRequestSystemMessage, ChatCompletionRequestUserMessage. ChatCompletionRequestMessage

Natív hangátírási API

A Whisper-modell betöltése után hozzon létre egy hangügyfélt:

let audio_client = model.create_audio_client();
Módszer Leírás
audio_client.transcribe(file_path).await Hangfájl átírása. Mezővel rendelkező text objektumot ad vissza.

Referenciák: