Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini menyediakan instruksi untuk memigrasikan kode Anda dari versi warisan SDK Lokal Foundry ke versi saat ini. SDK baru menghapus dependensi pada Foundry Local CLI dan oleh karena itu memungkinkan Anda untuk mengirim aplikasi Anda tanpa mengharuskan pengguna Anda menginstal CLI atau menyiapkan lingkungan Foundry lokal. SDK baru juga mencakup peningkatan API untuk kegunaan dan performa yang lebih baik.
Panduan Migrasi C# SDK
Untuk meningkatkan kemampuan Anda dalam mendistribusikan aplikasi menggunakan AI pada perangkat, ada perubahan besar pada arsitektur C# SDK dalam versi 0.8.0 dan yang lebih baru. Di bagian ini, kami menguraikan perubahan utama untuk membantu Anda memigrasikan aplikasi ke versi terbaru SDK.
Nota
Dalam versi SDK 0.8.0 dan yang lebih baru, ada perubahan besar dalam API dari versi sebelumnya (<=0.3.0).
Diagram berikut menunjukkan bagaimana arsitektur sebelumnya - untuk versi yang lebih lama dari 0.8.0 - sangat bergantung pada penggunaan server web REST untuk mengelola model dan inferensi seperti penyelesaian obrolan:
SDK akan menggunakan Remote Procedural Call (RPC) untuk menemukan Foundry Local CLI yang dapat dieksekusi pada komputer, memulai server web, lalu berkomunikasi dengannya melalui HTTP. Arsitektur ini memiliki beberapa batasan, termasuk:
- Kompleksitas dalam mengelola siklus hidup server web.
- Penyebaran yang menantang: Pengguna akhir harus menginstal Foundry Local CLI di komputer mereka dan aplikasi Anda.
- Manajemen versi CLI dan SDK dapat menyebabkan masalah kompatibilitas.
Untuk mengatasi masalah ini, arsitektur yang dirancang ulang dalam versi 0.8.0 dan yang lebih baru menggunakan pendekatan yang lebih efisien. Arsitektur baru adalah sebagai berikut:
Dalam arsitektur baru ini:
- Aplikasi Anda mandiri. Tidak mengharuskan Foundry Local CLI diinstal secara terpisah pada komputer pengguna akhir sehingga memudahkan Anda untuk menyebarkan aplikasi.
- Server web REST bersifat opsional. Anda masih dapat menggunakan server web jika Anda ingin berintegrasi dengan alat lain yang berkomunikasi melalui HTTP. Baca Menggunakan penyelesaian obrolan melalui server REST dengan Foundry Local untuk detail tentang cara menggunakan fitur ini.
- SDK memiliki dukungan asli untuk penyelesaian obrolan dan transkripsi audio, memungkinkan Anda membangun aplikasi AI percakapan dengan lebih sedikit dependensi. Baca API penyelesaian percakapan lokal asli Foundry untuk detail tentang cara menggunakan fitur ini.
- Pada perangkat Windows, Anda dapat menggunakan build ML Windows yang menangani akselerasi perangkat keras untuk model pada perangkat dengan menggunakan runtime dan driver yang sesuai.
Perubahan API
Versi 0.8.0 dan yang lebih baru menyediakan API yang lebih berorientasi objek dan dapat dikomposisikan. Titik masuk utama tetap kelas FoundryLocalManager, tetapi alih-alih menjadi sekumpulan metode datar yang beroperasi melalui panggilan statis ke API HTTP stateless, SDK sekarang menyediakan metode pada instance FoundryLocalManager yang mempertahankan status tentang layanan dan model.
| Primitif | Versi < 0.8.0 | >= Versi 0.8.0 |
|---|---|---|
| Configuration | N/A | config = Configuration(...) |
| Dapatkan Manajer | mgr = FoundryLocalManager(); |
await FoundryLocalManager.CreateAsync(config, logger);var mgr = FoundryLocalManager.Instance; |
| Dapatkan Katalog | N/A | catalog = await mgr.GetCatalogAsync(); |
| Mencantumkan Model | mgr.ListCatalogModelsAsync(); |
catalog.ListModelsAsync(); |
| Dapatkan Model | mgr.GetModelInfoAsync("aliasOrModelId"); |
catalog.GetModelAsync(alias: "alias"); |
| Dapatkan Varian | N/A | model.SelectedVariant; |
| Atur Varian | N/A | model.SelectVariant(); |
| Unduh model | mgr.DownloadModelAsync("aliasOrModelId"); |
model.DownloadAsync() |
| Memuat model | mgr.LoadModelAsync("aliasOrModelId"); |
model.LoadAsync() |
| Membongkar model | mgr.UnloadModelAsync("aliasOrModelId"); |
model.UnloadAsync() |
| Mencantumkan model yang dimuat | mgr.ListLoadedModelsAsync(); |
catalog.GetLoadedModelsAsync(); |
| Dapatkan jalur model | N/A | model.GetPathAsync() |
| Mulai layanan | mgr.StartServiceAsync(); |
mgr.StartWebServerAsync(); |
| Hentikan layanan | mgr.StopServiceAsync(); |
mgr.StopWebServerAsync(); |
| Lokasi cache | mgr.GetCacheLocationAsync(); |
config.ModelCacheDir |
| Mencantumkan model yang di-cache | mgr.ListCachedModelsAsync(); |
catalog.GetCachedModelsAsync(); |
API memungkinkan Foundry Local untuk lebih dapat dikonfigurasi melalui server web, pengelogan, lokasi cache, dan pilihan varian model. Misalnya, Configuration kelas memungkinkan Anda menyiapkan nama aplikasi, tingkat pengelogan, URL server web, dan direktori untuk data aplikasi, cache model, dan log:
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"
};
Referensi API
- Untuk detail selengkapnya tentang Foundry Local C# SDK baca Foundry Local C# SDK API Reference.
Panduan Migrasi JavaScript SDK
Untuk meningkatkan kemampuan Anda dalam mengirim aplikasi menggunakan AI di perangkat, ada perubahan besar pada arsitektur JavaScript SDK. Di bagian ini, kami menguraikan perubahan utama untuk membantu Anda memigrasikan aplikasi ke versi terbaru SDK.
Nota
Dalam versi JavaScript SDK 0.9.0 dan yang lebih baru, ada perubahan signifikan dalam API dari versi sebelumnya (<=0.5.0).
Diagram berikut menunjukkan bagaimana arsitektur sebelumnya sangat bergantung pada penggunaan server web REST untuk mengelola model dan inferensi seperti penyelesaian obrolan:
SDK akan menggunakan Remote Procedural Call (RPC) untuk menemukan Foundry Local CLI yang dapat dieksekusi pada komputer, memulai server web, lalu berkomunikasi dengannya melalui HTTP. Arsitektur ini memiliki beberapa batasan, termasuk:
- Kompleksitas dalam mengelola siklus hidup server web.
- Penyebaran yang menantang: Pengguna akhir harus menginstal Foundry Local CLI di komputer mereka dan aplikasi Anda.
- Manajemen versi CLI dan SDK dapat menyebabkan masalah kompatibilitas.
Untuk mengatasi masalah ini, arsitektur yang didesain ulang menggunakan pendekatan yang lebih efisien. Arsitektur baru adalah sebagai berikut:
Dalam arsitektur baru ini:
- Aplikasi Anda mandiri. Tidak mengharuskan Foundry Local CLI diinstal secara terpisah pada komputer pengguna akhir sehingga memudahkan Anda untuk menyebarkan aplikasi.
- Server web REST bersifat opsional. Anda masih dapat menggunakan server web jika Anda ingin berintegrasi dengan alat lain yang berkomunikasi melalui HTTP.
- SDK memiliki dukungan asli untuk penyelesaian obrolan dan transkripsi audio, memungkinkan Anda membangun aplikasi AI percakapan dengan lebih sedikit dependensi.
Perubahan API
Versi terbaru menyediakan API yang lebih berorientasi objek dan dapat dikomposit. Titik masuk utama tetap kelas FoundryLocalManager, tetapi alih-alih menjadi sekumpulan metode datar yang beroperasi melalui panggilan statis ke API HTTP stateless, SDK sekarang menyediakan metode pada instance FoundryLocalManager yang mempertahankan status tentang layanan dan model.
| Primitif | Versi Sebelumnya | Versi Saat Ini |
|---|---|---|
| Configuration | N/A | config = { appName: "app-name", ... } |
| Dapatkan Manajer | mgr = new FoundryLocalManager(); |
mgr = FoundryLocalManager.create(config); |
| Dapatkan Katalog | N/A | catalog = mgr.catalog; |
| Mencantumkan Model | mgr.listCatalogModels(); |
catalog.getModels(); |
| Dapatkan Model | mgr.getModelInfo("aliasOrModelId"); |
catalog.getModel(alias); |
| Dapatkan Varian | N/A | model.id; |
| Atur Varian | N/A | model.selectVariant(modelId); |
| Unduh model | mgr.downloadModel("aliasOrModelId"); |
model.download(); |
| Memuat model | mgr.loadModel("aliasOrModelId"); |
model.load(); |
| Membongkar model | mgr.unloadModel("aliasOrModelId"); |
model.unload(); |
| Mencantumkan model yang dimuat | mgr.listLoadedModels(); |
catalog.getLoadedModels(); |
| Dapatkan jalur model | N/A | model.path; |
| Mulai layanan | mgr.startService(); |
mgr.startWebService(); |
| Hentikan layanan | N/A | mgr.stopWebService(); |
| Lokasi cache | mgr.getCacheLocation(); |
config.modelCacheDir |
| Mencantumkan model yang di-cache | mgr.listCachedModels(); |
catalog.getCachedModels(); |
API memungkinkan Foundry Local untuk lebih dapat dikonfigurasi melalui server web, pengelogan, lokasi cache, dan pilihan varian model. Misalnya, config memungkinkan Anda menyiapkan nama aplikasi, tingkat pengelogan, URL server web, dan direktori untuk data aplikasi, cache model, dan log:
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",
};
Dalam versi SDK Foundry Local JavaScript sebelumnya, Anda tidak dapat mengonfigurasi pengaturan ini secara langsung melalui SDK, yang membatasi kemampuan Anda untuk menyesuaikan perilaku layanan.
Referensi
Panduan Migrasi SDK Python
Untuk meningkatkan kemampuan Anda dalam mengirim aplikasi menggunakan AI di perangkat, ada perubahan besar pada arsitektur SDK Python. Di bagian ini, kami menguraikan perubahan utama untuk membantu Anda memigrasikan aplikasi ke versi terbaru SDK.
Nota
Dalam versi SDK Python terbaru (1.0.0), ada perubahan yang mengakibatkan ketidakcocokan dalam API dari versi sebelumnya (<=0.5.1).
Diagram berikut menunjukkan bagaimana arsitektur sebelumnya sangat bergantung pada penggunaan server web REST untuk mengelola model dan inferensi seperti penyelesaian obrolan:
SDK akan menggunakan Remote Procedural Call (RPC) untuk menemukan Foundry Local CLI yang dapat dieksekusi pada komputer, memulai server web, lalu berkomunikasi dengannya melalui HTTP. Arsitektur ini memiliki beberapa batasan, termasuk:
- Kompleksitas dalam mengelola siklus hidup server web.
- Penyebaran yang menantang: Pengguna akhir harus menginstal Foundry Local CLI di komputer mereka dan aplikasi Anda.
- Manajemen versi CLI dan SDK dapat menyebabkan masalah kompatibilitas.
Untuk mengatasi masalah ini, arsitektur yang didesain ulang menggunakan pendekatan yang lebih efisien. Arsitektur baru adalah sebagai berikut:
Dalam arsitektur baru ini:
- Aplikasi Anda mandiri. Tidak mengharuskan Foundry Local CLI diinstal secara terpisah pada komputer pengguna akhir sehingga memudahkan Anda untuk menyebarkan aplikasi.
- Server web REST bersifat opsional. Anda masih dapat menggunakan server web jika Anda ingin berintegrasi dengan alat lain yang berkomunikasi melalui HTTP.
- SDK memiliki dukungan asli untuk penyelesaian obrolan dan transkripsi audio, memungkinkan Anda membangun aplikasi AI percakapan dengan lebih sedikit dependensi.
Perubahan API
Versi terbaru menyediakan API yang lebih berorientasi objek dan dapat dikomposit. Titik masuk utama terus menjadi FoundryLocalManager kelas, tetapi pola inisialisasi, manajemen model, dan inferensi semuanya telah berubah secara signifikan.
| Primitif | Versi Sebelumnya (foundry-local) |
Versi Saat Ini (foundry-local-sdk) |
|---|---|---|
| Paket | pip install foundry-local |
pip install foundry-local-sdk |
| Mengimpor | from foundry_local import FoundryLocalManager |
from foundry_local_sdk import Configuration, FoundryLocalManager |
| Configuration | N/A | config = Configuration(app_name="app-name") |
| Dapatkan Manajer | manager = FoundryLocalManager(alias) |
FoundryLocalManager.initialize(config)manager = FoundryLocalManager.instance |
| Dapatkan Katalog | N/A | catalog = manager.catalog |
| Mencantumkan Model | manager.list_catalog_models() |
catalog.list_models() |
| Dapatkan Model | manager.get_model_info(alias) |
catalog.get_model(alias) |
| Unduh model | manager.download_model(alias) |
model.download(progress_callback) |
| Memuat model | manager.load_model(alias) |
model.load() |
| Membongkar model | manager.unload_model(alias) |
model.unload() |
| Mencantumkan model yang dimuat | manager.list_loaded_models() |
catalog.get_loaded_models() |
| Mencantumkan model yang di-cache | manager.list_cached_models() |
catalog.get_cached_models() |
| Lokasi cache | manager.get_cache_location() |
config.model_cache_dir |
| Mulai layanan | manager.start_service() |
manager.start_web_service() |
| Titik akhir layanan | manager.endpoint |
manager.urls |
API memungkinkan Foundry Local untuk lebih dapat dikonfigurasi melalui server web, pengelogan, lokasi cache, dan pilihan varian model. Misalnya, Configuration kelas memungkinkan Anda menyiapkan nama aplikasi, tingkat pengelogan, URL server web, dan direktori untuk data aplikasi, cache model, dan log:
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",
)
Referensi
Panduan Migrasi SDK Rust
Untuk meningkatkan kemampuan Anda dalam mengirim aplikasi menggunakan AI di perangkat, ada perubahan besar pada arsitektur Rust SDK. Di bagian ini, kami menguraikan perubahan utama untuk membantu Anda memigrasikan aplikasi ke versi terbaru SDK.
Nota
Dalam versi terbaru Rust SDK (1.0.0), terdapat perubahan yang dapat merusak kompatibilitas pada API dari versi sebelumnya. Nama peti telah berubah dari foundry-local menjadi foundry-local-sdk.
Diagram berikut menunjukkan bagaimana arsitektur sebelumnya sangat bergantung pada penggunaan server web REST untuk mengelola model dan inferensi seperti penyelesaian obrolan:
SDK akan menggunakan Remote Procedural Call (RPC) untuk menemukan Foundry Local CLI yang dapat dieksekusi pada komputer, memulai server web, dan kemudian berkomunikasi dengannya melalui HTTP. Arsitektur ini memiliki beberapa batasan, termasuk:
- Kompleksitas dalam mengelola siklus hidup server web.
- Penyebaran yang menantang: Pengguna akhir harus menginstal Foundry Local CLI di komputer mereka dan aplikasi Anda.
- Manajemen versi CLI dan SDK dapat menyebabkan masalah kompatibilitas.
Untuk mengatasi masalah ini, arsitektur yang didesain ulang menggunakan pendekatan yang lebih efisien. Arsitektur baru adalah sebagai berikut:
Dalam arsitektur baru ini:
- Aplikasi Anda mandiri. Tidak mengharuskan Foundry Local CLI diinstal secara terpisah pada komputer pengguna akhir sehingga memudahkan Anda untuk menyebarkan aplikasi.
- Server web REST bersifat opsional. Anda masih dapat menggunakan server web jika Anda ingin berintegrasi dengan alat lain yang berkomunikasi melalui HTTP.
- SDK memiliki dukungan asli untuk penyelesaian obrolan dan transkripsi audio, memungkinkan Anda membangun aplikasi AI percakapan dengan lebih sedikit dependensi.
Perubahan API
Versi terbaru menyediakan API yang lebih berorientasi objek dan dapat dikomposit. Pola penyusun telah diganti dengan pendekatan berbasis konfigurasi, dan manajemen model sekarang menggunakan objek khusus Model .
| Primitif | Versi Sebelumnya (foundry-local) |
Versi Saat Ini (foundry-local-sdk) |
|---|---|---|
| Peti | foundry-local |
foundry-local-sdk |
| Configuration | N/A | FoundryLocalConfig::new("app-name") |
| Dapatkan Manajer | FoundryLocalManager::builder().build().await? |
FoundryLocalManager::create(config)? |
| Dapatkan Katalog | N/A | manager.catalog() |
| Mencantumkan Model | manager.list_catalog_models().await? |
manager.catalog().get_models().await? |
| Dapatkan Model | manager.get_model_info(alias).await? |
manager.catalog().get_model(alias).await? |
| Unduh model | manager.download_model(alias).await? |
model.download(callback).await? |
| Memuat model | manager.load_model(alias).await? |
model.load().await? |
| Membongkar model | manager.unload_model(alias).await? |
model.unload().await? |
| Mencantumkan model yang dimuat | manager.list_loaded_models().await? |
manager.catalog().get_loaded_models().await? |
| Mencantumkan model yang di-cache | manager.list_cached_models().await? |
manager.catalog().get_cached_models().await? |
| Mulai layanan | manager.start_service()? |
manager.start_web_service().await? |
| Titik Akhir | manager.endpoint()? |
manager.urls() |
| Panggilan HTTP |
reqwest::Client (REST manual) |
SDK asli: model.create_chat_client() |
SDK baru menyediakan klien obrolan dan audio asli, menghilangkan kebutuhan akan permintaan HTTP manual dalam banyak kasus:
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);