Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Foundry Local, Windows üzerinde
Note
Cli, model yönetimi, isteğe bağlı REST sunucusu, Python SDK ve daha fazlası dahil olmak üzere Foundry Local için tam belgeler Microsoft Dökümhane belgelerinde tutulur. Bu sayfadaki bağlantılar gerektiğinde sizi oraya götürür. İstediğiniz zaman Windows yapay zeka belgelerine dönmek için tarayıcınızın geri düğmesini veya içerik haritasını kullanın.
Foundry Local'ın senaryonuz için doğru seçim olup olmadığından emin değilseniz devam etmeden önce bkz. Windows AI çözümünüzü bulma.
Prerequisites
- Windows 11, sürüm 24H2 (derleme 26100) veya üzeri
- .NET 9.0 SDK veya üzeri
- Seçtiğiniz model için yeterli bellek ve disk alanına sahip bir x64 veya Arm64 cihazı
- İlk paket, model ve çalışma zamanı bileşeni indirmeleri için İnternet erişimi
Windows SDK'sı uyumlu CPU, GPU ve NPU model çeşitlemelerini kullanabilir. Seçilen model uyumlu bir CPU değişkenine sahip olduğunda ayrılmış GPU, NPU veya Copilot+ PC gerekli değildir. Kullanılabilir hızlandırma ve performans cihazınıza, modelinize ve yürütme sağlayıcınıza bağlıdır.
Note
Bu hızlı başlangıçta, şu anda Foundry Local diğer adı üzerinden kullanılabilen en son Microsoft Phi modeli olan phi-4-mini kullanılır. Foundry Local katalog takma adları ve önerilen modeller, katalog zaman içinde değiştikçe değişebilir.
Phi-4 Mini, Windows ile birlikte gelen Windows yapay zeka API'si modeli Phi Silica'dan ayrıdır. Phi Silica, Sınırlı Erişim özelliği olmayı sürdürmektedir ve bir kilit açma belirteci gerektirir. Yerine, Sınırlı Erişim Özelliği belirteci gerektirmeyen Aion Instruct'ın geçirilmesi planlanmaktadır. Erişim ayrıntıları ve geçiş zaman çizelgesi için bkz . Phi Silica'yı kullanmaya başlama .
İsteğe bağlı: Foundry Yerel CLI'sini yükleme
Bu hızlı başlangıçtaki SDK iş akışı CLI gerektirmez. Yalnızca modelleri bir terminalden incelemek ve yönetmek istiyorsanız yükleyin:
winget install Microsoft.FoundryLocal
Ardından, komutun PATH'inizde olması için foundry terminalinizi kapatıp yeniden açın. Doğrula
foundry --version
Bir proje oluştur
dotnet new console -n FoundryLocalDemo
cd FoundryLocalDemo
NuGet paketi yerel Windows ikili dosyaları içerdiğinden projenin Windows bir hedef çerçeveye ve çalışma zamanı tanımlayıcılarına ihtiyacı vardır.
FoundryLocalDemo.csproj açın ve <PropertyGroup> bloğunu şununla değiştirin:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
</PropertyGroup>
Ardından yeni hedef için varlık dosyasını oluşturmak üzere geri yükleyin:
dotnet restore
NuGet paketini yükleme
Geçerli kararlı Windows paketini yükleyin:
dotnet add package Microsoft.AI.Foundry.Local.WinML
Bu paket, Foundry Local yerel sohbet API’si tarafından kullanılan ChatMessage ve ilgili türleri içerir. Geçerli cihaz için uyumlu bir model çeşidi seçer ve donanım hızlandırma için Windows ML yürütme sağlayıcılarını kullanabilir.
Note
Windows olmayan platformları hedeflemeniz gerekiyorsa bunun yerine Microsoft.AI.Foundry.Local kullanın. Windows ML tümleştirmesi olmadan aynı Foundry Yerel API yüzeyini sağlar.
Yukarıdaki komut geçerli kararlı paketi yükler. WinUI öğreticisi .NET 10 kullanır ve paket sürümlerini sabitler; böylece öğreticideki adımların tamamını yeniden uygulayabilirsiniz.
Hızlı başlangıç: model çalıştırma
Program.cs içeriğini aşağıdakilerle değiştirin ve ardından dotnet run çalıştırın. Program Foundry Local'ı başlatır, gerekirse modeli indirir, sohbet tamamlama işlemini çalıştırır ve temizler.
using Microsoft.AI.Foundry.Local;
using Microsoft.Extensions.Logging.Abstractions;
using Betalgo.Ranul.OpenAI.ObjectModels.RequestModels;
// 1. Initialize the native in-process Foundry Local SDK.
await FoundryLocalManager.CreateAsync(
new Configuration { AppName = "my-app" },
NullLogger.Instance);
var manager = FoundryLocalManager.Instance;
try
{
// 2. Look up the model in the catalog by alias.
var catalog = await manager.GetCatalogAsync();
var model = await catalog.GetModelAsync("phi-4-mini")
?? throw new Exception(
"Model 'phi-4-mini' not found in catalog. " +
"Check your internet connection and available model aliases.");
// 3. Download the model if it is not already cached.
if (!await model.IsCachedAsync())
{
Console.Write("Downloading phi-4-mini...");
await model.DownloadAsync(progress =>
{
Console.Write($"\rDownloading phi-4-mini {progress,5:F1}%");
});
Console.WriteLine();
}
// 4. Load the model into memory.
await model.LoadAsync();
// 5. Run a chat completion.
var chatClient = await model.GetChatClientAsync();
var response = await chatClient.CompleteChatAsync(new[]
{
new ChatMessage { Role = "system", Content = "You are a helpful assistant." },
new ChatMessage { Role = "user", Content = "Explain async/await in C# in two sentences." }
});
if (!response.Successful)
throw new Exception(
$"Chat completion failed: {response.Error?.Message ?? "unknown error"} " +
$"(code: {response.Error?.Code})");
var content = response.Choices![0].Message.Content;
if (string.IsNullOrEmpty(content))
throw new Exception(
"Model returned empty content. " +
"Try the request again or select another compatible model variant.");
Console.WriteLine(content);
}
finally
{
// 6. Clean up — always runs even if an earlier step throws.
manager.Dispose();
}
Akış yanıtları
Kullanıcı arabirimi uygulamalarında daha iyi bir kullanıcı deneyimi için yanıt belirtecini belirteçe göre akışla aktarın.
Bu kod parçacığı yukarıdaki hızlı başlangıçtan devam eder— chatClient 5. adımdan gelir:
using var cts = new CancellationTokenSource();
await foreach (var chunk in chatClient.CompleteChatStreamingAsync(
new[] { new ChatMessage { Role = "user", Content = "Write a haiku about Windows." } },
cts.Token))
{
Console.Write(chunk.Choices?[0]?.Message?.Content);
}
Console.WriteLine();
Oluşturma parametrelerini ayarlama
chatClient.Settings.Temperature = 0.7f;
chatClient.Settings.MaxTokens = 512;
chatClient.Settings.TopP = 0.9f;
Model diğer adları
Foundry Local'ın uyumlu bir donanım çeşidi seçebilmesi için GetModelAsyncmodelin diğer adını (tam model kimliği değil) iletir. Modele ve cihaza bağlı olarak, bu Snapdragon'daki bir QNN NPU değişkeni, NVIDIA'daki bir CUDA değişkeni veya bir CPU değişkeni olabilir.
İsteğe bağlı CLI’yi yüklediyseniz, mevcut takma adları görmek için onu çalıştırın:
foundry model list
Örneğin, Microsoft Phi-4 Mini modeli için kullanınphi-4-mini. Katalog zaman içinde değişir, bu nedenle güncel diğer adlar ve kullanılabilir varyantlar için Foundry Yerel model kataloğunu kontrol edin.
Python'a hızlı başlangıç
Foundry Local ayrıca Python, JavaScript (Node.js) ve Rust'ı da destekler. Desenin çalıştığını onaylamak için en düşük Python örneği aşağıda verilmiştir; dört dilin de tam kılavuzu Microsoft Dökümhane belgelerinde verilmiştir.
Aşağıdakilerden birini yükleyin; çakışan bağımlılıkları olduğundan ikisini de yüklemeyinonnxruntime-core:
pip install foundry-local-sdk-winml # Windows — includes hardware acceleration (recommended on Windows)
pip install foundry-local-sdk # macOS/Linux, or Windows without hardware acceleration
Important
(foundry-local olmadan PyPI üzerindeki -sdk paketi), ilişkili olmayan bağımsız bir üçüncü taraf pakettir. Microsoft Foundry Yerel SDK'sını almak için foundry-local-sdk veya foundry-local-sdk-winml yükleyin.
Oluştur app.py:
from foundry_local_sdk import Configuration, FoundryLocalManager
FoundryLocalManager.initialize(Configuration(app_name="my-app"))
manager = FoundryLocalManager.instance
model = manager.catalog.get_model("phi-4-mini")
model.download(lambda p: print(f"\rDownloading {p:.0f}%", end="", flush=True))
model.load()
client = model.get_chat_client()
for chunk in client.complete_streaming_chat([{"role": "user", "content": "Why is the sky blue?"}]):
print(chunk.choices[0].delta.content or "", end="", flush=True)
print()
model.unload()
Çalıştırın:
python app.py
Yürütme sağlayıcısı kurulumu, hata işleme ve model listesi de dahil olmak üzere tam Python hızlı başlangıç için Microsoft Foundry belgelerindeki Foundry Yerel'i kullanmaya başlama bölümüne bakın.
WinUI 3 veya WPF uygulamasından kullanma
App.xaml.cs veya App.cs içinde bir kez başlatın.
protected override async void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
await FoundryLocalManager.CreateAsync(
new Configuration { AppName = "MyWinUIApp" },
NullLogger.Instance);
// ...
}
Ardından uygulamanın herhangi bir yerinde çözümleyin FoundryLocalManager.Instance . Çıkış işleyicisinde Dispose() öğesini uygulamada çağırın.
Eksiksiz bir uygulama kılavuzu için WinUI öğreticisine geçin. Bu, model indirme için açık onayı, ilerlemeyi, iptali, erişilebilirliği ve çıktının gözden geçirilmesini kapsar.
Buluta geri dönüş
Foundry Local ile Windows AI API'leri'ni ve Azure OpenAI'yi birleştirerek dayanıklı bir çok katmanlı yapı oluşturun. Eksiksiz bir derlenebilir örnek için bakınız Windows AI çözümünüzü seçin.
Troubleshooting
OGA Error: N instances of struct Generators::Model were leaked
Bu uyarılar programdan çıktıktan sonra görünür ve zararsızdır. Bunlar, temel alınan ONNX Runtime GenAI (OGA) kitaplığının yerel kaynak izlemesinden gelir. Çıkışınız doğru; uyarılar kodunuzla ilgili bir sorun olduğunu göstermez.
Error in cpuinfo: Unknown chip model name 'Snapdragon...'
ONNX Çalışma Zamanı'ndan gelen bu uyarı, kitaplığın CPU özellik algılama için ARM SoC'nizi tanımadığı anlamına gelir. Güvenli varsayılanlara geri döner ve çıkarım normal şekilde çalışır. Eyleme gerek yoktur.
Model '...' not found in catalog
SDK, model kataloğunu İnternet'ten getirir. Ağ bağlantınızı denetleyin. Belirli bir model diğer adı bulunamazsa, kullanılabilir diğer adları görmek için komutunu çalıştırın foundry model list veya foundrylocal.ai/models'da tam kataloğa göz atın.
Model boş içerik döndürüyor
İsteği yeniden deneyin ve seçili modelin cihazınız için uyumlu bir değişkene sahip olduğunu onaylayın. Sorun devam ederse daha küçük bir model veya CPU değişkeni seçin ve cihazda yeterli kullanılabilir belleğe sahip olup olmadığını denetleyin.
foundry-local-sdk-winml requires onnxruntime-core==X.Y.Z, but you have ... which is incompatible
Bu pip bağımlılığı çakışması, hem foundry-local-sdk-winml hem de foundry-local-sdk'in yüklü olduğu anlamına gelir; bu bileşenler, onnxruntime-core'nin farklı sürümlerine sabitlenmiş olup birlikte var olamazlar. Birini kaldırın:
pip uninstall foundry-local-sdk # if you want the winml (Windows) package
pip uninstall foundry-local-sdk-winml # if you want the cross-platform package
Ardından istediğinizi yeniden yükleyin. Sanal ortam kullanmak bu sorunu tamamen önler.
- Full Foundry Yerel belgeleri — CLI, REST API, Python SDK, model yönetimi
- Foundry Local SDK referansı — SDK kurulumu ve API kullanım kılavuzu
- Windows ML — tam EP denetimiyle kendi ONNX modelinizi getirin
- Windows yapay zeka çözümünüzü seçin — tüm Windows yapay zeka seçeneklerini karşılaştırın