次の方法で共有


Foundry Local SDK 移行ガイド

このガイドでは、コードを従来のバージョンの Foundry Local SDK から現在のバージョンに移行する手順について説明します。 新しい SDK では Foundry ローカル CLI への依存関係が削除されるため、ユーザーが CLI をインストールしたり、ローカル Foundry 環境を設定したりする必要なく、アプリケーションを配布できます。 新しい SDK には、使いやすさとパフォーマンスを向上させるために API の機能強化も含まれています。

C# SDK 移行ガイド

デバイス上の AI を使用してアプリケーションを出荷する機能を向上させるために、バージョン 0.8.0 以降の C# SDK のアーキテクチャが大幅に変更されています。 このセクションでは、アプリケーションを最新バージョンの SDK に移行するために役立つ主な変更について説明します。

SDK バージョン 0.8.0 以降では、以前のバージョン (<=0.3.0) の API に破壊的変更があります。

次の図は、以前のアーキテクチャ ( 0.8.0 より前のバージョン) が、REST Web サーバーを使用して、チャットの完了などのモデルと推論を管理するために大きく依存していた方法を示しています。

Foundry Local の前のアーキテクチャの図。

SDK では、リモート 手続き型呼び出し (RPC) を使用してマシン上の Foundry ローカル CLI 実行可能ファイルを検索し、Web サーバーを起動してから、HTTP 経由で通信します。 このアーキテクチャには、次のようないくつかの制限がありました。

  • Web サーバーのライフサイクルを管理する際の複雑さ。
  • 困難なデプロイ: エンド ユーザーは、マシン アプリケーションに Foundry ローカル CLI をインストールする必要があります。
  • CLI と SDK のバージョン管理により、互換性の問題が発生する可能性があります。

これらの問題に対処するために、バージョン 0.8.0 以降で再設計されたアーキテクチャでは、より合理化されたアプローチが使用されます。 新しいアーキテクチャは次のとおりです。

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

この新しいアーキテクチャでは、次の操作を行います。

  • アプリケーションは 自己完結型です。 Foundry Local CLI をエンド ユーザーのマシンに個別にインストールする必要がないため、アプリケーションを簡単にデプロイできます。
  • REST Web サーバーは 省略可能です。 HTTP 経由で通信する他のツールと統合する場合は、引き続き Web サーバーを使用できます。 この機能 の使用方法の詳細については、「Foundry Local で REST サーバー経由でチャットの完了 を使用する」を参照してください。
  • SDK では 、チャットの完了と音声の文字起こしがネイティブにサポートされているため、依存関係の少ない会話型 AI アプリケーションを構築できます。 この機能の使用方法の詳細については、「 Foundry Local Native Chat Completions API を使用 する」を参照してください。
  • Windowsデバイスでは、適切なランタイムとドライバーをプルすることで、デバイス上のモデルのhardware アクセラレーションを処理するWindows ML ビルドを使用できます。

API の変更

バージョン 0.8.0 以降では、オブジェクト指向で構成可能な API が提供されます。 メイン エントリ ポイントは引き続き FoundryLocalManager クラスですが、ステートレス HTTP API への静的呼び出しを介して動作するメソッドのフラット セットである代わりに、SDK はサービスとモデルに関する状態を維持する FoundryLocalManager インスタンス上のメソッドを公開するようになりました。

プリミティブ バージョン < 0.8.0 バージョン >= 0.8.0
Configuration N/A config = Configuration(...)
マネージャーを取得する mgr = FoundryLocalManager(); await FoundryLocalManager.CreateAsync(config, logger);
var mgr = FoundryLocalManager.Instance;
カタログの取得 N/A catalog = await mgr.GetCatalogAsync();
モデルの一覧表示 mgr.ListCatalogModelsAsync(); catalog.ListModelsAsync();
モデルの取得 mgr.GetModelInfoAsync("aliasOrModelId"); catalog.GetModelAsync(alias: "alias");
バリアントの取得 N/A model.SelectedVariant;
バリアントを設定する N/A model.SelectVariant();
モデルをダウンロードする mgr.DownloadModelAsync("aliasOrModelId"); model.DownloadAsync()
モデルを読み込む mgr.LoadModelAsync("aliasOrModelId"); model.LoadAsync()
モデルをアンロードする mgr.UnloadModelAsync("aliasOrModelId"); model.UnloadAsync()
読み込まれたモデルを一覧表示する mgr.ListLoadedModelsAsync(); catalog.GetLoadedModelsAsync();
モデル パスを取得する N/A model.GetPathAsync()
サービスの開始 mgr.StartServiceAsync(); mgr.StartWebServerAsync();
サービスの停止 mgr.StopServiceAsync(); mgr.StopWebServerAsync();
キャッシュの場所 mgr.GetCacheLocationAsync(); config.ModelCacheDir
キャッシュされたモデルを一覧表示する mgr.ListCachedModelsAsync(); catalog.GetCachedModelsAsync();

この API を使用すると、Foundry Local を Web サーバー、ログ記録、キャッシュの場所、モデルバリアントの選択に対してより構成可能にすることができます。 たとえば、 Configuration クラスを使用すると、アプリケーションの名前、ログ レベル、Web サーバーの URL、アプリケーション データ、モデル キャッシュ、ログのディレクトリを設定できます。

var config = new Configuration
{
    AppName = "app-name",
    LogLevel = Microsoft.AI.Foundry.Local.LogLevel.Information,
    Web = new Configuration.WebService
    {
        Urls = "http://127.0.0.1:55588"
    },
    AppDataDir = "./foundry_local_data",
    ModelCacheDir = "{AppDataDir}/model_cache",
    LogsDir = "{AppDataDir}/logs"
};

API リファレンス

JavaScript SDK 移行ガイド

デバイス上の AI を使用してアプリケーションを出荷する機能を向上させるために、JavaScript SDK のアーキテクチャが大幅に変更されています。 このセクションでは、アプリケーションを最新バージョンの SDK に移行するために役立つ主な変更について説明します。

JavaScript SDK バージョン 0.9.0 以降では、以前のバージョン (<=0.5.0) の API に破壊的変更があります。

次の図は、以前のアーキテクチャが REST Web サーバーを使用して、チャットの完了などのモデルと推論を管理する上で大きく依存していた方法を示しています。

Foundry Local の前のアーキテクチャの図。

SDK では、リモート 手続き型呼び出し (RPC) を使用してマシン上の Foundry ローカル CLI 実行可能ファイルを検索し、Web サーバーを起動してから、HTTP 経由で通信します。 このアーキテクチャには、次のようないくつかの制限がありました。

  • Web サーバーのライフサイクルを管理する際の複雑さ。
  • 困難なデプロイ: エンド ユーザーは、マシン アプリケーションに Foundry ローカル CLI をインストールする必要があります。
  • CLI と SDK のバージョン管理により、互換性の問題が発生する可能性があります。

これらの問題に対処するために、再設計されたアーキテクチャでは、より合理化されたアプローチが使用されます。 新しいアーキテクチャは次のとおりです。

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

この新しいアーキテクチャでは、次の操作を行います。

  • アプリケーションは 自己完結型です。 Foundry Local CLI をエンド ユーザーのマシンに個別にインストールする必要がないため、アプリケーションを簡単にデプロイできます。
  • REST Web サーバーは 省略可能です。 HTTP 経由で通信する他のツールと統合する場合は、引き続き Web サーバーを使用できます。
  • SDK では 、チャットの完了と音声の文字起こしがネイティブにサポートされているため、依存関係の少ない会話型 AI アプリケーションを構築できます。

API の変更

最新バージョンでは、よりオブジェクト指向で構成可能な API が提供されます。 メイン エントリ ポイントは引き続き FoundryLocalManager クラスですが、ステートレス HTTP API への静的呼び出しを介して動作するメソッドのフラット セットである代わりに、SDK はサービスとモデルに関する状態を維持する FoundryLocalManager インスタンス上のメソッドを公開するようになりました。

プリミティブ 以前のバージョン 現在のバージョン
Configuration N/A config = { appName: "app-name", ... }
マネージャーを取得する mgr = new FoundryLocalManager(); mgr = FoundryLocalManager.create(config);
カタログの取得 N/A catalog = mgr.catalog;
モデルの一覧表示 mgr.listCatalogModels(); catalog.getModels();
モデルの取得 mgr.getModelInfo("aliasOrModelId"); catalog.getModel(alias);
バリアントの取得 N/A model.id;
バリアントを設定する N/A model.selectVariant(modelId);
モデルをダウンロードする mgr.downloadModel("aliasOrModelId"); model.download();
モデルを読み込む mgr.loadModel("aliasOrModelId"); model.load();
モデルをアンロードする mgr.unloadModel("aliasOrModelId"); model.unload();
読み込まれたモデルを一覧表示する mgr.listLoadedModels(); catalog.getLoadedModels();
モデル パスを取得する N/A model.path;
サービスの開始 mgr.startService(); mgr.startWebService();
サービスの停止 N/A mgr.stopWebService();
キャッシュの場所 mgr.getCacheLocation(); config.modelCacheDir
キャッシュされたモデルを一覧表示する mgr.listCachedModels(); catalog.getCachedModels();

この API を使用すると、Foundry Local を Web サーバー、ログ記録、キャッシュの場所、モデルバリアントの選択に対してより構成可能にすることができます。 たとえば、 config を使用すると、アプリケーションの名前、ログ レベル、Web サーバーの URL、アプリケーション データ、モデル キャッシュ、ログのディレクトリを設定できます。

const config = {
  appName: "app-name",
  logLevel: "info",
  webServiceUrls: "http://127.0.0.1:55588",
  appDataDir: "./foundry_local_data",
  modelCacheDir: "{appDataDir}/model_cache",
  logsDir: "{appDataDir}/logs",
};

以前のバージョンの Foundry Local JavaScript SDK では、SDK を使用してこれらの設定を直接構成できませんでした。これにより、サービスの動作をカスタマイズする機能が制限されました。

References

Python SDK 移行ガイド

デバイス上の AI を使用してアプリケーションを出荷する機能を向上させるために、Python SDK のアーキテクチャが大幅に変更されています。 このセクションでは、アプリケーションを最新バージョンの SDK に移行するために役立つ主な変更について説明します。

最新の Python SDK バージョン (1.0.0) では、以前のバージョン (<=0.5.1) からの API に重大な変更があります。

次の図は、以前のアーキテクチャが REST Web サーバーを使用して、チャットの完了などのモデルと推論を管理する上で大きく依存していた方法を示しています。

Foundry Local の前のアーキテクチャの図。

SDK では、リモート 手続き型呼び出し (RPC) を使用してマシン上の Foundry ローカル CLI 実行可能ファイルを検索し、Web サーバーを起動してから、HTTP 経由で通信します。 このアーキテクチャには、次のようないくつかの制限がありました。

  • Web サーバーのライフサイクルを管理する際の複雑さ。
  • 困難なデプロイ: エンド ユーザーは、マシン アプリケーションに Foundry ローカル CLI をインストールする必要があります。
  • CLI と SDK のバージョン管理により、互換性の問題が発生する可能性があります。

これらの問題に対処するために、再設計されたアーキテクチャでは、より合理化されたアプローチが使用されます。 新しいアーキテクチャは次のとおりです。

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

この新しいアーキテクチャでは、次の操作を行います。

  • アプリケーションは 自己完結型です。 Foundry Local CLI をエンド ユーザーのマシンに個別にインストールする必要がないため、アプリケーションを簡単にデプロイできます。
  • REST Web サーバーは 省略可能です。 HTTP 経由で通信する他のツールと統合する場合は、引き続き Web サーバーを使用できます。
  • SDK では 、チャットの完了と音声の文字起こしがネイティブにサポートされているため、依存関係の少ない会話型 AI アプリケーションを構築できます。

API の変更

最新バージョンでは、よりオブジェクト指向で構成可能な API が提供されます。 メイン エントリ ポイントは引き続き FoundryLocalManager クラスですが、初期化パターン、モデル管理、推論はすべて大幅に変更されています。

プリミティブ 以前のバージョン (foundry-local) 現在のバージョン (foundry-local-sdk)
パッケージ pip install foundry-local pip install foundry-local-sdk
インポート from foundry_local import FoundryLocalManager from foundry_local_sdk import Configuration, FoundryLocalManager
Configuration N/A config = Configuration(app_name="app-name")
マネージャーを取得する manager = FoundryLocalManager(alias) FoundryLocalManager.initialize(config)
manager = FoundryLocalManager.instance
カタログの取得 N/A catalog = manager.catalog
モデルの一覧表示 manager.list_catalog_models() catalog.list_models()
モデルの取得 manager.get_model_info(alias) catalog.get_model(alias)
モデルをダウンロードする manager.download_model(alias) model.download(progress_callback)
モデルを読み込む manager.load_model(alias) model.load()
モデルをアンロードする manager.unload_model(alias) model.unload()
読み込まれたモデルを一覧表示する manager.list_loaded_models() catalog.get_loaded_models()
キャッシュされたモデルを一覧表示する manager.list_cached_models() catalog.get_cached_models()
キャッシュの場所 manager.get_cache_location() config.model_cache_dir
サービスの開始 manager.start_service() manager.start_web_service()
サービス エンドポイント manager.endpoint manager.urls

この API を使用すると、Foundry Local を Web サーバー、ログ記録、キャッシュの場所、モデルバリアントの選択に対してより構成可能にすることができます。 たとえば、 Configuration クラスを使用すると、アプリケーションの名前、ログ レベル、Web サーバーの URL、アプリケーション データ、モデル キャッシュ、ログのディレクトリを設定できます。

from foundry_local_sdk import Configuration

config = Configuration(
    app_name="app-name",
    log_level="info",
    web={"urls": "http://127.0.0.1:55588"},
    model_cache_dir="./foundry_local_data/model_cache",
)

References

Rust SDK 移行ガイド

デバイス上の AI を使用してアプリケーションを出荷する機能を向上させるために、Rust SDK のアーキテクチャが大幅に変更されています。 このセクションでは、アプリケーションを最新バージョンの SDK に移行するために役立つ主な変更について説明します。

最新の Rust SDK バージョン (1.0.0) では、以前のバージョンの API に破壊的変更があります。 クレート名が foundry-local から foundry-local-sdkに変更されました。

次の図は、以前のアーキテクチャが REST Web サーバーを使用して、チャットの完了などのモデルと推論を管理する上で大きく依存していた方法を示しています。

Foundry Local の前のアーキテクチャの図。

SDK では、リモート 手続き型呼び出し (RPC) を使用してマシン上の Foundry ローカル CLI 実行可能ファイルを検索し、Web サーバーを起動してから、HTTP 経由で通信します。 このアーキテクチャには、次のようないくつかの制限がありました。

  • Web サーバーのライフサイクルを管理する際の複雑さ。
  • 困難なデプロイ: エンド ユーザーは、マシン アプリケーションに Foundry ローカル CLI をインストールする必要があります。
  • CLI と SDK のバージョン管理により、互換性の問題が発生する可能性があります。

これらの問題に対処するために、再設計されたアーキテクチャでは、より合理化されたアプローチが使用されます。 新しいアーキテクチャは次のとおりです。

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

この新しいアーキテクチャでは、次の操作を行います。

  • アプリケーションは 自己完結型です。 Foundry Local CLI をエンド ユーザーのマシンに個別にインストールする必要がないため、アプリケーションを簡単にデプロイできます。
  • REST Web サーバーは 省略可能です。 HTTP 経由で通信する他のツールと統合する場合は、引き続き Web サーバーを使用できます。
  • SDK では 、チャットの完了と音声の文字起こしがネイティブにサポートされているため、依存関係の少ない会話型 AI アプリケーションを構築できます。

API の変更

最新バージョンでは、よりオブジェクト指向で構成可能な API が提供されます。 ビルダー パターンは構成ベースのアプローチに置き換えられ、モデル管理では専用の Model オブジェクトが使用されるようになりました。

プリミティブ 以前のバージョン (foundry-local) 現在のバージョン (foundry-local-sdk)
foundry-local foundry-local-sdk
Configuration N/A FoundryLocalConfig::new("app-name")
マネージャーを取得する FoundryLocalManager::builder().build().await? FoundryLocalManager::create(config)?
カタログの取得 N/A manager.catalog()
モデルの一覧表示 manager.list_catalog_models().await? manager.catalog().get_models().await?
モデルの取得 manager.get_model_info(alias).await? manager.catalog().get_model(alias).await?
モデルをダウンロードする manager.download_model(alias).await? model.download(callback).await?
モデルを読み込む manager.load_model(alias).await? model.load().await?
モデルをアンロードする manager.unload_model(alias).await? model.unload().await?
読み込まれたモデルを一覧表示する manager.list_loaded_models().await? manager.catalog().get_loaded_models().await?
キャッシュされたモデルを一覧表示する manager.list_cached_models().await? manager.catalog().get_cached_models().await?
サービスの開始 manager.start_service()? manager.start_web_service().await?
エンドポイント manager.endpoint()? manager.urls()
HTTP 呼び出し reqwest::Client (手動 REST) ネイティブ SDK: model.create_chat_client()

新しい SDK ではネイティブ チャットクライアントとオーディオ クライアントが提供されるため、ほとんどの場合、手動の HTTP 要求は不要です。

use foundry_local_sdk::{FoundryLocalConfig, FoundryLocalManager};

let config = FoundryLocalConfig::new("app-name");
let manager = FoundryLocalManager::create(config)?;

let model = manager.catalog().get_model("qwen2.5-0.5b").await?;
model.download(None).await?;
model.load().await?;

// Native chat client - no HTTP server needed
let client = model.create_chat_client().temperature(0.7).max_tokens(256);

References