Referensi SDK Warisan Lokal Foundry

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 foundry tersedia di perangkat Anda PATH.
  • 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 foundry tersedia di perangkat Anda PATH.

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 foundry tersedia di perangkat Anda PATH.

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 foundry tersedia di perangkat Anda PATH.
  • 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 untuk FoundryLocalManager.

  • 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:true jika berjalan, false jika 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>
    FoundryLocalManager Buat 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
    Membuat FoundryModelInfo dari 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.

  • CPU
  • WebGPU
  • CUDA
  • QNN
Metode
  • get_alias(&self) -> String
    Mengembalikan alias string untuk penyedia eksekusi.

ModelRuntime

Menjelaskan lingkungan runtime untuk model.

  • device_type: DeviceType
  • execution_provider: ExecutionProvider