Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de Foundry Local SDK kunt u AI-functies verzenden in uw toepassingen die in staat zijn om lokale AI-modellen te gebruiken via een eenvoudige en intuïtieve API. De SDK abstraheert de complexiteit van het beheren van AI-modellen en biedt een naadloze ervaring voor het integreren van lokale AI-mogelijkheden in uw toepassingen. Deze referentiedocumentatie documenteert SDK-implementaties voor C#, JavaScript, Python en Rust.
Voor de SDK hoeft de lokale Foundry CLI niet te worden geïnstalleerd op de computer van eindgebruikers, zodat u uw toepassingen kunt verzenden zonder extra installatiestappen voor uw gebruikers. Uw toepassingen zijn zelfstandig. De extra voordelen van de Foundry Local SDK zijn:
- Hardwaredetectie en -optimalisatie: Automatische mogelijkheidsevaluatie voor GPU, NPU en CPU.
- Execution Provider Management (Windows): Automatische download en registratie van de juiste ONNX Runtime-uitvoeringsproviders (CUDA, Vitis, QNN, OpenVINO, TensorRT) op basis van apparaatmogelijkheden.
- Metal-ondersteuning via WebGpu (macOS): systeemeigen ondersteuning voor het uitvoeren van modellen op Apple Silicon met geoptimaliseerde prestaties.
- Modelacquisitie: Naadloze download van de Foundry Model Catalog met versiebeheer, updates en automatisch hardware-geoptimaliseerde modelselectie met valback-ondersteuning.
- Efficiënte runtime: Voegt ongeveer 20 MB toe aan app-grootte, wordt uitgevoerd op apparaten van mobiele telefoons naar desktops.
- OpenAI API-compatibiliteit: Eenvoudige integratie met OpenAI-modellen en -hulpprogramma's.
- Optionele REST-server: Voer Foundry Local uit als een lokale service die toegankelijk is voor andere toepassingen.
Naslaginformatie voor C# SDK
Pakketten installeren
Als u op Windows ontwikkelt of verzendt, selecteert u het tabblad Windows. Het Windows-pakket kan worden geïntegreerd met de Windows ML runtime. Het biedt hetzelfde API-oppervlak met een grotere breedte van hardwareversnelling.
dotnet add package Microsoft.AI.Foundry.Local.WinML
dotnet add package OpenAI
De C#-voorbeelden in de GitHub opslagplaats zijn vooraf geconfigureerde projecten. Als u helemaal opnieuw bouwt, leest u de referentie voor de Local SDK van Foundry voor meer informatie over het instellen van uw C#-project met Foundry Local.
configuratie van Project
De voorbeeldopslagplaatsen bevatten een .csproj bestand waarmee platformdetectie automatisch wordt verwerkt. Als u een volledig nieuw project bouwt, gebruikt u deze configuratie als referentie:
<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>net9.0-windows10.0.26100</TargetFramework>
<WindowsAppSDKSelfContained>false</WindowsAppSDKSelfContained>
<Platforms>ARM64;x64</Platforms>
<WindowsPackageType>None</WindowsPackageType>
<EnableCoreMrtTooling>false</EnableCoreMrtTooling>
</PropertyGroup>
<!-- Non-Windows: standard .NET -->
<PropertyGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
<TargetFramework>net9.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>
In de volgende tabel worden de belangrijkste projectinstellingen uitgelegd:
| Configuratie | Beschrijving |
|---|---|
TargetFramework |
Onder Windows zijn de doelen net9.0-windows10.0.26100 voor WinML-hardwareversnelling. Op andere platformen zijn de doelen net9.0. |
WindowsAppSDKSelfContained |
Ingesteld op false om de door het systeem geïnstalleerde Windows App SDK te gebruiken in plaats van deze te bundelen. |
WindowsPackageType |
Stel None in om te bouwen als een uitgepakte desktop-app (zonder MSIX-verpakking). |
EnableCoreMrtTooling |
Stel in op false om de MRT Core-hulpprogramma's voor resources uit te schakelen, die niet nodig zijn voor console-apps. |
RuntimeIdentifier |
Standaard ingesteld op de runtime-id van de huidige SDK, zodat de juiste binaire platformbestanden worden geselecteerd. |
Microsoft.AI.Foundry.Local.WinML |
Windows alleen pakket dat WinML gebruikt voor hardwareversnelling en het beheer van automatische uitvoeringsproviders. |
Microsoft.AI.Foundry.Local |
Platformoverschrijdend pakket voor macOS, Linux en Windows zonder WinML. |
Microsoft.ML.OnnxRuntime.Gpu / OnnxRuntimeGenAI.Cuda |
Linux GPU-ondersteuningspakketten voor hardware met CUDA-functionaliteit. |
Snelstart
Gebruik dit codefragment om te controleren of de SDK de lokale modelcatalogus kan initialiseren en openen.
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()}");
In dit voorbeeld wordt het aantal modellen afgedrukt dat beschikbaar is voor uw hardware.
Voorbeelden
- Zie de Foundry Local C# SDK Samples GitHub repository voor voorbeeldtoepassingen die laten zien hoe u de Lokale C#-SDK van Foundry gebruikt.
API-referentie
- Voor meer informatie over de Foundry Local C# SDK lees Foundry Local C# SDK API Reference.
Systeemeigen audiotranscriptie-API
De C#SDK bevat een systeemeigen audioclient voor het transcriberen van audiobestanden op het apparaat met behulp van Whisper-modellen. Hiermee wordt deductie in-proces uitgevoerd zonder dat u de REST-webserver nodig hebt.
Een audioclient ophalen
Nadat u een Whisper-model hebt geladen, verkrijgt u een audioclient:
var audioClient = await model.GetAudioClientAsync();
Audio-transcriptiemethoden
| Methode | Signature | Beschrijving |
|---|---|---|
TranscribeAudioStreamingAsync() |
(string audioFilePath, CancellationToken ct) => IAsyncEnumerable<TranscriptionChunk> |
Streamtranscriptieresultaten chunk per segment. Elk segment heeft een Text eigenschap. |
AudioClient-instellingen
| Vastgoed | Typ | Beschrijving |
|---|---|---|
Language |
string |
ISO 639-1-taalcode (bijvoorbeeld "en"). Verbetert de nauwkeurigheid. |
Temperature |
float |
Bemonsteringstemperatuur (0,0–1,0). Lagere waarden zijn deterministischer. |
Voorbeeld
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);
}
Referenties:
JavaScript SDK Referentie
Pakketten installeren
Als u op Windows ontwikkelt of verzendt, selecteert u het tabblad Windows. Het Windows-pakket kan worden geïntegreerd met de Windows ML runtime. Het biedt hetzelfde API-oppervlak met een grotere breedte van hardwareversnelling.
npm install foundry-local-sdk-winml openai
Snelstart
Gebruik dit codefragment om te controleren of de SDK de lokale modelcatalogus kan initialiseren en openen.
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}`);
}
In dit voorbeeld wordt de lijst met beschikbare modellen voor uw hardware uitgevoerd.
Voorbeelden
- Zie de Foundry Local JavaScript SDK Samples GitHub repository voor voorbeeldtoepassingen die laten zien hoe u de Lokale JavaScript SDK voor Foundry gebruikt.
API-referentie
- Voor meer informatie over de Foundry Local JavaScript SDK lees Foundry Local JavaScript SDK API Reference.
Verwijzingen
Python SDK Referentie
Pakketten installeren
Als u op Windows ontwikkelt of verzendt, selecteert u het tabblad Windows. Het Windows-pakket kan worden geïntegreerd met de Windows ML runtime. Het biedt hetzelfde API-oppervlak met een grotere breedte van hardwareversnelling.
pip install foundry-local-sdk-winml openai
Snelstart
Gebruik dit codefragment om te controleren of de SDK de lokale modelcatalogus kan initialiseren en openen.
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())
In dit voorbeeld wordt het aantal modellen afgedrukt dat beschikbaar is voor uw hardware.
Voorbeelden
- Zie de Foundry Local SDK Samples GitHub repository voor voorbeeldtoepassingen die laten zien hoe u de Foundry Local Python SDK gebruikt.
Configuratie
Met Configuration de klasse kunt u het SDK-gedrag aanpassen:
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"},
)
| Kenmerk | Typ | Beschrijving |
|---|---|---|
app_name |
str |
Naam van uw toepassing. |
log_level |
str |
Logboekregistratieniveau (bijvoorbeeld "info", "debug"). |
model_cache_dir |
str |
Map voor modellen in cache. |
web |
dict |
Webserviceconfiguratie met urls sleutel. |
Kern-API
| Methode | Beschrijving |
|---|---|
FoundryLocalManager.initialize(config) |
Initialiseer de singleton manager met een Configuration. |
FoundryLocalManager.instance |
Verkrijg toegang tot het geïnitialiseerde managerexemplaar. |
manager.catalog.list_models() |
Geef alle beschikbare modellen in de catalogus weer. |
manager.catalog.get_model(alias) |
Een model ophalen via een alias. |
manager.catalog.get_cached_models() |
Geef modellen weer in de lokale cache. |
manager.catalog.get_loaded_models() |
Lijst met modellen die momenteel zijn geladen. |
model.download(progress_callback) |
Download het model (slaat over als het in de cache is opgeslagen). |
model.load() |
Laad het model voor inferentie. |
model.unload() |
Laad het model uit. |
model.is_cached |
Controleer of het model lokaal in de cache is opgeslagen. |
model.is_loaded |
Controleer of het model is geladen. |
API voor Native Chat-voltooieningen
Nadat u een model hebt geladen, haalt u een chatclient op:
client = model.get_chat_client()
| Methode | Beschrijving |
|---|---|
client.complete_chat(messages) |
Genereer een volledig chatantwoord. |
client.complete_streaming_chat(messages) |
Chatantwoordsegmenten streamen. |
Systeemeigen audiotranscriptie-API
Nadat u een Whisper-model hebt geladen, verkrijgt u een audioclient:
audio_client = model.get_audio_client()
| Methode | Beschrijving |
|---|---|
audio_client.transcribe(file_path) |
Een audiobestand transcriberen. Retourneert een object met een text eigenschap. |
Referenties:
Referentie Rust-SDK
Pakketten installeren
Als u op Windows ontwikkelt of verzendt, selecteert u het tabblad Windows. Het Windows-pakket kan worden geïntegreerd met de Windows ML runtime. Het biedt hetzelfde API-oppervlak met een grotere breedte van hardwareversnelling.
cargo add foundry-local-sdk --features winml
cargo add tokio --features full
cargo add tokio-stream anyhow
Snelstart
Gebruik dit codefragment om te controleren of de SDK de lokale modelcatalogus kan initialiseren en openen.
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(())
}
In dit voorbeeld wordt het aantal modellen afgedrukt dat beschikbaar is voor uw hardware.
Voorbeelden
- Zie de Foundry Local SDK samples GitHub voor voorbeeldtoepassingen die laten zien hoe u de Foundry Local Rust SDK gebruikt.
Configuratie
Met de FoundryLocalConfig struct kunt u het SDK-gedrag aanpassen:
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");
Kern-API
| Methode | Beschrijving |
|---|---|
FoundryLocalManager::create(config) |
Maak een nieuwe manager met een FoundryLocalConfig. |
manager.catalog().get_models().await |
Geef alle beschikbare modellen weer. |
manager.catalog().get_model(alias).await |
Een model ophalen via een alias. |
manager.catalog().get_cached_models().await |
Geef modellen weer in de lokale cache. |
manager.catalog().get_loaded_models().await |
Lijst met modellen die momenteel zijn geladen. |
model.download(callback).await |
Download het model (slaat over als het in de cache is opgeslagen). |
model.load().await |
Laad het model voor inferentie. |
model.unload().await |
Laad het model uit. |
API voor Native Chat-voltooieningen
Nadat u een model hebt geladen, maakt u een chatclient met optionele instellingen:
let client = model.create_chat_client()
.temperature(0.7)
.max_tokens(256);
| Methode | Beschrijving |
|---|---|
client.complete_chat(&messages, tools).await |
Genereer een volledig chatantwoord. |
client.complete_streaming_chat(&messages, tools).await |
Chatantwoordsegmenten streamen. |
Berichttypen: ChatCompletionRequestSystemMessage, ChatCompletionRequestUserMessage, ChatCompletionRequestMessage.
Systeemeigen audiotranscriptie-API
Nadat u een Whisper-model hebt geladen, maakt u een audioclient:
let audio_client = model.create_audio_client();
| Methode | Beschrijving |
|---|---|
audio_client.transcribe(file_path).await |
Een audiobestand transcriberen. Retourneert een object met een text veld. |
Referenties: