次の方法で共有


Foundry Local SDK リファレンス

Important

  • Foundry Local はプレビューで利用できます。 パブリック プレビュー リリースでは、アクティブなデプロイ中の機能に早期accessが提供されます。
  • 一般提供 (GA) の前は、機能、アプローチ、プロセスが変更されたり、機能が制限されたりする場合があります。

Foundry Local SDK を使用すると、シンプルで直感的な API を使用してローカル AI モデルを活用できる AI 機能をアプリケーションに配布できます。 SDK は、AI モデルの管理の複雑さを取り除き、ローカル AI 機能をアプリケーションに統合するためのシームレスなエクスペリエンスを提供します。 このリファレンスでは、JavaScript と C# の SDK 実装について説明します。 今後、さらに多くの言語が追加される予定です。

SDK では、Foundry Local CLI をエンド ユーザー マシンにインストールする必要はありません。これにより、ユーザーに追加のセットアップ手順を行わずにアプリケーションを発送できます。アプリケーションは自己完結型です。 Foundry Local SDK のその他の利点は次のとおりです。

  • ハードウェアの検出と最適化: GPU、NPU、CPU の自動機能評価。
  • 実行プロバイダー管理 (Windows):デバイスの機能に基づく適切な ONNX ランタイム実行プロバイダー (CUDA、Vitis、QNN、OpenVINO、TensorRT) の自動ダウンロードと登録。
  • WebGpu (macOS) によるメタル サポート: 最適化されたパフォーマンスで Apple Silicon でモデルを実行するためのネイティブ サポート。
  • モデルの取得: フォールバック サポートを使用して、バージョン管理、更新、およびハードウェア最適化モデルの自動選択を使用して Foundry モデル カタログからシームレスにダウンロードします。
  • 効率的なランタイム: <20 MB をアプリ サイズに追加し、携帯電話からデスクトップにデバイス上で実行します。
  • OpenAI API の互換性: OpenAI モデルとツールとの簡単な統合。
  • オプションの REST サーバー: Foundry Local を、他のアプリケーションからアクセスできるローカル サービスとして実行します。

JavaScript SDK リファレンス

プロジェクトの設定

Foundry Local SDK のアーキテクチャの概要は次のとおりです。

Foundry Local の新しいアーキテクチャの図。

SDK は、Foundry Local Core C API (.dll/.so/.dylib) に関する軽量ラッパーであり、JavaScript 開発者にわかりやすいインターフェイスを提供します。 SDK は、ネイティブ ライブラリの読み込み、メモリの管理、JavaScript と C の間でのデータ型の変換を処理します。Foundry Local Core C API には 2 つのフレーバーがありますが、API サーフェスは 同じです

  • WindowsML (WinML) - WindowsML を使用して、使用可能なハードウェアに必要なドライバーと実行プロバイダーを取得する Windows 固有の Windows。 これは、さまざまなハードウェアとのパフォーマンスと互換性が向上するため、Windows ユーザーに推奨されるオプションです。
  • クロスプラットフォーム - Windows、macOS、Linux で使用できます。 Apple Silicon を搭載した macOS デバイスでは、クロスプラットフォーム SDK は ONNX ランタイム WebGPU 実行プロバイダー経由のハードウェア アクセラレーションに Apple の Metal フレームワークを使用します。

Foundry Local SDK パッケージをプロジェクトにインストールする場合は、WinML またはクロスプラットフォーム バージョンのインストールを選択できます。

次の Windows 固有またはクロスプラットフォーム (macOS/Linux/Windows) の手順に従って、JavaScript プロジェクトで Foundry Local を使用します。

  1. 新しい JavaScript プロジェクトを作成します。
    mkdir app-name
    cd app-name
    npm init -y
    npm pkg set type=module
    
  2. Foundry Local SDK パッケージをインストールします。
    npm install --winml foundry-local-sdk
    npm install openai
    

クイック スタート

このスニペットを使用して、SDK がローカル モデル カタログを初期化してアクセスできることを確認します。

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

この例では、ハードウェアで使用可能なモデルの一覧を出力します。

サンプル

API リファレンス

References

C# SDK リファレンス

プロジェクト構築手引き

Foundry Local SDK には 2 つの NuGet パッケージ (WinML とクロスプラットフォーム パッケージ) があり、API サーフェスは同じですが、異なるプラットフォーム向けに最適化されています。

  • Windows: Windows Machine Learning (WinML) フレームワークを使用する Windows アプリケーションに固有の Microsoft.AI.Foundry.Local.WinML パッケージを使用します。
  • クロスプラットフォーム: クロスプラットフォーム アプリケーション (Windows、Linux、macOS) に使用できる Microsoft.AI.Foundry.Local パッケージを使用します。

ターゲット プラットフォームに応じて、次の手順に従って新しい C# アプリケーションを作成し、必要な依存関係を追加します。

Windows 固有またはクロスプラットフォーム (macOS/Linux/Windows) の手順に従って、C# プロジェクトで Foundry Local を使用します。

  1. 新しい C# プロジェクトを作成し、そこに移動します。
    dotnet new console -n app-name
    cd app-name
    
  2. 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. パッケージが正しく復元されるように、次の内容を含む nuget.config ファイルをプロジェクト ルートに作成します。
    <?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>
    

Microsoft.AI.Foundry.Local NuGet パッケージは net8.0 を対象とします。 .NET の前方互換性のおかげで、.NET 9、.NET 10 以降を対象とするプロジェクトで追加の構成なしにシームレスに動作します。 SDK では .NET 8 API のみが使用され、フレームワーク固有のコード パスは含まれないため、アプリがターゲットとするランタイムに関係なく動作は同じです。 最新の LTS リリースであり、インストール ベースが最も広い .NET 8 を対象としています。

クイック スタート

このスニペットを使用して、SDK がローカル モデル カタログを初期化してアクセスできることを確認します。

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

次の使用例は、ハードウェアで使用できるモデルの数を出力します。

サンプル

API リファレンス