Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
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:
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
- Weitere Informationen zum Foundry Local C# SDK finden Sie unter Foundry Local C# SDK API Reference.
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:
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:
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:
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:
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:
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:
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);