Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Sada Foundry Local SDK umožňuje dodávat funkce AI ve vašich aplikacích, které umožňují používat místní modely AI prostřednictvím jednoduchého a intuitivního rozhraní API. Sada SDK abstrahuje složitost správy modelů AI a poskytuje bezproblémové prostředí pro integraci místních funkcí AI do vašich aplikací. Tato referenční dokumentace dokumentuje implementaci sady SDK pro C#, JavaScript, Python a Rust.
Sada SDK nevyžaduje instalaci rozhraní příkazového řádku Foundry Local CLI na počítači koncových uživatelů, což vám umožní dodávat aplikace bez dalších kroků nastavení pro vaše uživatele – vaše aplikace jsou samostatné. Mezi další výhody místní sady SDK Foundry patří:
- Detekce a optimalizace hardwaru: Automatické posouzení schopností pro GPU, NPU a procesor.
- Správa poskytovatelů zpracování (Windows): Automatické stahování a registrace příslušných poskytovatelů zpracování ONNX Runtime (CUDA, Vitis, QNN, OpenVINO, TensorRT) na základě schopností zařízení.
- Podpora kovu přes WebGpu (macOS): Nativní podpora spouštění modelů na Apple Silicon s optimalizovaným výkonem.
- Získání modelu: Bezproblémové stahování z Katalogu modelů Foundry s řízením verzí, aktualizacemi a automatickým výběrem modelů optimalizovaných pro hardware s podporou záložního řešení.
- Efektivní runtime: Do velikosti aplikace se přidává přibližně 20 MB, běží na zařízeních od mobilních telefonů po stolní počítače.
- Kompatibilita rozhraní API OpenAI: Snadná integrace s modely a nástroji OpenAI
- Volitelný server REST: Spusťte Foundry Local jako místní službu přístupnou jinými aplikacemi.
Referenční informace k sadě C# SDK
Instalace balíčků
Pokud vyvíjíte nebo vydáváte aplikace na Windows, vyberte kartu Windows. Balíček Windows se integruje s runtime modulem Windows ML — poskytuje stejné rozhraní API a nabízí širší možnosti hardwarové akcelerace.
dotnet add package Microsoft.AI.Foundry.Local.WinML
dotnet add package OpenAI
Ukázky jazyka C# v úložišti GitHub jsou předkonfigurované projekty. Pokud vytváříte úplně od začátku, měli byste si přečíst referenční informace k místní sadě SDK Foundry , kde najdete další podrobnosti o tom, jak nastavit projekt jazyka C# pomocí Foundry Local.
konfigurace projektu
Ukázková úložiště obsahují .csproj soubor, který automaticky zpracovává detekci platformy. Pokud vytváříte projekt úplně od začátku, použijte tuto konfiguraci jako referenci:
<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.18362.0</TargetFramework>
<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>
V následující tabulce jsou vysvětlená klíčová nastavení projektu:
| Setting | Description |
|---|---|
TargetFramework |
Na Windows cílí na hardwarovou akceleraci WinML net9.0-windows10.0.26100. Na jiných platformách cíle net9.0. |
WindowsAppSDKSelfContained |
Nastavte na hodnotu false tak, aby používala systémovou nainstalovanou Windows App SDK místo jeho sdružování. |
WindowsPackageType |
Nastavte None pro sestavení jako nerozbalenou desktopovou aplikaci (bez balení MSIX). |
EnableCoreMrtTooling |
Nastavte na false pro zakázání nástrojů prostředků MRT Core, které nejsou potřeba pro konzolové aplikace. |
RuntimeIdentifier |
Výchozím nastavením je použití identifikátoru běhového prostředí aktuální sady SDK, což zajišťuje výběr správných binárních souborů pro danou platformu. |
Microsoft.AI.Foundry.Local.WinML |
Windows balíček, který používá WinML pro hardwarovou akceleraci a automatickou správu poskytovatele spouštění. |
Microsoft.AI.Foundry.Local |
Multiplatformní balíček pro macOS, Linux a Windows bez WinML. |
Microsoft.ML.OnnxRuntime.Gpu / OnnxRuntimeGenAI.Cuda |
Linux GPU podporuje balíčky hardwaru s podporou CUDA. |
Rychlý start
Pomocí tohoto úryvku kódu ověřte, že SDK může inicializovat a přistupovat k místnímu katalogu modelů.
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()}");
Tento příklad vytiskne počet modelů dostupných pro váš hardware.
Ukázky
- Ukázkové aplikace, které ukazují, jak používat Foundry Local C# SDK sadu, najdete v GitHub úložišti s ukázkami Foundry Local C# SDK.
Referenční informace k rozhraní API
- Další podrobnosti o sadě Foundry Local C# SDK najdete v referenčních informacích k rozhraní API sady Foundry Local C# SDK.
Nativní rozhraní API pro přepis zvuku
Sada SDK pro C# obsahuje nativního audio klienta pro přepis zvukových souborů na zařízení pomocí modelů Whisper. Tím se spustí proces odvozování bez nutnosti webového serveru REST.
Získání zvukového klienta
Po načtení modelu Whisper získejte zvukového klienta:
var audioClient = await model.GetAudioClientAsync();
Metody přepisu zvuku
| Metoda | Signature | Description |
|---|---|---|
TranscribeAudioStreamingAsync() |
(string audioFilePath, CancellationToken ct) => IAsyncEnumerable<TranscriptionChunk> |
Přenáší transkripční výsledky po částech. Každý blok dat má Text vlastnost. |
Nastavení AudioClient
| Vlastnictví | Typ | Description |
|---|---|---|
Language |
string |
Kód jazyka ISO 639-1 (například "en"). Zlepšuje přesnost. |
Temperature |
float |
Vzorkovací teplota (0,0–1,0). Nižší hodnoty jsou determinističtější. |
Příklad
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);
}
Referenční informace:
Referenční informace k sadě JavaScript SDK
Instalace balíčků
Pokud vyvíjíte nebo vydáváte aplikace na Windows, vyberte kartu Windows. Balíček Windows se integruje s runtime modulem Windows ML — poskytuje stejné rozhraní API a nabízí širší možnosti hardwarové akcelerace.
npm install foundry-local-sdk-winml openai
Rychlý start
Pomocí tohoto úryvku kódu ověřte, že SDK může inicializovat a přistupovat k místnímu katalogu modelů.
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}`);
}
Tento příklad zobrazí seznam dostupných modelů pro váš hardware.
Ukázky
- Pro ukázky aplikací, které demonstrují, jak používat Foundry Local JavaScript SDK, navštivte GitHub úložiště Foundry Local JavaScript SDK Samples.
Referenční informace k rozhraní API
- Další podrobnosti o sadě Foundry Local JavaScript SDK najdete v referenčních informacích k rozhraní API sady Foundry Local JavaScript SDK.
Odkazy
Referenční informace k sadě PYTHON SDK
Instalace balíčků
Pokud vyvíjíte nebo vydáváte aplikace na Windows, vyberte kartu Windows. Balíček Windows se integruje s runtime modulem Windows ML — poskytuje stejné rozhraní API a nabízí širší možnosti hardwarové akcelerace.
pip install foundry-local-sdk-winml openai
Rychlý start
Pomocí tohoto úryvku kódu ověřte, že SDK může inicializovat a přistupovat k místnímu katalogu modelů.
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())
Tento příklad vytiskne počet modelů dostupných pro váš hardware.
Ukázky
- Ukázkové aplikace demonstrující použití sady Foundry Local Python SDK najdete v GitHub úložišti Foundry Local SDK Samples.
Konfigurace
Třída Configuration umožňuje přizpůsobit chování sady SDK:
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"},
)
| Parameter | Typ | Description |
|---|---|---|
app_name |
str |
Název aplikace. |
log_level |
str |
Úroveň protokolování (například "info", "debug"). |
model_cache_dir |
str |
Adresář pro modely uložené v mezipaměti |
web |
dict |
Konfigurace webové služby s urls klíčem |
Základní rozhraní API
| Metoda | Description |
|---|---|
FoundryLocalManager.initialize(config) |
Inicializace singletonového manažera Configurationpomocí . |
FoundryLocalManager.instance |
Získejte přístup k inicializované instanci správce. |
manager.catalog.list_models() |
Zobrazí seznam všech dostupných modelů v katalogu. |
manager.catalog.get_model(alias) |
Získejte model podle aliasu |
manager.catalog.get_cached_models() |
Vypisujte modely v místní mezipaměti. |
manager.catalog.get_loaded_models() |
Seznam aktuálně načtených modelů |
model.download(progress_callback) |
Stáhněte si model (přeskočí se, pokud je uložený v mezipaměti). |
model.load() |
Načtěte model pro odvozování. |
model.unload() |
Uvolněte model. |
model.is_cached |
Zkontrolujte, jestli je model místně uložený v mezipaměti. |
model.is_loaded |
Zkontrolujte, jestli je model načtený. |
Rozhraní API pro automatické dokončování nativních chatů
Po načtení modelu získejte chatovacího klienta:
client = model.get_chat_client()
| Metoda | Description |
|---|---|
client.complete_chat(messages) |
Vygenerujte úplnou odpověď chatu. |
client.complete_streaming_chat(messages) |
Streamování bloků odpovědí chatu |
Nativní rozhraní API pro přepis zvuku
Po načtení modelu Whisper získejte zvukového klienta:
audio_client = model.get_audio_client()
| Metoda | Description |
|---|---|
audio_client.transcribe(file_path) |
Přepis zvukového souboru. Vrátí objekt s text vlastností. |
Referenční informace:
Referenční informace k sadě Rust SDK
Instalace balíčků
Pokud vyvíjíte nebo vydáváte aplikace na Windows, vyberte kartu Windows. Balíček Windows se integruje s runtime modulem Windows ML — poskytuje stejné rozhraní API a nabízí širší možnosti hardwarové akcelerace.
cargo add foundry-local-sdk --features winml
cargo add tokio --features full
cargo add tokio-stream anyhow
Rychlý start
Pomocí tohoto úryvku kódu ověřte, že SDK může inicializovat a přistupovat k místnímu katalogu modelů.
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(())
}
Tento příklad vytiskne počet modelů dostupných pro váš hardware.
Ukázky
- Ukázkové aplikace, které demonstrují, jak používat Foundry Local Rust SDK, najdete v GitHub úložišti Foundry Local SDK Samples.
Konfigurace
Struktura FoundryLocalConfig umožňuje přizpůsobit chování sady SDK:
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");
Základní rozhraní API
| Metoda | Description |
|---|---|
FoundryLocalManager::create(config) |
Vytvořte nového manažera pomocí příkazu FoundryLocalConfig. |
manager.catalog().get_models().await |
Zobrazí seznam všech dostupných modelů. |
manager.catalog().get_model(alias).await |
Získejte model podle aliasu |
manager.catalog().get_cached_models().await |
Vypisujte modely v místní mezipaměti. |
manager.catalog().get_loaded_models().await |
Seznam aktuálně načtených modelů |
model.download(callback).await |
Stáhněte si model (přeskočí se, pokud je uložený v mezipaměti). |
model.load().await |
Načtěte model pro odvozování. |
model.unload().await |
Uvolněte model. |
Rozhraní API pro automatické dokončování nativních chatů
Po načtení modelu vytvořte chatovacího klienta s volitelným nastavením:
let client = model.create_chat_client()
.temperature(0.7)
.max_tokens(256);
| Metoda | Description |
|---|---|
client.complete_chat(&messages, tools).await |
Vygenerujte úplnou odpověď chatu. |
client.complete_streaming_chat(&messages, tools).await |
Streamování bloků odpovědí chatu |
Typy zpráv: ChatCompletionRequestSystemMessage, ChatCompletionRequestUserMessage. ChatCompletionRequestMessage
Nativní rozhraní API pro přepis zvuku
Po načtení modelu Whisper vytvořte zvukového klienta:
let audio_client = model.create_audio_client();
| Metoda | Description |
|---|---|
audio_client.transcribe(file_path).await |
Přepis zvukového souboru. Vrátí objekt s polem text . |
Referenční informace: