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.
Peringatan
Referensi ini berlaku untuk versi SDK Lokal Foundry yang lebih lama yang bergantung pada Foundry Local CLI untuk manajemen layanan.
Untuk pengembangan baru, gunakan referensi SDK saat ini.
Tabel berikut ini memperlihatkan versi SDK di mana ada dependensi pada CLI:
| Bahasa | Package | Versi yang bergantung pada CLI |
|---|---|---|
| C# | Microsoft. AI. Foundry.Local | 0.3.0 dan yang lebih lama |
| JavaScript | foundry-local-sdk | 0.5.0 dan yang lebih lama |
| Python | foundry-local-sdk | 0.5.1 dan yang lebih lama |
| Rust | foundry-local / foundry-local-sdk | 0.x |
Dukungan untuk versi dependen CLI berakhir 31 Agustus 2026.
Referensi SDK Python
Prasyarat
- Pasang Foundry Local CLI dan pastikan perintah
foundrytersedia di perangkat AndaPATH. - Gunakan Python 3.9 atau yang lebih baru.
Penginstalan
Instal paket Python:
pip install foundry-local-sdk==0.5.1
Mulai Cepat
Gunakan cuplikan ini untuk memverifikasi bahwa SDK dapat memulai layanan dan menjangkau katalog lokal.
from foundry_local import FoundryLocalManager
manager = FoundryLocalManager()
manager.start_service()
catalog = manager.list_catalog_models()
print(f"Catalog models available: {len(catalog)}")
Contoh ini mencetak angka bukan nol saat layanan berjalan dan katalog tersedia.
Referensi:
Kelas FoundryLocalManager
Kelas ini FoundryLocalManager menyediakan metode untuk mengelola model, cache, dan layanan Foundry Local.
Inisialisasi
from foundry_local import FoundryLocalManager
# Initialize and optionally bootstrap with a model
manager = FoundryLocalManager(alias_or_model_id=None, bootstrap=True)
-
alias_or_model_id: (opsional) Alias atau ID Model untuk diunduh dan dimuat saat startup. -
bootstrap: (default True) Jika True, memulai layanan jika tidak berjalan dan memuat model jika disediakan.
Catatan tentang alias
Banyak metode yang diuraikan dalam referensi ini memiliki alias_or_model_id parameter dalam tanda tangan. Anda dapat memasukkan ke dalam metode baik alias atau ID model sebagai nilai. Menggunakan alias akan:
- Pilih model terbaik untuk perangkat keras yang tersedia. Misalnya, jika GPU CUDA Nvidia tersedia, Foundry Local memilih model CUDA. Jika NPU yang didukung tersedia, Foundry Local memilih model NPU.
- Memungkinkan Anda menggunakan nama yang lebih pendek tanpa perlu mengingat ID model.
Petunjuk / Saran
Kami merekomendasikan untuk memasukkan ke dalam alias_or_model_id parameter alias karena saat Anda menyebarkan aplikasi, Foundry Local memperoleh model terbaik untuk mesin pengguna akhir saat waktu berjalan.
Nota
Jika Anda memiliki Intel NPU pada Windows, pastikan Anda telah menginstal driver NPU Intel untuk akselerasi NPU yang optimal.
Manajemen Layanan
| Metode | Signature | Deskripsi |
|---|---|---|
is_service_running() |
() -> bool |
Memeriksa apakah layanan Foundry Local sedang berjalan. |
start_service() |
() -> None |
Memulai layanan Foundry Local. |
service_uri |
@property -> str |
Mengembalikan URI layanan. |
endpoint |
@property -> str |
Mengembalikan titik akhir layanan. |
api_key |
@property -> str |
Mengembalikan kunci API (dari env atau default). |
Manajemen Katalog
| Metode | Signature | Deskripsi |
|---|---|---|
list_catalog_models() |
() -> list[FoundryModelInfo] |
Mencantumkan semua model yang tersedia dalam katalog. |
refresh_catalog() |
() -> None |
Memperbarui katalog model. |
get_model_info() |
(alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None |
Mendapatkan info model berdasarkan alias atau ID. |
Manajemen Cache
| Metode | Signature | Deskripsi |
|---|---|---|
get_cache_location() |
() -> str |
Mengembalikan jalur direktori cache model. |
list_cached_models() |
() -> list[FoundryModelInfo] |
Mencantumkan model yang diunduh ke cache lokal. |
Manajemen Model
| Metode | Signature | Deskripsi |
|---|---|---|
download_model() |
(alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo |
Mengunduh model ke cache lokal. |
load_model() |
(alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo |
Memuat model ke server inferensi. |
unload_model() |
(alias_or_model_id: str, force: bool = False) -> None |
Menghapus model dari server inferensi. |
list_loaded_models() |
() -> list[FoundryModelInfo] |
Mencantumkan semua model yang saat ini dimuat dalam layanan. |
FoundryModelInfo
Metode list_catalog_models(), list_cached_models(), dan list_loaded_models() mengembalikan daftar FoundryModelInfo objek. Anda dapat menggunakan informasi yang terkandung dalam objek ini untuk menyempurnakan daftar lebih lanjut. Atau mendapatkan informasi untuk model secara langsung dengan memanggil metode get_model_info(alias_or_model_id).
Objek-objek ini berisi bidang berikut:
| Ladang | Tipe | Deskripsi |
|---|---|---|
alias |
str |
Alias dari model. |
id |
str |
Pengidentifikasi unik dari model. |
version |
str |
Versi model. |
execution_provider |
str |
Akselerator (penyedia eksekusi) yang digunakan untuk menjalankan model. |
device_type |
DeviceType |
Jenis perangkat model: CPU, GPU, NPU. |
uri |
str |
URI dari model. |
file_size_mb |
int |
Ukuran model pada disk dalam MB. |
supports_tool_calling |
bool |
Apakah model mendukung pemanggilan alat. |
prompt_template |
dict \| None |
Templat perintah untuk model. |
provider |
str |
Penyedia model (tempat model diterbitkan). |
publisher |
str |
Penerbit model (yang menerbitkan model). |
license |
str |
Nama lisensi model. |
task |
str |
Tugas model teknis. Salah satu chat-completions atau automatic-speech-recognition. |
ep_override |
str \| None |
Gantikan penyedia eksekusi, jika berbeda dari default model. |
Penyedia Layanan Eksekusi
Salah satu dari:
-
CPUExecutionProvider- Eksekusi berbasis CPU -
CUDAExecutionProvider- Pelaksanaan GPU NVIDIA CUDA -
WebGpuExecutionProvider- Eksekusi WebGPU -
QNNExecutionProvider- Pelaksanaan Jaringan Neural Qualcomm (NPU) -
OpenVINOExecutionProvider- Eksekusi Intel OpenVINO -
NvTensorRTRTXExecutionProvider- Eksekusi NVIDIA TensorRT -
VitisAIExecutionProvider- Eksekusi AMD Vitis AI
Contoh Penggunaan
Kode berikut menunjukkan cara menggunakan FoundryLocalManager kelas untuk mengelola model dan berinteraksi dengan layanan Foundry Local.
from foundry_local import FoundryLocalManager
# By using an alias, the most suitable model will be selected
# to your end-user's device.
alias = "qwen2.5-0.5b"
# Create a FoundryLocalManager instance. This will start the Foundry.
manager = FoundryLocalManager()
# List available models in the catalog
catalog = manager.list_catalog_models()
print(f"Available models in the catalog: {catalog}")
# Download and load a model
model_info = manager.download_model(alias)
model_info = manager.load_model(alias)
print(f"Model info: {model_info}")
# List models in cache
local_models = manager.list_cached_models()
print(f"Models in cache: {local_models}")
# List loaded models
loaded = manager.list_loaded_models()
print(f"Models running in the service: {loaded}")
# Unload a model
manager.unload_model(alias)
Contoh ini mencantumkan model, mengunduh dan memuat model, lalu menghapusnya.
Referensi:
Integrasikan dengan OpenAI SDK
Instal paket OpenAI:
pip install openai
Kode berikut menunjukkan cara mengintegrasikan FoundryLocalManager dengan OpenAI SDK untuk berinteraksi dengan model lokal.
import openai
from foundry_local import FoundryLocalManager
# By using an alias, the most suitable model will be downloaded
# to your end-user's device.
alias = "qwen2.5-0.5b"
# Create a FoundryLocalManager instance. This will start the Foundry
# Local service if it is not already running and load the specified model.
manager = FoundryLocalManager(alias)
# The remaining code uses the OpenAI Python SDK to interact with the local model.
# Configure the client to use the local Foundry service
client = openai.OpenAI(
base_url=manager.endpoint,
api_key=manager.api_key # API key is not required for local usage
)
# Set the model to use and generate a streaming response
stream = client.chat.completions.create(
model=manager.get_model_info(alias).id,
messages=[{"role": "user", "content": "Why is the sky blue?"}],
stream=True
)
# Print the streaming response
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="", flush=True)
Contoh ini menyediakan respons penyelesaian obrolan secara streaming dari model lokal.
Referensi:
Referensi JavaScript SDK
Prasyarat
- Pasang Foundry Local CLI dan pastikan perintah
foundrytersedia di perangkat AndaPATH.
Penginstalan
Instal paket dari npm:
npm install foundry-local-sdk@0.5.0
Mulai Cepat
Gunakan cuplikan ini untuk memverifikasi bahwa SDK dapat memulai layanan dan menjangkau katalog lokal.
import { FoundryLocalManager } from "foundry-local-sdk";
const manager = new FoundryLocalManager();
await manager.startService();
const catalogModels = await manager.listCatalogModels();
console.log(`Catalog models available: ${catalogModels.length}`);
Contoh ini mencetak angka bukan nol saat layanan berjalan dan katalog tersedia.
Referensi:
Kelas FoundryLocalManager
Kelas ini FoundryLocalManager memungkinkan Anda mengelola model, mengontrol cache, dan berinteraksi dengan layanan Foundry Local di browser dan lingkungan Node.js.
Inisialisasi
import { FoundryLocalManager } from "foundry-local-sdk";
const foundryLocalManager = new FoundryLocalManager();
Opsi yang tersedia:
-
host: URL dasar layanan Foundry Local -
fetch: (pilihan) Implementasi fetch khusus untuk lingkungan seperti Node.js
Catatan tentang alias
Banyak metode yang diuraikan dalam referensi ini memiliki aliasOrModelId parameter dalam tanda tangan. Anda dapat memasukkan ke dalam metode baik alias atau ID model sebagai nilai. Menggunakan alias akan:
- Pilih model terbaik untuk perangkat keras yang tersedia. Misalnya, jika GPU CUDA Nvidia tersedia, Foundry Local memilih model CUDA. Jika NPU yang didukung tersedia, Foundry Local memilih model NPU.
- Memungkinkan Anda menggunakan nama yang lebih pendek tanpa perlu mengingat ID model.
Petunjuk / Saran
Kami merekomendasikan untuk memasukkan ke dalam aliasOrModelId parameter alias karena saat Anda menyebarkan aplikasi, Foundry Local memperoleh model terbaik untuk mesin pengguna akhir saat waktu berjalan.
Nota
Jika Anda memiliki Intel NPU pada Windows, pastikan Anda telah menginstal driver NPU Intel untuk akselerasi NPU yang optimal.
Manajemen Layanan
| Metode | Signature | Deskripsi |
|---|---|---|
init() |
(aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> |
Menginisialisasi SDK dan secara opsional memuat model. |
isServiceRunning() |
() => Promise<boolean> |
Memeriksa apakah layanan Foundry Local sedang berjalan. |
startService() |
() => Promise<void> |
Memulai layanan Foundry Local. |
serviceUrl |
string |
URL dasar layanan Foundry Local. |
endpoint |
string |
Titik akhir API (serviceUrl + /v1). |
apiKey |
string |
Kunci API (tidak ada). |
Manajemen Katalog
| Metode | Signature | Deskripsi |
|---|---|---|
listCatalogModels() |
() => Promise<FoundryModelInfo[]> |
Mencantumkan semua model yang tersedia dalam katalog. |
refreshCatalog() |
() => Promise<void> |
Memperbarui katalog model. |
getModelInfo() |
(aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> |
Mendapatkan info model berdasarkan alias atau ID. |
Manajemen Cache
| Metode | Signature | Deskripsi |
|---|---|---|
getCacheLocation() |
() => Promise<string> |
Mengembalikan jalur direktori cache model. |
listCachedModels() |
() => Promise<FoundryModelInfo[]> |
Mencantumkan model yang diunduh ke cache lokal. |
Manajemen Model
| Metode | Signature | Deskripsi |
|---|---|---|
downloadModel() |
(aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> |
Mengunduh model ke cache lokal. |
loadModel() |
(aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> |
Memuat model ke server inferensi. |
unloadModel() |
(aliasOrModelId: string, force = false) => Promise<void> |
Menghapus model dari server inferensi. |
listLoadedModels() |
() => Promise<FoundryModelInfo[]> |
Mencantumkan semua model yang saat ini dimuat dalam layanan. |
Contoh Penggunaan
Kode berikut menunjukkan cara menggunakan FoundryLocalManager kelas untuk mengelola model dan berinteraksi dengan layanan Foundry Local.
import { FoundryLocalManager } from "foundry-local-sdk";
// By using an alias, the most suitable model will be downloaded
// to your end-user's device.
// TIP: You can find a list of available models by running the
// following command in your terminal: `foundry model list`.
const alias = "qwen2.5-0.5b";
const manager = new FoundryLocalManager();
// Initialize the SDK and optionally load a model
const modelInfo = await manager.init(alias);
console.log("Model Info:", modelInfo);
// Check if the service is running
const isRunning = await manager.isServiceRunning();
console.log(`Service running: ${isRunning}`);
// List available models in the catalog
const catalog = await manager.listCatalogModels();
// Download and load a model
await manager.downloadModel(alias);
await manager.loadModel(alias);
// List models in cache
const localModels = await manager.listCachedModels();
// List loaded models
const loaded = await manager.listLoadedModels();
// Unload a model
await manager.unloadModel(alias);
Contoh ini mengunduh dan memuat model, lalu mencantumkan model yang di-cache dan dimuat.
Referensi:
Integrasi dengan Klien OpenAI
Instal paket OpenAI:
npm install openai
Kode berikut menunjukkan cara mengintegrasikan FoundryLocalManager dengan klien OpenAI untuk berinteraksi dengan model lokal.
import { OpenAI } from "openai";
import { FoundryLocalManager } from "foundry-local-sdk";
// By using an alias, the most suitable model will be downloaded
// to your end-user's device.
// TIP: You can find a list of available models by running the
// following command in your terminal: `foundry model list`.
const alias = "qwen2.5-0.5b";
// Create a FoundryLocalManager instance. This will start the Foundry
// Local service if it is not already running.
const foundryLocalManager = new FoundryLocalManager();
// Initialize the manager with a model. This will download the model
// if it is not already present on the user's device.
const modelInfo = await foundryLocalManager.init(alias);
console.log("Model Info:", modelInfo);
const openai = new OpenAI({
baseURL: foundryLocalManager.endpoint,
apiKey: foundryLocalManager.apiKey,
});
async function streamCompletion() {
const stream = await openai.chat.completions.create({
model: modelInfo.id,
messages: [{ role: "user", content: "What is the golden ratio?" }],
stream: true,
});
for await (const chunk of stream) {
if (chunk.choices[0]?.delta?.content) {
process.stdout.write(chunk.choices[0].delta.content);
}
}
}
streamCompletion();
Contoh ini menyediakan respons penyelesaian obrolan secara streaming dari model lokal.
Referensi:
Penggunaan Browser
SDK menyertakan versi yang kompatibel dengan browser tempat Anda harus menentukan URL host secara manual:
import { FoundryLocalManager } from "foundry-local-sdk/browser";
// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry server start`
// and use the URL from the CLI output
const host = "HOST";
const manager = new FoundryLocalManager({ host });
// Note: The `init`, `isServiceRunning`, and `startService` methods
// are not available in the browser version
Nota
Versi browser tidak mendukung initmetode , , isServiceRunningdan startService . Anda harus memastikan bahwa layanan Foundry Local berjalan sebelum menggunakan SDK di lingkungan browser. Anda dapat memulai layanan menggunakan Foundry Local CLI: foundry server start. Anda dapat memperoleh URL layanan dari output CLI.
Contoh Penggunaan
import { FoundryLocalManager } from "foundry-local-sdk/browser";
// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry server start`
// and use the URL from the CLI output
const host = "HOST";
const manager = new FoundryLocalManager({ host });
const alias = "qwen2.5-0.5b";
// Get all available models
const catalog = await manager.listCatalogModels();
console.log("Available models in catalog:", catalog);
// Download and load a specific model
await manager.downloadModel(alias);
await manager.loadModel(alias);
// View models in your local cache
const localModels = await manager.listCachedModels();
console.log("Cached models:", localModels);
// Check which models are currently loaded
const loaded = await manager.listLoadedModels();
console.log("Loaded models in inference service:", loaded);
// Unload a model when finished
await manager.unloadModel(alias);
Referensi:
Referensi C# SDK
Prasyarat
- Pasang Foundry Local CLI dan pastikan perintah
foundrytersedia di perangkat AndaPATH.
Penginstalan
Untuk menggunakan Foundry Local C# SDK, Anda perlu menginstal paket NuGet:
dotnet add package Microsoft.AI.Foundry.Local --version 0.3.0
Catatan tentang alias
Banyak metode yang diuraikan dalam referensi ini memiliki aliasOrModelId parameter dalam tanda tangan. Anda dapat memasukkan ke dalam metode baik alias atau ID model sebagai nilai. Menggunakan alias akan:
- Pilih model terbaik untuk perangkat keras yang tersedia. Misalnya, jika GPU CUDA Nvidia tersedia, Foundry Local memilih model CUDA. Jika NPU yang didukung tersedia, Foundry Local memilih model NPU.
- Memungkinkan Anda menggunakan nama yang lebih pendek tanpa perlu mengingat ID model.
Petunjuk / Saran
Kami merekomendasikan untuk memasukkan ke dalam aliasOrModelId parameter alias karena saat Anda menyebarkan aplikasi, Foundry Local memperoleh model terbaik untuk mesin pengguna akhir saat waktu berjalan.
Nota
Jika Anda memiliki Intel NPU pada Windows, pastikan Anda telah menginstal driver NPU Intel untuk akselerasi NPU yang optimal.
Enumerasi
DeviceType
Mewakili jenis perangkat yang digunakan untuk eksekusi model.
| Nilai | Deskripsi |
|---|---|
| CPU | Perangkat CPU |
| GPU (Unit Pemrosesan Grafis) | Perangkat GPU |
| NPU | Perangkat NPU |
| Tidak valid | Tidak valid/tidak diketahui |
ExecutionProvider
Mewakili penyedia eksekusi untuk inferensi model.
| Nilai | Deskripsi |
|---|---|
| Tidak valid | Penyedia tidak valid |
| CPUExecutionProvider | Pemrosesan CPU |
| WebGpuExecutionProvider | Eksekusi WebGPU |
| CUDAExecutionProvider | Eksekusi CUDA pada GPU |
| QNNExecutionProvider | Pelaksanaan NPU Qualcomm |
| OpenVINOExecutionProvider | Pelaksanaan Intel OpenVINO |
| NvTensorRTRTXExecutionProvider | Eksekusi NVIDIA TensorRT |
| VitisAIExecutionProvider | Pelaksanaan AMD Vitis AI |
FoundryLocalManager Kelas
Titik masuk utama untuk mengelola model, cache, dan layanan Foundry Local.
Pembangunan
var manager = new FoundryLocalManager();
Karakteristik
| Harta benda | Tipe | Deskripsi |
|---|---|---|
| ServiceUri | Uri |
URI dasar layanan Foundry Local. |
| Titik Akhir | Uri |
Titik akhir API (ServiceUri + /v1). |
| ApiKey | string |
Kunci API (bawaan: "OPENAI_API_KEY"). |
| IsServiceRunning | bool |
Menunjukkan apakah layanan sedang berjalan. |
Manajemen Layanan
Memulai layanan
await manager.StartServiceAsync(CancellationToken.None);
Memulai layanan Foundry Local jika belum berjalan.
Menghentikan layanan
await manager.StopServiceAsync(CancellationToken.None);
Menghentikan layanan Foundry Local.
Memulai dan memuat model (pembantu statis)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");
Memulai layanan dan memuat model yang ditentukan.
Manajemen Katalog
Mencantumkan semua model katalog
List<ModelInfo> models = await manager.ListCatalogModelsAsync();
Menampilkan semua model yang tersedia dalam katalog.
Segarkan katalog
manager.RefreshCatalog();
Menghapus katalog yang di-cache sehingga akan dimuat ulang pada akses berikutnya.
Mendapatkan info model berdasarkan alias atau ID
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");
Mengembalikan info model atau null jika tidak ditemukan.
Manajemen Cache
Mendapatkan lokasi cache
string cachePath = await manager.GetCacheLocationAsync();
Mengembalikan jalur direktori tempat model di-cache.
Mencantumkan model yang di-cache
List<ModelInfo> cached = await manager.ListCachedModelsAsync();
Mengembalikan model yang diunduh ke cache lokal.
Manajemen Model
Mengunduh model
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");
Mengunduh model ke cache lokal.
Mengunduh model dengan penunjuk kemajuan
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
// progress.Percentage, progress.Status, etc.
}
Streaming mengunduh pembaruan kemajuan.
Memuat sebuah model
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");
Memuat model ke server inferensi.
Mencantumkan model yang dimuat
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();
Mencantumkan semua model yang saat ini dimuat dalam layanan.
Membongkar model
await manager.UnloadModelAsync("aliasOrModelId");
Menghapus model dari server inferensi.
Pembuangan
Mengimplementasikan baik IDisposable dan IAsyncDisposable untuk pembersihan yang tepat.
manager.Dispose();
// or
await manager.DisposeAsync();
Jenis Model
Halaman ini men dokumen jenis data utama yang digunakan oleh Foundry Local C# SDK untuk menjelaskan model, unduhan, dan informasi runtime.
PromptTemplate
Mewakili templat perintah untuk model.
| Harta benda | Tipe | Deskripsi |
|---|---|---|
| Asisten | string | Templat permintaan asisten. |
| Petunjuk | string | Templat permintaan pengguna. |
Runtime
Menjelaskan lingkungan runtime untuk model.
| Harta benda | Tipe | Deskripsi |
|---|---|---|
| Jenis Perangkat | DeviceType |
Jenis perangkat (CPU, GPU, dll). |
| Penyedia Eksekusi | ExecutionProvider |
Penyedia eksekusi (CUDA, CPU, dll). |
ModelSettings
Mewakili parameter yang spesifik untuk model.
| Harta benda | Tipe | Deskripsi |
|---|---|---|
| Parameter-parameternya | Daftar<JsonElement> | Koleksi parameter model |
ModelInfo
Menjelaskan model di katalog atau cache Local Foundry.
| Harta benda | Tipe | Deskripsi |
|---|---|---|
| ModelId | string | Pengidentifikasi model unik. |
| DisplayName | string | Nama model yang dapat dibaca manusia. |
| ProviderType | string | Jenis penyedia (misalnya, "CUDA", "CPU"). |
| Uri | string | Unduh URI untuk model. |
| Versi | string | Versi model. |
| ModelType | string | Jenis model (misalnya, "llm"). |
| PromptTemplate | PromptTemplate | Templat perintah untuk model. |
| Publisher | string | Penerbit model. |
| Tugas | string | Jenis tugas (misalnya, "obrolan", "penyelesaian"). |
| Runtime | Runtime | Informasi lingkungan sistem runtime. |
| UkuranBerkasMb | long | Ukuran file model dalam MB. |
| Pengaturan Model | Pengaturan Model | Pengaturan khusus model. |
| Alias | string | Alias bagi model. |
| Mendukung Pemanggilan Alat | bool | Apakah pemanggilan alat didukung. |
| Lisensi | string | Pengidentifikasi lisensi. |
| Deskripsi Lisensi | string | Deskripsi lisensi. |
| ParentModelUri | string | URI model induk, jika ada. |
ModelDownloadProgress
Mewakili kemajuan operasi pengunduhan model.
| Harta benda | Tipe | Deskripsi |
|---|---|---|
| Persentase | dua kali lipat | Persentase penyelesaian pengunduhan (0-100). |
| Sudah Selesai | bool | Apakah unduhan selesai. |
| Info Model | ModelInfo? | Informasi model jika pengunduhan telah selesai. |
| Pesan Kesalahan | tali? | Pesan kesalahan jika pengunduhan gagal. |
Metode statis:
-
Progress(double percentage): Buat pembaruan progres. -
Completed(ModelInfo modelInfo): Buat laporan kemajuan yang telah selesai. -
Error(string errorMessage): Buat hasil kesalahan.
Contoh Penggunaan
using Microsoft.AI.Foundry.Local;
var manager = new FoundryLocalManager();
await manager.StartServiceAsync();
var models = await manager.ListCatalogModelsAsync();
var alias = "qwen2.5-0.5b";
await manager.DownloadModelAsync(alias);
await manager.LoadModelAsync(alias);
var loaded = await manager.ListLoadedModelsAsync();
await manager.UnloadModelAsync(alias);
manager.Dispose();
Referensi Rust SDK
Rust SDK for Foundry Local menyediakan cara untuk mengelola model, mengontrol cache, dan berinteraksi dengan layanan Foundry Local.
Prasyarat
- Pasang Foundry Local CLI dan pastikan perintah
foundrytersedia di perangkat AndaPATH. - Gunakan Rust 1.70.0 atau yang lebih baru.
Penginstalan
Untuk menggunakan Foundry Local Rust SDK, tambahkan yang berikut ini ke Cargo.toml:
[dependencies]
foundry-local = "0.1.0"
Atau, Anda dapat menambahkan peti Foundry Local menggunakan cargo:
cargo add foundry-local@0
Mulai Cepat
Gunakan cuplikan ini untuk memverifikasi bahwa SDK dapat memulai layanan dan membaca katalog lokal.
use anyhow::Result;
use foundry_local::FoundryLocalManager;
#[tokio::main]
async fn main() -> Result<()> {
let mut manager = FoundryLocalManager::builder().bootstrap(true).build().await?;
let models = manager.list_catalog_models().await?;
println!("Catalog models available: {}", models.len());
Ok(())
}
Contoh ini mencetak nomor bukan nol saat layanan berjalan dan katalog tersedia.
Referensi:
FoundryLocalManager
Manajer untuk operasi SDK Lokal Foundry.
Fields
-
service_uri: Option<String>: URI layanan Foundry. -
client: Option<HttpClient>: Klien HTTP untuk permintaan API. -
catalog_list: Option<Vec<FoundryModelInfo>>: Daftar model katalog yang di-cache. -
catalog_dict: Option<HashMap<String, FoundryModelInfo>>: Kamus dalam cache untuk model katalog. -
timeout: Option<u64>: Batas waktu klien HTTP opsional.
Metode
pub fn builder() -> FoundryLocalManagerBuilder
Buat pembangun baru untukFoundryLocalManager.pub fn service_uri(&self) -> Result<&str>
Dapatkan URI layanan.
Hasil: URI layanan Foundry.fn client(&self) -> Result<&HttpClient>
Dapatkan instans klien HTTP.
Kembalian: Klien HTTP.pub fn endpoint(&self) -> Result<String>
Dapatkan titik akhir untuk layanan.
Kembali: URL Titik Akhir.pub fn api_key(&self) -> String
Dapatkan kunci API untuk autentikasi.
Kembali: Kunci API.pub fn is_service_running(&mut self) -> bool
Periksa apakah layanan berjalan dan atur URI layanan jika ditemukan.
Kembali:truejika berjalan,falsejika tidak.pub fn start_service(&mut self) -> Result<()>
Mulai layanan Foundry Local.pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
Dapatkan daftar model yang tersedia di katalog.pub fn refresh_catalog(&mut self)
Segarkan cache katalog.pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
Dapatkan informasi model berdasarkan alias atau ID.
Argumen:-
alias_or_model_id: Alias atau ID Model. -
raise_on_not_found: Jika true, kesalahan jika tidak ditemukan.
-
pub async fn get_cache_location(&self) -> Result<String>
Dapatkan lokasi cache sebagai string.pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Mencantumkan model yang di-cache.pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
Unduh model.
Argumen:-
alias_or_model_id: Alias atau ID Model. -
token: Token autentikasi opsional. -
force: Paksa pengunduhan ulang jika sudah di-cache.
-
pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
Muat model untuk inferensi.
Argumen:-
alias_or_model_id: Alias atau ID Model. -
ttl: Opsional masa-berlangsung dalam satuan detik.
-
pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
Membongkar model.
Argumen:-
alias_or_model_id: Alias atau ID Model. -
force: Paksa bongkar meskipun sedang digunakan.
-
pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Daftar model yang dimuat.
FoundryLocalManagerBuilder
Penyusun untuk membuat instance FoundryLocalManager.
Fields
-
alias_or_model_id: Option<String>— Alias atau ID model untuk diunduh dan dimuat. -
bootstrap: bool— Apakah akan memulai layanan jika tidak berjalan. -
timeout_secs: Option<u64>— Batas waktu klien HTTP dalam detik.
Metode
pub fn new() -> Self
Buat instans pembangun baru.pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
Atur alias atau ID model untuk mengunduh dan memuat.pub fn bootstrap(mut self, bootstrap: bool) -> Self
Atur apakah akan memulai layanan jika tidak berjalan.pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
Atur batas waktu klien HTTP dalam hitung detik.pub async fn build(self) -> Result<FoundryLocalManager>
FoundryLocalManagerBuat instans.
FoundryModelInfo
Merepresentasikan informasi tentang model.
Fields
-
alias: String— Nama alias untuk model. -
id: String— ID Model. -
version: String— Versi model. -
runtime: ExecutionProvider— Penyedia eksekusi (CPU, CUDA, dll.). -
uri: String— Model URI. -
file_size_mb: i32— Ukuran file model dalam MB. -
prompt_template: serde_json::Value— Templat perintah untuk model. -
provider: String— Nama penyedia. -
publisher: String— nama Publisher. -
license: String— Jenis lisensi. -
task: String— Tugas model (misalnya, pembuatan teks).
Metode
from_list_response(response: &FoundryListResponseModel) -> Self
MembuatFoundryModelInfodari respons katalog.to_download_body(&self) -> serde_json::Value
Mengonversi info model ke isi JSON untuk permintaan unduhan.
ExecutionProvider
Enum untuk penyedia eksekusi yang didukung.
CPUWebGPUCUDAQNN
Metode
get_alias(&self) -> String
Mengembalikan alias string untuk penyedia eksekusi.
ModelRuntime
Menjelaskan lingkungan runtime untuk model.
device_type: DeviceTypeexecution_provider: ExecutionProvider