Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden innehåller instruktioner för att migrera din kod från den äldre versionen av Foundry Local SDK till den aktuella versionen. Den nya SDK:n tar bort beroendet av Foundry Local CLI och låter dig därför skicka dina program utan att kräva att användarna installerar CLI eller konfigurerar en lokal Foundry-miljö. Den nya SDK:n innehåller även förbättringar av API:et för bättre användbarhet och prestanda.
Migreringsguide för C# SDK
För att förbättra din möjlighet att skicka program med hjälp av AI på enheten, finns det betydande ändringar i arkitekturen för C# SDK i version 0.8.0 och senare. I det här avsnittet beskriver vi de viktigaste ändringarna som hjälper dig att migrera dina program till den senaste versionen av SDK.
Anmärkning
I SDK-versionen 0.8.0 och senare finns det icke-bakåtkompatibla ändringar i API:et från tidigare versioner (<=0.3.0).
Följande diagram visar hur den tidigare arkitekturen – för tidigare versioner än 0.8.0 – förlitade sig mycket på att använda en REST-webbserver för att hantera modeller och slutsatsdragningar som chattavslut:
SDK använder ett RPC (Remote Procedure Call) för att hitta Foundry Local CLI körbart på datorn, starta webbservern och sedan kommunicera med den via HTTP. Den här arkitekturen hade flera begränsningar, bland annat:
- Komplexitet i hanteringen av webbserverns livscykel.
- Utmanande distribution: Slutanvändarna behövde ha Foundry Local CLI installerat på sina datorer och ditt program.
- Versionshantering av CLI och SDK kan leda till kompatibilitetsproblem.
För att lösa dessa problem använder den omdesignade arkitekturen i version 0.8.0 och senare en mer effektiviserad metod. Den nya arkitekturen är följande:
I den här nya arkitekturen:
- Programmet är fristående. Det kräver inte att Foundry Local CLI installeras separat på slutanvändarens dator, vilket gör det enklare för dig att distribuera program.
- REST-webbservern är valfri. Du kan fortfarande använda webbservern om du vill integrera med andra verktyg som kommunicerar via HTTP. Läs Använda chattavslut via REST-server med Foundry Local för mer information om hur du använder den här funktionen.
- SDK:n har inbyggt stöd för chattavslutningar och ljudavskrifter, så att du kan skapa konversations-AI-program med färre beroenden. Läs Foundry Locals API för inbyggda chattkompletteringar för detaljer om hur du använder den här funktionen.
- På Windows-enheter kan du använda en Windows ML-version som hanterar hårdvaruacceleration för modeller på enheten genom att använda rätt runtime och drivrutiner.
API-ändringar
Version 0.8.0 och senare ger ett mer objektorienterat och komponerbart API. Huvudinmatningspunkten fortsätter att vara FoundryLocalManager klassen, men i stället för att vara en platt uppsättning metoder som fungerar via statiska anrop till ett tillståndslöst HTTP-API, exponerar SDK nu metoder på den FoundryLocalManager instans som underhåller tillstånd om tjänsten och modellerna.
| Primitiv | Versioner < 0.8.0 | Versioner >= 0.8.0 |
|---|---|---|
| Konfiguration | Inte tillämpligt | config = Configuration(...) |
| Hämta Manager | mgr = FoundryLocalManager(); |
await FoundryLocalManager.CreateAsync(config, logger);var mgr = FoundryLocalManager.Instance; |
| Hämta katalog | Inte tillämpligt | catalog = await mgr.GetCatalogAsync(); |
| Lista modeller | mgr.ListCatalogModelsAsync(); |
catalog.ListModelsAsync(); |
| Hämta modell | mgr.GetModelInfoAsync("aliasOrModelId"); |
catalog.GetModelAsync(alias: "alias"); |
| Hämta variant | Inte tillämpligt | model.SelectedVariant; |
| Ange variant | Inte tillämpligt | model.SelectVariant(); |
| Ladda ned en modell | mgr.DownloadModelAsync("aliasOrModelId"); |
model.DownloadAsync() |
| Läsa in en modell | mgr.LoadModelAsync("aliasOrModelId"); |
model.LoadAsync() |
| Ladda ur en modell | mgr.UnloadModelAsync("aliasOrModelId"); |
model.UnloadAsync() |
| Lista inlästa modeller | mgr.ListLoadedModelsAsync(); |
catalog.GetLoadedModelsAsync(); |
| Hämta modellsökväg | Inte tillämpligt | model.GetPathAsync() |
| Starta tjänsten | mgr.StartServiceAsync(); |
mgr.StartWebServerAsync(); |
| Stoppa tjänsten | mgr.StopServiceAsync(); |
mgr.StopWebServerAsync(); |
| Cacheplats | mgr.GetCacheLocationAsync(); |
config.ModelCacheDir |
| Lista cachelagrade modeller | mgr.ListCachedModelsAsync(); |
catalog.GetCachedModelsAsync(); |
MED API:et kan Foundry Local vara mer konfigurerbart via webbservern, loggning, cacheplats och modellvariantval. Med klassen kan du till exempel Configuration konfigurera programnamn, loggningsnivå, webbserver-URL:er och kataloger för programdata, modellcache och loggar:
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-referens
- Mer information om Foundry Local C# SDK finns i Foundry Local C# SDK API-referens.
Migreringsguide för JavaScript SDK
För att förbättra din möjlighet att skicka program med hjälp av AI på enheten finns det betydande ändringar i arkitekturen för JavaScript SDK. I det här avsnittet beskriver vi de viktigaste ändringarna som hjälper dig att migrera dina program till den senaste versionen av SDK.
Anmärkning
I JavaScript SDK-versionen 0.9.0 och senare finns det icke-bakåtkompatibla ändringar i API:et från tidigare versioner (<=0.5.0).
Följande diagram visar hur den tidigare arkitekturen förlitade sig mycket på att använda en REST-webbserver för att hantera modeller och slutsatsdragningar som chattavslut:
SDK använder ett RPC (Remote Procedure Call) för att hitta Foundry Local CLI körbart på datorn, starta webbservern och sedan kommunicera med den via HTTP. Den här arkitekturen hade flera begränsningar, bland annat:
- Komplexitet i hanteringen av webbserverns livscykel.
- Utmanande distribution: Slutanvändarna behövde ha Foundry Local CLI installerat på sina datorer och ditt program.
- Versionshantering av CLI och SDK kan leda till kompatibilitetsproblem.
För att lösa dessa problem använder den omdesignade arkitekturen en mer strömlinjeformad metod. Den nya arkitekturen är följande:
I den här nya arkitekturen:
- Programmet är fristående. Det kräver inte att Foundry Local CLI installeras separat på slutanvändarens dator, vilket gör det enklare för dig att distribuera program.
- REST-webbservern är valfri. Du kan fortfarande använda webbservern om du vill integrera med andra verktyg som kommunicerar via HTTP.
- SDK:n har inbyggt stöd för chattavslutningar och ljudavskrifter, så att du kan skapa konversations-AI-program med färre beroenden.
API-ändringar
Den senaste versionen innehåller ett mer objektorienterat och komposterbart API. Huvudinmatningspunkten fortsätter att vara FoundryLocalManager klassen, men i stället för att vara en platt uppsättning metoder som fungerar via statiska anrop till ett tillståndslöst HTTP-API, exponerar SDK nu metoder på den FoundryLocalManager instans som underhåller tillstånd om tjänsten och modellerna.
| Primitiv | Tidigare version | Aktuell version |
|---|---|---|
| Konfiguration | Inte tillämpligt | config = { appName: "app-name", ... } |
| Hämta Manager | mgr = new FoundryLocalManager(); |
mgr = FoundryLocalManager.create(config); |
| Hämta katalog | Inte tillämpligt | catalog = mgr.catalog; |
| Lista modeller | mgr.listCatalogModels(); |
catalog.getModels(); |
| Hämta modell | mgr.getModelInfo("aliasOrModelId"); |
catalog.getModel(alias); |
| Hämta variant | Inte tillämpligt | model.id; |
| Ange variant | Inte tillämpligt | model.selectVariant(modelId); |
| Ladda ned en modell | mgr.downloadModel("aliasOrModelId"); |
model.download(); |
| Läsa in en modell | mgr.loadModel("aliasOrModelId"); |
model.load(); |
| Ladda ur en modell | mgr.unloadModel("aliasOrModelId"); |
model.unload(); |
| Lista inlästa modeller | mgr.listLoadedModels(); |
catalog.getLoadedModels(); |
| Hämta modellsökväg | Inte tillämpligt | model.path; |
| Starta tjänsten | mgr.startService(); |
mgr.startWebService(); |
| Stoppa tjänsten | Inte tillämpligt | mgr.stopWebService(); |
| Cacheplats | mgr.getCacheLocation(); |
config.modelCacheDir |
| Lista cachelagrade modeller | mgr.listCachedModels(); |
catalog.getCachedModels(); |
MED API:et kan Foundry Local vara mer konfigurerbart via webbservern, loggning, cacheplats och modellvariantval. Du kan till exempel config konfigurera programnamn, loggningsnivå, webbserver-URL:er och kataloger för programdata, modellcache och loggar:
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",
};
I den tidigare versionen av Foundry Local JavaScript SDK kunde du inte konfigurera de här inställningarna direkt via SDK:t, vilket begränsade din möjlighet att anpassa tjänstens beteende.
Referenser
migreringsguide för Python SDK
För att förbättra din förmåga att skicka program med ai på enheten finns det betydande ändringar i arkitekturen för Python SDK. I det här avsnittet beskriver vi de viktigaste ändringarna som hjälper dig att migrera dina program till den senaste versionen av SDK.
Anmärkning
I den senaste versionen av Python SDK (1.0.0) finns det brytande ändringar i API från tidigare versioner (<=0.5.1).
Följande diagram visar hur den tidigare arkitekturen förlitade sig mycket på att använda en REST-webbserver för att hantera modeller och slutsatsdragningar som chattavslut:
SDK använder ett RPC (Remote Procedure Call) för att hitta Foundry Local CLI körbart på datorn, starta webbservern och sedan kommunicera med den via HTTP. Den här arkitekturen hade flera begränsningar, bland annat:
- Komplexitet i hanteringen av webbserverns livscykel.
- Utmanande distribution: Slutanvändarna behövde ha Foundry Local CLI installerat på sina datorer och ditt program.
- Versionshantering av CLI och SDK kan leda till kompatibilitetsproblem.
För att lösa dessa problem använder den omdesignade arkitekturen en mer strömlinjeformad metod. Den nya arkitekturen är följande:
I den här nya arkitekturen:
- Programmet är fristående. Det kräver inte att Foundry Local CLI installeras separat på slutanvändarens dator, vilket gör det enklare för dig att distribuera program.
- REST-webbservern är valfri. Du kan fortfarande använda webbservern om du vill integrera med andra verktyg som kommunicerar via HTTP.
- SDK:n har inbyggt stöd för chattavslutningar och ljudavskrifter, så att du kan skapa konversations-AI-program med färre beroenden.
API-ändringar
Den senaste versionen innehåller ett mer objektorienterat och komposterbart API. Huvudinmatningspunkten fortsätter att vara FoundryLocalManager klassen, men initieringsmönstret, modellhanteringen och slutsatsdragningen har ändrats avsevärt.
| Primitiv | Tidigare version (foundry-local) |
Aktuell version (foundry-local-sdk) |
|---|---|---|
| Paket | pip install foundry-local |
pip install foundry-local-sdk |
| Import | from foundry_local import FoundryLocalManager |
from foundry_local_sdk import Configuration, FoundryLocalManager |
| Konfiguration | Inte tillämpligt | config = Configuration(app_name="app-name") |
| Hämta Manager | manager = FoundryLocalManager(alias) |
FoundryLocalManager.initialize(config)manager = FoundryLocalManager.instance |
| Hämta katalog | Inte tillämpligt | catalog = manager.catalog |
| Lista modeller | manager.list_catalog_models() |
catalog.list_models() |
| Hämta modell | manager.get_model_info(alias) |
catalog.get_model(alias) |
| Ladda ned en modell | manager.download_model(alias) |
model.download(progress_callback) |
| Läsa in en modell | manager.load_model(alias) |
model.load() |
| Ladda ur en modell | manager.unload_model(alias) |
model.unload() |
| Lista inlästa modeller | manager.list_loaded_models() |
catalog.get_loaded_models() |
| Lista cachelagrade modeller | manager.list_cached_models() |
catalog.get_cached_models() |
| Cacheplats | manager.get_cache_location() |
config.model_cache_dir |
| Starta tjänsten | manager.start_service() |
manager.start_web_service() |
| Tjänstslutpunkt | manager.endpoint |
manager.urls |
MED API:et kan Foundry Local vara mer konfigurerbart via webbservern, loggning, cacheplats och modellvariantval. Med klassen kan du till exempel Configuration konfigurera programnamn, loggningsnivå, webbserver-URL:er och kataloger för programdata, modellcache och loggar:
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",
)
Referenser
Migreringsguide för Rust SDK
För att förbättra din förmåga att skicka program med hjälp av AI på enheten finns det betydande ändringar i arkitekturen för Rust SDK. I det här avsnittet beskriver vi de viktigaste ändringarna som hjälper dig att migrera dina program till den senaste versionen av SDK.
Anmärkning
I den senaste Rust SDK-versionen (1.0.0) finns det störande ändringar i API:et från den tidigare versionen. Namnet på lådan har ändrats från foundry-local till foundry-local-sdk.
Följande diagram visar hur den tidigare arkitekturen förlitade sig mycket på att använda en REST-webbserver för att hantera modeller och slutsatsdragningar som chattavslut:
SDK:n använder ett RPC (Remote Procedure Call) för att hitta den körbara filen Foundry Local CLI på datorn, starta webbservern och sedan kommunicera med den via HTTP. Den här arkitekturen hade flera begränsningar, bland annat:
- Komplexitet i hanteringen av webbserverns livscykel.
- Utmanande distribution: Slutanvändarna behövde ha Foundry Local CLI installerat på sina datorer och ditt program.
- Versionshantering av CLI och SDK kan leda till kompatibilitetsproblem.
För att lösa dessa problem använder den omdesignade arkitekturen en mer strömlinjeformad metod. Den nya arkitekturen är följande:
I den här nya arkitekturen:
- Programmet är fristående. Det kräver inte att Foundry Local CLI installeras separat på slutanvändarens dator, vilket gör det enklare för dig att distribuera program.
- REST-webbservern är valfri. Du kan fortfarande använda webbservern om du vill integrera med andra verktyg som kommunicerar via HTTP.
- SDK:n har inbyggt stöd för chattavslutningar och ljudavskrifter, så att du kan skapa konversations-AI-program med färre beroenden.
API-ändringar
Den senaste versionen innehåller ett mer objektorienterat och komposterbart API. Builder-mönstret har ersatts med en konfigurationsbaserad metod och modellhantering använder nu dedikerade Model objekt.
| Primitiv | Tidigare version (foundry-local) |
Aktuell version (foundry-local-sdk) |
|---|---|---|
| Crate | foundry-local |
foundry-local-sdk |
| Konfiguration | Inte tillämpligt | FoundryLocalConfig::new("app-name") |
| Hämta Manager | FoundryLocalManager::builder().build().await? |
FoundryLocalManager::create(config)? |
| Hämta katalog | Inte tillämpligt | manager.catalog() |
| Lista modeller | manager.list_catalog_models().await? |
manager.catalog().get_models().await? |
| Hämta modell | manager.get_model_info(alias).await? |
manager.catalog().get_model(alias).await? |
| Ladda ned en modell | manager.download_model(alias).await? |
model.download(callback).await? |
| Läsa in en modell | manager.load_model(alias).await? |
model.load().await? |
| Ladda ur en modell | manager.unload_model(alias).await? |
model.unload().await? |
| Lista inlästa modeller | manager.list_loaded_models().await? |
manager.catalog().get_loaded_models().await? |
| Lista cachelagrade modeller | manager.list_cached_models().await? |
manager.catalog().get_cached_models().await? |
| Starta tjänsten | manager.start_service()? |
manager.start_web_service().await? |
| Slutpunkt | manager.endpoint()? |
manager.urls() |
| HTTP-anrop |
reqwest::Client (manuell REST) |
Inhemskt SDK: model.create_chat_client() |
Den nya SDK:n tillhandahåller interna chatt- och ljudklienter, vilket eliminerar behovet av manuella HTTP-begäranden i de flesta fall:
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);