Aracılığıyla paylaş


Foundry Yerel SDK referansı

Önemli

  • Foundry Local önizleme aşamasındadır. Genel önizleme sürümleri, etkin dağıtımdaki özelliklere erken erişim sağlar.
  • Özellikler, yaklaşımlar ve işlemler, Genel Kullanılabilirlik (GA) öncesinde değişebilir veya sınırlı özelliklere sahip olabilir.

Foundry Yerel SDK'sı, uygulamalarınızda yerel yapay zeka modellerinden yararlanabilen yapay zeka özelliklerini basit ve sezgisel bir API aracılığıyla göndermenizi sağlar. SDK, yapay zeka modellerini yönetmenin karmaşıklıklarını soyutlar ve yerel yapay zeka özelliklerini uygulamalarınızla tümleştirmek için sorunsuz bir deneyim sunar. Bu başvuru, JavaScript ve C# için SDK uygulamalarını belgelemektedir. Gelecekte daha fazla dil eklenecektir.

SDK, Son kullanıcılar makinesine Foundry Local CLI'nın yüklenmesini gerektirmez ve kullanıcılarınız için ek kurulum adımları olmadan uygulamalarınızı göndermenize olanak tanır; uygulamalarınız bağımsızdır. Foundry Yerel SDK'sının şu ek avantajları vardır:

  • Donanım algılama ve iyileştirme: GPU, NPU ve CPU için otomatik yetenek değerlendirmesi.
  • Yürütme sağlayıcısı yönetimi (Windows): Cihaz özelliklerine göre uygun ONNX Çalışma Zamanı yürütme sağlayıcılarının (CUDA, Vitis, QNN, OpenVINO, TensorRT) otomatik olarak indirilmesi ve kaydedilmesi.
  • WebGpu (macOS) aracılığıyla metal desteği: Apple Silicon'da modelleri en iyi duruma getirilmiş performansla çalıştırmak için yerel destek.
  • Model edinimi: Sürüm oluşturma, güncellemeler ve geri dönüş desteği ile Foundry Model Kataloğu'ndan otomatik donanım optimizasyonlu model seçimi ile sorunsuz indirme.
  • Verimli çalışma zamanı: Uygulama boyutuna 20 MB ekler <, cep telefonlarından masaüstlerine kadar cihazlarda çalışır.
  • OpenAI API uyumluluğu: OpenAI modelleri ve araçlarıyla kolay tümleştirme.
  • İsteğe bağlı REST sunucusu: Foundry Local'ı diğer uygulamalar tarafından erişilebilen bir yerel hizmet olarak çalıştırın.

JavaScript SDK Dokümanı

Proje kurulumu

Dökümhane Yerel SDK'sının üst düzey mimarisi aşağıdaki gibidir:

Foundry Local için yeni mimarinin diyagramı.

SDK, JavaScript geliştiricileri için daha kullanıcı dostu bir arabirim sağlayan Bir Foundry Local Core C API'si (.dll/.so/.dylib) etrafında hafif bir sarmalayıcıdır. SDK, yerel kitaplığı yüklemeyi, belleği yönetmeyi ve JavaScript ile C arasında veri türlerini dönüştürmeyi işler. Foundry Local Core C API'sinin iki çeşidi vardır ancak aynı API yüzeyi vardır:

  • WindowsML (WinML) - Kullanılabilir donanım için gerekli sürücüleri ve yürütme sağlayıcılarını almak için WindowsML kullanan Windows'a özgü. Çok çeşitli donanımlarla daha iyi performans ve uyumluluk sağladığından Bu, Windows kullanıcıları için önerilen seçenektir.
  • Platformlar arası - Windows, macOS ve Linux'ta kullanılabilir. Apple Silicon ile macOS cihazlarında Platformlar Arası SDK'nın ONNX çalışma zamanı WebGPU yürütme sağlayıcısı aracılığıyla donanım hızlandırma için Apple'ın Metal çerçevesini kullanacağı belirtilmelidir.

Foundry Yerel SDK paketini projenize yüklediğinizde WinML veya platformlar arası sürümü yüklemeyi seçebilirsiniz.

Windows'a özgü veya Platformlar Arası (macOS/Linux/Windows) yönergelerini izleyerek JavaScript projenizde Foundry Local kullanın:

  1. Yeni bir JavaScript projesi oluşturun:
    mkdir app-name
    cd app-name
    npm init -y
    npm pkg set type=module
    
  2. Foundry Yerel SDK paketini yükleyin:
    npm install --winml foundry-local-sdk
    npm install openai
    

Hızlı Başlangıç

SDK'nin yerel model kataloğunu başlatıp erişebildiğini doğrulamak için bu kod parçacığını kullanın.

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

Bu örnek, donanımınız için kullanılabilir modellerin listesini oluşturur.

Örnekleri

API referansı

Referanslar

C# SDK Referansı

Proje kurulum kılavuzu

Foundry Yerel SDK için, aynı API yüzeyine sahip olan ancak farklı platformlar için optimize edilmiş iki NuGet paketi vardır: WinML ve platformlar arası paket.

  • Windows: Windows Machine Learning (WinML) çerçevesini kullanan Windows uygulamalarına özgü Microsoft.AI.Foundry.Local.WinML paketini kullanır.
  • Platformlar arası: Platformlar arası uygulamalar (Windows, Linux, macOS) için kullanılabilecek paketi kullanır Microsoft.AI.Foundry.Local .

Hedef platformunuza bağlı olarak, yeni bir C# uygulaması oluşturmak ve gerekli bağımlılıkları eklemek için şu yönergeleri izleyin:

Şu Windows'a özgü veya Platformlar Arası (macOS/Linux/Windows) yönergelerini izleyerek C# projenizde Foundry Local kullanın:

  1. Yeni bir C# projesi oluşturun ve bu projeye gidin:
    dotnet new console -n app-name
    cd app-name
    
  2. Dosyayı açın ve şu şekilde düzenleyin app-name.csproj :
    <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. Paketlerin doğru şekilde geri yüklenmesi için proje kökünde aşağıdaki içeriğe sahip bir nuget.config dosya oluşturun:
    <?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>
    

Uyarı

Microsoft.AI.Foundry.Local NuGet paketi net8.0'ı hedefler. .NET'in ileriye dönük uyumluluğu sayesinde, .NET 9, .NET 10 ve üzerini hedefleyen projelerde sorunsuz çalışır ve başka bir yapılandırmaya gerek yoktur. SDK yalnızca .NET 8 API'lerini kullanır ve çerçeveye özgü kod yolu içermez, bu nedenle uygulamanızın hedeflediği çalışma zamanı ne olursa olsun davranış aynıdır. En geniş yükleme tabanına sahip geçerli Uzun Vadeli Destek (LTS) sürümü olduğundan .NET 8'i hedefledik.

Hızlı Başlangıç

SDK'nin yerel model kataloğunu başlatıp erişebildiğini doğrulamak için bu kod parçacığını kullanın.

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

Bu örnek, donanımınız için kullanılabilen model sayısını yazdırır.

Örnekleri

API referansı