Freigeben über


Handbuch für die Migration von Foundry Local SDK

Dieses Handbuch enthält Anweisungen zum Migrieren Ihres Codes von der älteren Version des Foundry Local SDK zur aktuellen Version. Das neue SDK entfernt die Abhängigkeit von der lokalen Cli für Foundry und ermöglicht es Ihnen daher, Ihre Anwendungen zu versenden, ohne dass Ihre Benutzer die CLI installieren oder eine lokale Foundry-Umgebung einrichten müssen. Das neue SDK enthält auch Verbesserungen an der API für eine bessere Benutzerfreundlichkeit und Leistung.

C# SDK-Migrationshandbuch

Um Ihre Fähigkeit zu verbessern, Anwendungen mit ai auf dem Gerät zu versenden, gibt es wesentliche Änderungen an der Architektur des C#-SDK in version 0.8.0 und höher. In diesem Abschnitt erläutern wir die wichtigsten Änderungen, mit denen Sie Ihre Anwendungen zur neuesten Version des SDK migrieren können.

Hinweis

In der SDK-Version 0.8.0 und höher gibt es wesentliche Änderungen an der API gegenüber früheren Versionen (<=0.3.0).

Das folgende Diagramm zeigt, wie die vorherige Architektur – für frühere Versionen vor 0.8.0 – in großem Maße auf die Verwendung eines REST-Webservers zum Verwalten von Modellen und Inferenzen wie Chatabschlüssen basiert.

Diagramm der vorherigen Architektur für Foundry Local.

Das SDK würde einen Remoteprozeduraufruf (Remote Procedural Call, RPC) verwenden, um die ausführbare Datei für die Foundry Local-CLI auf dem Computer zu finden, den Webserver zu starten und dann über HTTP mit diesem zu kommunizieren. Diese Architektur hatte mehrere Einschränkungen, darunter:

  • Komplexität beim Verwalten des Webserverlebenszyklus.
  • Anspruchsvolle Bereitstellung: Endbenutzer mussten die Foundry Local-CLI auf ihren Computern und Ihre Anwendung installiert haben.
  • Die Versionsverwaltung der CLI und des SDK kann zu Kompatibilitätsproblemen führen.

Um diese Probleme zu beheben, verwendet die neu gestaltete Architektur in der Version 0.8.0 und später einen optimierteren Ansatz. Die neue Architektur lautet wie folgt:

Diagramm der neuen Architektur für Foundry Local.

In dieser neuen Architektur:

  • Ihre Anwendung ist eigenständig. Die Lokale Cli für Foundry muss nicht separat auf dem Computer des Endbenutzers installiert werden, sodass Sie Anwendungen einfacher bereitstellen können.
  • Der REST-Webserver ist optional. Sie können den Webserver weiterhin verwenden, wenn Sie in andere Tools integriert werden möchten, die über HTTP kommunizieren. Lesen Sie Verwendung von Chat-Vervollständigungen über den REST-Server mit Foundry Local, um Details zur Nutzung dieses Features zu erfahren.
  • Das SDK bietet native Unterstützung für Chatabschlusse und Audiotranskriptionen, sodass Sie Unterhaltungs-KI-Anwendungen mit weniger Abhängigkeiten erstellen können. Ausführliche Informationen zur Verwendung dieses Features finden Sie unter Use Foundry Local Native Chat Completions API.
  • Auf Windows Geräten können Sie einen Windows ML-Build verwenden, der hardwarebeschleunigung für Modelle auf dem Gerät verarbeitet, indem Sie die richtige Laufzeit und Treiber abrufen.

API-Änderungen

Version 0.8.0 und höher bietet eine objektorientiertere und komponierbare API. Der Haupteinstiegspunkt ist weiterhin die FoundryLocalManager Klasse, aber anstatt eine flache Gruppe von Methoden zu sein, die über statische Aufrufe einer zustandslosen HTTP-API ausgeführt werden, macht das SDK jetzt Methoden für die FoundryLocalManager Instanz verfügbar, die den Status über den Dienst und die Modelle beibehalten.

Primitiv Versionen < 0.8.0 Versionen >= 0.8.0
Konfiguration N/A config = Configuration(...)
Manager abrufen mgr = FoundryLocalManager(); await FoundryLocalManager.CreateAsync(config, logger);
var mgr = FoundryLocalManager.Instance;
Katalog abrufen N/A catalog = await mgr.GetCatalogAsync();
Modelle auflisten mgr.ListCatalogModelsAsync(); catalog.ListModelsAsync();
Modell abrufen mgr.GetModelInfoAsync("aliasOrModelId"); catalog.GetModelAsync(alias: "alias");
Variant abrufen N/A model.SelectedVariant;
Variant festlegen N/A model.SelectVariant();
Herunterladen eines Modells mgr.DownloadModelAsync("aliasOrModelId"); model.DownloadAsync()
Laden eines Modells mgr.LoadModelAsync("aliasOrModelId"); model.LoadAsync()
Entladen eines Modells mgr.UnloadModelAsync("aliasOrModelId"); model.UnloadAsync()
Geladene Modelle auflisten mgr.ListLoadedModelsAsync(); catalog.GetLoadedModelsAsync();
Modellpfad abrufen N/A model.GetPathAsync()
Dienst starten mgr.StartServiceAsync(); mgr.StartWebServerAsync();
Dienst beenden mgr.StopServiceAsync(); mgr.StopWebServerAsync();
Cachespeicherort mgr.GetCacheLocationAsync(); config.ModelCacheDir
Zwischengespeicherte Modelle auflisten mgr.ListCachedModelsAsync(); catalog.GetCachedModelsAsync();

Die API ermöglicht die Konfiguration von Foundry Local über den Webserver, die Protokollierung, den Cachespeicherort und die Modellvariantenauswahl. Die Configuration Klasse ermöglicht es Ihnen, beispielsweise den Anwendungsnamen, den Protokollierungsgrad, die Webserver-URLs sowie die Verzeichnisse für Anwendungsdaten, Modellcache und Protokolle einzurichten:

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-Referenz

JavaScript SDK-Migrationshandbuch

Um Ihre Fähigkeit zu verbessern, Anwendungen mit ai auf dem Gerät zu versenden, gibt es erhebliche Änderungen an der Architektur des JavaScript SDK. In diesem Abschnitt erläutern wir die wichtigsten Änderungen, mit denen Sie Ihre Anwendungen zur neuesten Version des SDK migrieren können.

Hinweis

In der JavaScript SDK Version 0.9.0 und höher gibt es wesentliche Änderungen in der API gegenüber früheren Versionen (<=0.5.0).

Das folgende Diagramm zeigt, wie sich die vorherige Architektur stark auf die Verwendung eines REST-Webservers zum Verwalten von Modellen und Rückschlüssen wie Chatabschlussen stützt:

Diagramm der vorherigen Architektur für Foundry Local.

Das SDK würde einen Remoteprozeduraufruf (Remote Procedural Call, RPC) verwenden, um die ausführbare Datei für die Foundry Local-CLI auf dem Computer zu finden, den Webserver zu starten und dann über HTTP mit diesem zu kommunizieren. Diese Architektur hatte mehrere Einschränkungen, darunter:

  • Komplexität beim Verwalten des Webserverlebenszyklus.
  • Anspruchsvolle Bereitstellung: Endbenutzer mussten die Foundry Local-CLI auf ihren Computern und Ihre Anwendung installiert haben.
  • Die Versionsverwaltung der CLI und des SDK kann zu Kompatibilitätsproblemen führen.

Um diese Probleme zu beheben, verwendet die neu gestaltete Architektur einen optimierteren Ansatz. Die neue Architektur lautet wie folgt:

Diagramm der neuen Architektur für Foundry Local.

In dieser neuen Architektur:

  • Ihre Anwendung ist eigenständig. Die Lokale Cli für Foundry muss nicht separat auf dem Computer des Endbenutzers installiert werden, sodass Sie Anwendungen einfacher bereitstellen können.
  • Der REST-Webserver ist optional. Sie können den Webserver weiterhin verwenden, wenn Sie in andere Tools integriert werden möchten, die über HTTP kommunizieren.
  • Das SDK bietet native Unterstützung für Chatabschlusse und Audiotranskriptionen, sodass Sie Unterhaltungs-KI-Anwendungen mit weniger Abhängigkeiten erstellen können.

API-Änderungen

Die neueste Version bietet eine objektorientiertere und komponierbare API. Der Haupteinstiegspunkt ist weiterhin die FoundryLocalManager Klasse, aber anstatt eine flache Gruppe von Methoden zu sein, die über statische Aufrufe einer zustandslosen HTTP-API ausgeführt werden, macht das SDK jetzt Methoden für die FoundryLocalManager Instanz verfügbar, die den Status über den Dienst und die Modelle beibehalten.

Primitiv Vorherige Version Aktuelle Version
Konfiguration N/A config = { appName: "app-name", ... }
Manager abrufen mgr = new FoundryLocalManager(); mgr = FoundryLocalManager.create(config);
Katalog abrufen N/A catalog = mgr.catalog;
Modelle auflisten mgr.listCatalogModels(); catalog.getModels();
Modell abrufen mgr.getModelInfo("aliasOrModelId"); catalog.getModel(alias);
Variant abrufen N/A model.id;
Variant festlegen N/A model.selectVariant(modelId);
Herunterladen eines Modells mgr.downloadModel("aliasOrModelId"); model.download();
Laden eines Modells mgr.loadModel("aliasOrModelId"); model.load();
Entladen eines Modells mgr.unloadModel("aliasOrModelId"); model.unload();
Geladene Modelle auflisten mgr.listLoadedModels(); catalog.getLoadedModels();
Modellpfad abrufen N/A model.path;
Dienst starten mgr.startService(); mgr.startWebService();
Dienst beenden N/A mgr.stopWebService();
Cachespeicherort mgr.getCacheLocation(); config.modelCacheDir
Zwischengespeicherte Modelle auflisten mgr.listCachedModels(); catalog.getCachedModels();

Die API ermöglicht die Konfiguration von Foundry Local über den Webserver, die Protokollierung, den Cachespeicherort und die Modellvariantenauswahl. Beispielsweise können Sie mit config den Anwendungsnamen, die Protokollierungsstufe, die Webserver-URLs und die Verzeichnisse für Anwendungsdaten, Modellcache und Protokolle festlegen:

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",
};

In der vorherigen Version des Foundry Local JavaScript SDK konnten Sie diese Einstellungen nicht direkt über das SDK konfigurieren, wodurch Die Fähigkeit zum Anpassen des Verhaltens des Diensts eingeschränkt wurde.

Referenzen

Python SDK-Migrationshandbuch

Um Ihre Fähigkeit zu verbessern, Anwendungen mithilfe von KI auf dem Gerät zu versenden, gibt es erhebliche Änderungen an der Architektur des Python SDK. In diesem Abschnitt erläutern wir die wichtigsten Änderungen, mit denen Sie Ihre Anwendungen zur neuesten Version des SDK migrieren können.

Hinweis

In der neuesten Python SDK-Version (1.0.0) gibt es wesentliche Änderungen in der API-Schnittstelle im Vergleich zu früheren Versionen (<=0.5.1).

Das folgende Diagramm zeigt, wie sich die vorherige Architektur stark auf die Verwendung eines REST-Webservers zum Verwalten von Modellen und Rückschlüssen wie Chatabschlussen stützt:

Diagramm der vorherigen Architektur für Foundry Local.

Das SDK würde einen Remoteprozeduraufruf (Remote Procedural Call, RPC) verwenden, um die ausführbare Datei für die Foundry Local-CLI auf dem Computer zu finden, den Webserver zu starten und dann über HTTP mit diesem zu kommunizieren. Diese Architektur hatte mehrere Einschränkungen, darunter:

  • Komplexität beim Verwalten des Webserverlebenszyklus.
  • Anspruchsvolle Bereitstellung: Endbenutzer mussten die Foundry Local-CLI auf ihren Computern und Ihre Anwendung installiert haben.
  • Die Versionsverwaltung der CLI und des SDK kann zu Kompatibilitätsproblemen führen.

Um diese Probleme zu beheben, verwendet die neu gestaltete Architektur einen optimierteren Ansatz. Die neue Architektur lautet wie folgt:

Diagramm der neuen Architektur für Foundry Local.

In dieser neuen Architektur:

  • Ihre Anwendung ist eigenständig. Die Lokale Cli für Foundry muss nicht separat auf dem Computer des Endbenutzers installiert werden, sodass Sie Anwendungen einfacher bereitstellen können.
  • Der REST-Webserver ist optional. Sie können den Webserver weiterhin verwenden, wenn Sie in andere Tools integriert werden möchten, die über HTTP kommunizieren.
  • Das SDK bietet native Unterstützung für Chatabschlusse und Audiotranskriptionen, sodass Sie Unterhaltungs-KI-Anwendungen mit weniger Abhängigkeiten erstellen können.

API-Änderungen

Die neueste Version bietet eine objektorientiertere und komponierbare API. Der Haupteinstiegspunkt ist weiterhin die FoundryLocalManager Klasse, aber das Initialisierungsmuster, die Modellverwaltung und -ableitung haben sich alle erheblich geändert.

Primitiv Vorherige Version (foundry-local) Aktuelle Version (foundry-local-sdk)
Paket pip install foundry-local pip install foundry-local-sdk
Importieren from foundry_local import FoundryLocalManager from foundry_local_sdk import Configuration, FoundryLocalManager
Konfiguration N/A config = Configuration(app_name="app-name")
Manager abrufen manager = FoundryLocalManager(alias) FoundryLocalManager.initialize(config)
manager = FoundryLocalManager.instance
Katalog abrufen N/A catalog = manager.catalog
Modelle auflisten manager.list_catalog_models() catalog.list_models()
Modell abrufen manager.get_model_info(alias) catalog.get_model(alias)
Herunterladen eines Modells manager.download_model(alias) model.download(progress_callback)
Laden eines Modells manager.load_model(alias) model.load()
Entladen eines Modells manager.unload_model(alias) model.unload()
Geladene Modelle auflisten manager.list_loaded_models() catalog.get_loaded_models()
Zwischengespeicherte Modelle auflisten manager.list_cached_models() catalog.get_cached_models()
Cachespeicherort manager.get_cache_location() config.model_cache_dir
Dienst starten manager.start_service() manager.start_web_service()
Dienstendpunkt manager.endpoint manager.urls

Die API ermöglicht die Konfiguration von Foundry Local über den Webserver, die Protokollierung, den Cachespeicherort und die Modellvariantenauswahl. Die Configuration Klasse ermöglicht es Ihnen, beispielsweise den Anwendungsnamen, den Protokollierungsgrad, die Webserver-URLs sowie die Verzeichnisse für Anwendungsdaten, Modellcache und Protokolle einzurichten:

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",
)

Referenzen

Rust SDK-Migrationshandbuch

Um Ihre Fähigkeit zur Bereitstellung von Anwendungen mit geräteseitiger KI zu verbessern, gibt es erhebliche Änderungen an der Architektur des Rust SDK. In diesem Abschnitt erläutern wir die wichtigsten Änderungen, mit denen Sie Ihre Anwendungen zur neuesten Version des SDK migrieren können.

Hinweis

In der neuesten Rust SDK-Version (1.0.0) gibt es bahnbrechende Änderungen in der API aus der vorherigen Version. Der Crate-Name wurde von foundry-local zu foundry-local-sdk geändert.

Das folgende Diagramm zeigt, wie sich die vorherige Architektur stark auf die Verwendung eines REST-Webservers zum Verwalten von Modellen und Rückschlüssen wie Chatabschlussen stützt:

Diagramm der vorherigen Architektur für Foundry Local.

Das SDK würde einen Remoteprozeduraufruf (REMOTE Procedure Call, RPC) verwenden, um die ausführbare Datei der Foundry Local CLI auf dem Computer zu finden, den Webserver zu starten und dann über HTTP mit ihr zu kommunizieren. Diese Architektur hatte mehrere Einschränkungen, darunter:

  • Komplexität beim Verwalten des Webserverlebenszyklus.
  • Anspruchsvolle Bereitstellung: Endbenutzer mussten die Foundry Local-CLI auf ihren Computern und Ihre Anwendung installiert haben.
  • Die Versionsverwaltung der CLI und des SDK kann zu Kompatibilitätsproblemen führen.

Um diese Probleme zu beheben, verwendet die neu gestaltete Architektur einen optimierteren Ansatz. Die neue Architektur lautet wie folgt:

Diagramm der neuen Architektur für Foundry Local.

In dieser neuen Architektur:

  • Ihre Anwendung ist eigenständig. Die Lokale Cli für Foundry muss nicht separat auf dem Computer des Endbenutzers installiert werden, sodass Sie Anwendungen einfacher bereitstellen können.
  • Der REST-Webserver ist optional. Sie können den Webserver weiterhin verwenden, wenn Sie in andere Tools integriert werden möchten, die über HTTP kommunizieren.
  • Das SDK bietet native Unterstützung für Chatabschlusse und Audiotranskriptionen, sodass Sie Unterhaltungs-KI-Anwendungen mit weniger Abhängigkeiten erstellen können.

API-Änderungen

Die neueste Version bietet eine objektorientiertere und komponierbare API. Das Generatormuster wurde durch einen konfigurationsbasierten Ansatz ersetzt, und die Modellverwaltung verwendet jetzt dedizierte Model Objekte.

Primitiv Vorherige Version (foundry-local) Aktuelle Version (foundry-local-sdk)
Kiste foundry-local foundry-local-sdk
Konfiguration N/A FoundryLocalConfig::new("app-name")
Manager abrufen FoundryLocalManager::builder().build().await? FoundryLocalManager::create(config)?
Katalog abrufen N/A manager.catalog()
Modelle auflisten manager.list_catalog_models().await? manager.catalog().get_models().await?
Modell abrufen manager.get_model_info(alias).await? manager.catalog().get_model(alias).await?
Herunterladen eines Modells manager.download_model(alias).await? model.download(callback).await?
Laden eines Modells manager.load_model(alias).await? model.load().await?
Entladen eines Modells manager.unload_model(alias).await? model.unload().await?
Geladene Modelle auflisten manager.list_loaded_models().await? manager.catalog().get_loaded_models().await?
Zwischengespeicherte Modelle auflisten manager.list_cached_models().await? manager.catalog().get_cached_models().await?
Dienst starten manager.start_service()? manager.start_web_service().await?
Endpunkt manager.endpoint()? manager.urls()
HTTP-Aufrufe reqwest::Client (manueller REST) Natives SDK: model.create_chat_client()

Das neue SDK bietet native Chat- und Audioclients, sodass in den meisten Fällen manuelle HTTP-Anforderungen nicht erforderlich sind:

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

Referenzen