Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 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ő:
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
- Az Foundry Local C# SDK-val kapcsolatos további részletekért olvassa el az Foundry Local C# SDK API-referenciáját.
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 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ő:
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 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ő:
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 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ő:
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);