Az Foundry helyi SDK migrálási útmutatója

Ez az útmutató útmutatást nyújt a kód áttelepítéséhez az Foundry Local SDK régi verziójáról az aktuális verzióra. Az új SDK eltávolítja az Foundry helyi parancssori felületétől való függőséget, ezért lehetővé teszi az alkalmazások szállítását anélkül, hogy a felhasználókat a parancssori felület telepítésére vagy egy helyi Foundry-környezet beállítására kötelezné. Az új SDK az API továbbfejlesztéseit is tartalmazza a jobb használhatóság és teljesítmény érdekében.

C# SDK migrálási útmutatója

Annak érdekében, hogy javítsa az alkalmazások helyi AI-val történő szállításának képességét, a C# SDK architektúrájában a 0.8.0 és az azt követő verziókban jelentős változások vannak. Ebben a szakaszban ismertetjük azokat a főbb módosításokat, amelyek segítségével az alkalmazásokat az SDK legújabb verziójára migrálhatja.

Megjegyzés:

Az SDK-verzióban 0.8.0 és az újabb verziókban az API-ban kompatibilitástörő változások történtek a korábbi verziókban (<=0.3.0).

Az alábbi ábra azt mutatja be, hogy az előző architektúra – a korábbi verziók esetében 0.8.0 – hogyan támaszkodott nagy mértékben a REST webkiszolgáló használatára a modellek és a következtetés, például a csevegés befejezésének kezeléséhez:

Az Foundry Local előző architektúrájának diagramja.

Az SDK egy távoli eljárási hívással (RPC) megkeresi a számítógépen végrehajtható Foundry Local CLI-t, elindítja a webkiszolgálót, majd HTTP-n keresztül kommunikál vele. Ez az architektúra számos korlátozást tartalmazott, többek között a következőket:

  • A webkiszolgáló életciklusának kezelése összetettsége.
  • Kihívást jelentő üzembe helyezés: A végfelhasználóknak telepíteniük kellett a Foundry helyi parancssori felületét a gépükre és az alkalmazásra.
  • A parancssori felület és az SDK verziókezelése kompatibilitási problémákhoz vezethet.

Ezeknek a problémáknak a megoldásához az újratervezett architektúra verzióban 0.8.0 és később egy egyszerűbb megközelítést használ. Az új architektúra a következő:

Az Foundry Local új architektúrájának diagramja.

Ebben az új architektúrában:

  • Az alkalmazás önálló. Nincs szükség arra, hogy a Foundry helyi parancssori felület külön legyen telepítve a végfelhasználó gépére, így egyszerűbben helyezhet üzembe alkalmazásokat.
  • A REST webkiszolgáló nem kötelező. Továbbra is használhatja a webkiszolgálót, ha más, HTTP-n keresztül kommunikáló eszközökkel szeretne integrálni. A funkció használatának részleteiért olvassa el a REST-kiszolgálón keresztüli csevegés befejezésének használata a Foundry Local szolgáltatással című cikket.
  • Az SDK natív támogatást nyújt a csevegések befejezéséhez és a hangátiratokhoz, így kevesebb függőséggel rendelkező beszélgetési AI-alkalmazásokat hozhat létre. A funkció használatának részleteiért olvassa el a Foundry helyi natív csevegés befejezésének API-ját .
  • Windows eszközökön használhat egy Windows ML-buildet, amely a megfelelő futtatókörnyezet és illesztőprogramok behúzásával kezeli a hardware-gyorsítást.

API-módosítások

A verzió 0.8.0 és az újabb verziók egy objektumorientáltabb és kompozánsabb API-t biztosítanak. A fő belépési pont továbbra is az FoundryLocalManager osztály, de ahelyett, hogy egy állapot nélküli HTTP API statikus hívásaival működő metódusok sima készlete lenne, az SDK mostantól olyan metódusokat tesz elérhetővé a FoundryLocalManager példányon, amelyek állapotot tartanak fenn a szolgáltatásról és a modellekről.

Primitív 0.8.0-s verziók < Verziók >= 0.8.0
Konfiguráció N/A config = Configuration(...)
Manager lekérése mgr = FoundryLocalManager(); await FoundryLocalManager.CreateAsync(config, logger);
var mgr = FoundryLocalManager.Instance;
Katalógus lekérése N/A catalog = await mgr.GetCatalogAsync();
Modellek listázása mgr.ListCatalogModelsAsync(); catalog.ListModelsAsync();
Modell lekérése mgr.GetModelInfoAsync("aliasOrModelId"); catalog.GetModelAsync(alias: "alias");
Variant lekérése N/A model.SelectedVariant;
Variant beállítása N/A model.SelectVariant();
Modell letöltése mgr.DownloadModelAsync("aliasOrModelId"); model.DownloadAsync()
Modell betöltése mgr.LoadModelAsync("aliasOrModelId"); model.LoadAsync()
Modell eltávolítása mgr.UnloadModelAsync("aliasOrModelId"); model.UnloadAsync()
Betöltött modellek listázása mgr.ListLoadedModelsAsync(); catalog.GetLoadedModelsAsync();
Modell elérési útjának lekérése N/A model.GetPathAsync()
Szolgáltatás indítása mgr.StartServiceAsync(); mgr.StartWebServerAsync();
Szolgáltatás leállítása mgr.StopServiceAsync(); mgr.StopWebServerAsync();
Gyorsítótár helye mgr.GetCacheLocationAsync(); config.ModelCacheDir
Gyorsítótárazott modellek listázása mgr.ListCachedModelsAsync(); catalog.GetCachedModelsAsync();

Az API lehetővé teszi, hogy a Foundry Local konfigurálhatóbb legyen a webkiszolgálón, a naplózáson, a gyorsítótárhelyen és a modellvariáns kiválasztásán. Az Configuration osztály például lehetővé teszi az alkalmazásnév, a naplózási szint, a webkiszolgáló URL-címeinek és könyvtárainak beállítását az alkalmazásadatokhoz, a modellgyorsítótárhoz és a naplókhoz:

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

JavaScript SDK migrálási útmutató

A JavaScript SDK architektúrájában jelentős változások történnek az alkalmazások eszközalapú AI használatával történő szállításának javítása érdekében. Ebben a szakaszban ismertetjük azokat a főbb módosításokat, amelyek segítségével az alkalmazásokat az SDK legújabb verziójára migrálhatja.

Megjegyzés:

A 0.9.0 és az újabb JavaScript SDK verziókban az API jelentős változásokon esett át a korábbi verziókhoz képest (<=0.5.0).

Az alábbi ábra bemutatja, hogy az előző architektúra hogyan támaszkodott nagy mértékben a REST-webkiszolgáló használatára a modellek és a következtetés, például a csevegés befejezésének kezeléséhez:

Az Foundry Local előző architektúrájának diagramja.

Az SDK egy távoli eljárási hívással (RPC) megkeresi a számítógépen végrehajtható Foundry Local CLI-t, elindítja a webkiszolgálót, majd HTTP-n keresztül kommunikál vele. Ez az architektúra számos korlátozást tartalmazott, többek között a következőket:

  • A webkiszolgáló életciklusának kezelése összetettsége.
  • Kihívást jelentő üzembe helyezés: A végfelhasználóknak telepíteniük kellett a Foundry helyi parancssori felületét a gépükre és az alkalmazásra.
  • A parancssori felület és az SDK verziókezelése kompatibilitási problémákhoz vezethet.

A problémák megoldásához az újratervezett architektúra egyszerűbb megközelítést használ. Az új architektúra a következő:

Az Foundry Local új architektúrájának diagramja.

Ebben az új architektúrában:

  • Az alkalmazás önálló. Nincs szükség arra, hogy a Foundry helyi parancssori felület külön legyen telepítve a végfelhasználó gépére, így egyszerűbben helyezhet üzembe alkalmazásokat.
  • A REST webkiszolgáló nem kötelező. Továbbra is használhatja a webkiszolgálót, ha más, HTTP-n keresztül kommunikáló eszközökkel szeretne integrálni.
  • Az SDK natív támogatást nyújt a csevegések befejezéséhez és a hangátiratokhoz, így kevesebb függőséggel rendelkező beszélgetési AI-alkalmazásokat hozhat létre.

API-módosítások

A legújabb verzió egy objektumorientáltabb és összeállíthatóbb API-t biztosít. A fő belépési pont továbbra is az FoundryLocalManager osztály, de ahelyett, hogy egy állapot nélküli HTTP API statikus hívásaival működő metódusok sima készlete lenne, az SDK mostantól olyan metódusokat tesz elérhetővé a FoundryLocalManager példányon, amelyek állapotot tartanak fenn a szolgáltatásról és a modellekről.

Primitív Előző verzió Aktuális verzió
Konfiguráció N/A config = { appName: "app-name", ... }
Manager lekérése mgr = new FoundryLocalManager(); mgr = FoundryLocalManager.create(config);
Katalógus lekérése N/A catalog = mgr.catalog;
Modellek listázása mgr.listCatalogModels(); catalog.getModels();
Modell lekérése mgr.getModelInfo("aliasOrModelId"); catalog.getModel(alias);
Variant lekérése N/A model.id;
Variant beállítása N/A model.selectVariant(modelId);
Modell letöltése mgr.downloadModel("aliasOrModelId"); model.download();
Modell betöltése mgr.loadModel("aliasOrModelId"); model.load();
Modell eltávolítása mgr.unloadModel("aliasOrModelId"); model.unload();
Betöltött modellek listázása mgr.listLoadedModels(); catalog.getLoadedModels();
Modell elérési útjának lekérése N/A model.path;
Szolgáltatás indítása mgr.startService(); mgr.startWebService();
Szolgáltatás leállítása N/A mgr.stopWebService();
Gyorsítótár helye mgr.getCacheLocation(); config.modelCacheDir
Gyorsítótárazott modellek listázása mgr.listCachedModels(); catalog.getCachedModels();

Az API lehetővé teszi, hogy a Foundry Local konfigurálhatóbb legyen a webkiszolgálón, a naplózáson, a gyorsítótárhelyen és a modellvariáns kiválasztásán. Például a config lehetővé teszi az alkalmazásnév, a naplózási szint, a webkiszolgáló URL-címei, valamint a könyvtárak beállítását az alkalmazásadatokhoz, a modell gyorsítótárához és a naplókhoz.

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

Az Foundry Local JavaScript SDK előző verziójában ezeket a beállításokat nem tudta közvetlenül az SDK-val konfigurálni, ami korlátozta a szolgáltatás viselkedésének testreszabását.

Hivatkozások

Python SDK migrálási útmutatója

Az alkalmazások eszközalapú AI használatával történő szállításának javítása érdekében jelentős változások történtek a Python SDK architektúrájában. Ebben a szakaszban ismertetjük azokat a főbb módosításokat, amelyek segítségével az alkalmazásokat az SDK legújabb verziójára migrálhatja.

Megjegyzés:

A legújabb Python SDK-verzióban (1.0.0) az API korábbi verzióihoz képest kompatibilitástörő változások vannak (<=0.5.1).

Az alábbi ábra bemutatja, hogy az előző architektúra hogyan támaszkodott nagy mértékben a REST-webkiszolgáló használatára a modellek és a következtetés, például a csevegés befejezésének kezeléséhez:

Az Foundry Local előző architektúrájának diagramja.

Az SDK egy távoli eljárási hívással (RPC) megkeresi a számítógépen végrehajtható Foundry Local CLI-t, elindítja a webkiszolgálót, majd HTTP-n keresztül kommunikál vele. Ez az architektúra számos korlátozást tartalmazott, többek között a következőket:

  • A webkiszolgáló életciklusának kezelése összetettsége.
  • Kihívást jelentő üzembe helyezés: A végfelhasználóknak telepíteniük kellett a Foundry helyi parancssori felületét a gépükre és az alkalmazásra.
  • A parancssori felület és az SDK verziókezelése kompatibilitási problémákhoz vezethet.

A problémák megoldásához az újratervezett architektúra egyszerűbb megközelítést használ. Az új architektúra a következő:

Az Foundry Local új architektúrájának diagramja.

Ebben az új architektúrában:

  • Az alkalmazás önálló. Nincs szükség arra, hogy a Foundry helyi parancssori felület külön legyen telepítve a végfelhasználó gépére, így egyszerűbben helyezhet üzembe alkalmazásokat.
  • A REST webkiszolgáló nem kötelező. Továbbra is használhatja a webkiszolgálót, ha más, HTTP-n keresztül kommunikáló eszközökkel szeretne integrálni.
  • Az SDK natív támogatást nyújt a csevegések befejezéséhez és a hangátiratokhoz, így kevesebb függőséggel rendelkező beszélgetési AI-alkalmazásokat hozhat létre.

API-módosítások

A legújabb verzió egy objektumorientáltabb és összeállíthatóbb API-t biztosít. A fő belépési pont továbbra is az FoundryLocalManager osztály, de az inicializálási minta, a modellkezelés és a következtetés jelentősen megváltozott.

Primitív Előző verzió (foundry-local) Jelenlegi verzió (foundry-local-sdk)
csomag pip install foundry-local pip install foundry-local-sdk
Importálás from foundry_local import FoundryLocalManager from foundry_local_sdk import Configuration, FoundryLocalManager
Konfiguráció N/A config = Configuration(app_name="app-name")
Manager lekérése manager = FoundryLocalManager(alias) FoundryLocalManager.initialize(config)
manager = FoundryLocalManager.instance
Katalógus lekérése N/A catalog = manager.catalog
Modellek listázása manager.list_catalog_models() catalog.list_models()
Modell lekérése manager.get_model_info(alias) catalog.get_model(alias)
Modell letöltése manager.download_model(alias) model.download(progress_callback)
Modell betöltése manager.load_model(alias) model.load()
Modell eltávolítása manager.unload_model(alias) model.unload()
Betöltött modellek listázása manager.list_loaded_models() catalog.get_loaded_models()
Gyorsítótárazott modellek listázása manager.list_cached_models() catalog.get_cached_models()
Gyorsítótár helye manager.get_cache_location() config.model_cache_dir
Szolgáltatás indítása manager.start_service() manager.start_web_service()
Szolgáltatásvégpont manager.endpoint manager.urls

Az API lehetővé teszi, hogy a Foundry Local konfigurálhatóbb legyen a webkiszolgálón, a naplózáson, a gyorsítótárhelyen és a modellvariáns kiválasztásán. Az Configuration osztály például lehetővé teszi az alkalmazásnév, a naplózási szint, a webkiszolgáló URL-címeinek és könyvtárainak beállítását az alkalmazásadatokhoz, a modellgyorsítótárhoz és a naplókhoz:

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

Hivatkozások

Rust SDK Migration Guide

A Rust SDK architektúrájában jelentős változások történnek az alkalmazások eszközalapú AI használatával történő szállításának javítása érdekében. Ebben a szakaszban ismertetjük azokat a főbb módosításokat, amelyek segítségével az alkalmazásokat az SDK legújabb verziójára migrálhatja.

Megjegyzés:

A Rust SDK legújabb verziójában (1.0.0) az API-ban az előző verzió kompatibilitástörő változásai vannak. A láda neve megváltozott foundry-local-ról foundry-local-sdk-ra.

Az alábbi ábra bemutatja, hogy az előző architektúra hogyan támaszkodott nagy mértékben a REST-webkiszolgáló használatára a modellek és a következtetés, például a csevegés befejezésének kezeléséhez:

Az Foundry Local előző architektúrájának diagramja.

Az SDK egy távoli eljárási hívással (RPC) megkeresi a számítógépen végrehajtható Foundry local CLI-t, elindítja a webkiszolgálót, majd HTTP-n keresztül kommunikál vele. Ez az architektúra számos korlátozást tartalmazott, többek között a következőket:

  • A webkiszolgáló életciklusának kezelése összetettsége.
  • Kihívást jelentő üzembe helyezés: A végfelhasználóknak telepíteniük kellett a Foundry helyi parancssori felületét a gépükre és az alkalmazásra.
  • A parancssori felület és az SDK verziókezelése kompatibilitási problémákhoz vezethet.

A problémák megoldásához az újratervezett architektúra egyszerűbb megközelítést használ. Az új architektúra a következő:

Az Foundry Local új architektúrájának diagramja.

Ebben az új architektúrában:

  • Az alkalmazás önálló. Nincs szükség arra, hogy a Foundry helyi parancssori felület külön legyen telepítve a végfelhasználó gépére, így egyszerűbben helyezhet üzembe alkalmazásokat.
  • A REST webkiszolgáló nem kötelező. Továbbra is használhatja a webkiszolgálót, ha más, HTTP-n keresztül kommunikáló eszközökkel szeretne integrálni.
  • Az SDK natív támogatást nyújt a csevegések befejezéséhez és a hangátiratokhoz, így kevesebb függőséggel rendelkező beszélgetési AI-alkalmazásokat hozhat létre.

API-módosítások

A legújabb verzió egy objektumorientáltabb és összeállíthatóbb API-t biztosít. A szerkesztőmintát egy konfigurációalapú megközelítés váltotta fel, és a modellkezelés most már dedikált Model objektumokat használ.

Primitív Előző verzió (foundry-local) Jelenlegi verzió (foundry-local-sdk)
Láda foundry-local foundry-local-sdk
Konfiguráció N/A FoundryLocalConfig::new("app-name")
Manager lekérése FoundryLocalManager::builder().build().await? FoundryLocalManager::create(config)?
Katalógus lekérése N/A manager.catalog()
Modellek listázása manager.list_catalog_models().await? manager.catalog().get_models().await?
Modell lekérése manager.get_model_info(alias).await? manager.catalog().get_model(alias).await?
Modell letöltése manager.download_model(alias).await? model.download(callback).await?
Modell betöltése manager.load_model(alias).await? model.load().await?
Modell eltávolítása manager.unload_model(alias).await? model.unload().await?
Betöltött modellek listázása manager.list_loaded_models().await? manager.catalog().get_loaded_models().await?
Gyorsítótárazott modellek listázása manager.list_cached_models().await? manager.catalog().get_cached_models().await?
Szolgáltatás indítása manager.start_service()? manager.start_web_service().await?
végpont manager.endpoint()? manager.urls()
HTTP-hívások reqwest::Client (manuális REST) Natív SDK: model.create_chat_client()

Az új SDK natív csevegési és hangügyfeleket biztosít, így a legtöbb esetben nincs szükség manuális HTTP-kérésekre:

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

Hivatkozások