Bagikan melalui


Referensi SDK Lokal Foundry

Penting

  • Foundry Local tersedia dalam pratinjau. Rilis pratinjau publik menyediakan akses awal ke fitur yang sedang dalam penyebaran aktif.
  • Fitur, pendekatan, dan proses dapat berubah atau memiliki kemampuan terbatas, sebelum Ketersediaan Umum (GA).

Foundry Local SDK memungkinkan Anda untuk mengirim fitur AI dalam aplikasi Anda yang mampu memanfaatkan model AI lokal melalui API sederhana dan intuitif. SDK mengabstraksi kompleksitas pengelolaan model AI dan memberikan pengalaman yang mulus untuk mengintegrasikan kemampuan AI lokal ke dalam aplikasi Anda. Referensi ini men dokumen implementasi SDK untuk JavaScript dan C#. Lebih banyak bahasa akan ditambahkan di masa mendatang.

SDK tidak mengharuskan Foundry Local CLI diinstal pada komputer pengguna akhir, memungkinkan Anda untuk mengirim aplikasi Anda tanpa langkah-langkah penyiapan tambahan untuk pengguna Anda - aplikasi Anda mandiri. Manfaat tambahan dari Foundry Local SDK meliputi:

  • Deteksi dan pengoptimalan perangkat keras: Penilaian kemampuan otomatis untuk GPU, NPU, dan CPU.
  • Manajemen penyedia eksekusi (Windows): Pengunduhan dan pendaftaran otomatis penyedia eksekusi ONNX Runtime yang sesuai (CUDA, Vitis, QNN, OpenVINO, TensorRT) berdasarkan kemampuan perangkat.
  • Dukungan logam melalui WebGpu (macOS): Dukungan asli untuk menjalankan model di Apple Silicon dengan performa yang dioptimalkan.
  • Pengambilan model: Pengunduhan tanpa hambatan dari Foundry Model Catalog dengan versi, pembaruan, dan pemilihan model yang dioptimalkan untuk perangkat keras secara otomatis dengan dukungan fallback.
  • Runtime yang efisien: Menambahkan <20MB ke ukuran aplikasi, berjalan pada perangkat dari ponsel ke desktop.
  • Kompatibilitas OPENAI API: Integrasi mudah dengan model dan alat OpenAI.
  • Server REST opsional: Jalankan Foundry Local sebagai layanan lokal yang dapat diakses oleh aplikasi lain.

Referensi JavaScript SDK

Penyusunan proyek

Arsitektur tingkat tinggi dari Foundry Local SDK adalah sebagai berikut:

Diagram arsitektur baru untuk Foundry Local.

SDK adalah pembungkus ringan di sekitar Foundry Local Core C API (.dll/.so/.dylib) yang menyediakan antarmuka yang lebih ramah pengguna untuk pengembang JavaScript. SDK menangani pemuatan pustaka asli, mengelola memori, dan mengonversi jenis data antara JavaScript dan C. Foundry Local Core C API memiliki dua varian dengan permukaan API yang sama:

  • WindowsML (WinML) - Khusus Windows yang menggunakan WindowsML untuk memperoleh driver dan penyedia eksekusi yang diperlukan untuk perangkat keras yang tersedia. Ini adalah opsi yang direkomendasikan untuk pengguna Windows karena memberikan performa dan kompatibilitas yang lebih baik dengan berbagai perangkat keras.
  • Lintas platform - dapat digunakan di Windows, macOS, dan Linux. Perlu dicatat bahwa pada perangkat macOS dengan Apple Silicon, SDK Lintas platform akan menggunakan kerangka kerja Logam Apple untuk akselerasi perangkat keras melalui penyedia eksekusi WebGPU runtime ONNX.

Saat menginstal paket Foundry Local SDK ke dalam proyek, Anda dapat memilih untuk menginstal WinML atau versi lintas platform.

Gunakan Foundry Local dalam proyek JavaScript Anda dengan mengikuti instruksi Khusus Windows atau Lintas Platform (macOS/Linux/Windows):

  1. Buat proyek JavaScript baru:
    mkdir app-name
    cd app-name
    npm init -y
    npm pkg set type=module
    
  2. Pasang paket Foundry SDK Lokal:
    npm install --winml foundry-local-sdk
    npm install openai
    

Mulai Cepat

Gunakan cuplikan ini untuk memverifikasi bahwa SDK dapat menginisialisasi dan mengakses katalog model lokal.

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

Contoh ini menghasilkan daftar model yang tersedia untuk perangkat keras Anda.

Samples

Referensi API

Referensi

Referensi C# SDK

Panduan penyiapan proyek

Ada dua paket NuGet untuk Foundry Local SDK - WinML dan paket lintas platform - yang memiliki permukaan API yang sama tetapi dioptimalkan untuk platform yang berbeda:

  • Windows: Menggunakan paket Microsoft.AI.Foundry.Local.WinML yang khusus untuk aplikasi Windows, yang menggunakan kerangka kerja Windows Machine Learning (WinML).
  • Lintas platform: Menggunakan Microsoft.AI.Foundry.Local paket yang dapat digunakan untuk aplikasi lintas platform (Windows, Linux, macOS).

Bergantung pada platform target Anda, ikuti instruksi berikut untuk membuat aplikasi C# baru dan tambahkan dependensi yang diperlukan:

Gunakan Foundry Local dalam proyek C# Anda dengan mengikuti instruksi Khusus Windows atau Lintas Platform (macOS/Linux/Windows):

  1. Buat proyek C# baru dan navigasikan ke dalamnya:
    dotnet new console -n app-name
    cd app-name
    
  2. Buka dan edit file ke 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.*" />
        <PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.10" />
        <PackageReference Include="OpenAI" Version="2.5.0" />
      </ItemGroup>
    
    </Project>
    
  3. Buat nuget.config file di akar proyek dengan konten berikut sehingga paket dipulihkan dengan benar:
    <?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>
    

Nota

Paket NuGet Microsoft.AI.Foundry.Local menargetkan net8.0. Dengan kompatibilitas forward dari .NET, ia dapat bekerja dengan mulus dalam proyek yang menargetkan .NET 9, .NET 10, dan versi yang lebih baru — tidak diperlukan konfigurasi tambahan. SDK hanya menggunakan API .NET 8 dan tidak berisi jalur kode khusus kerangka kerja, sehingga perilaku identik terlepas dari runtime mana yang ditargetkan aplikasi Anda. Kami menargetkan .NET 8 karena merupakan rilis LTS saat ini dengan basis penginstalan terluas.

Mulai Cepat

Gunakan cuplikan ini untuk memverifikasi bahwa SDK dapat menginisialisasi dan mengakses katalog model lokal.

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

Contoh ini mencetak jumlah model yang tersedia untuk perangkat keras Anda.

Samples

Referensi API