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 のアーキテクチャの概要は次のとおりです。
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 を使用します。
- 新しい JavaScript プロジェクトを作成します。
mkdir app-name cd app-name npm init -y npm pkg set type=module - 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}`);
}
この例では、ハードウェアで使用可能なモデルの一覧を出力します。
サンプル
- Foundry Local JavaScript SDK の使用方法を示すサンプル アプリケーションについては、 Foundry Local JavaScript SDK Samples GitHub リポジトリを参照してください。
API リファレンス
- Foundry Local JavaScript SDK の詳細については、 Foundry Local JavaScript SDK 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 を使用します。
- 新しい C# プロジェクトを作成し、そこに移動します。
dotnet new console -n app-name cd app-name -
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> - パッケージが正しく復元されるように、次の内容を含む
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()}");
次の使用例は、ハードウェアで使用できるモデルの数を出力します。
サンプル
- Foundry Local C# SDK の使用方法を示すサンプル アプリケーションについては、 Foundry Local C# SDK Samples GitHub リポジトリを参照してください。
API リファレンス
- Foundry Local C# SDK の詳細については、 Foundry Local C# SDK API リファレンスを参照してください。