Foundry Local Legacy SDK 參考文件

警告

此參考適用於依賴 Foundry 本地 CLI 來管理服務的早期版本 Foundry Local SDK。

新開發時,請使用 目前的 SDK 參考。

下表顯示了依賴 CLI 的 SDK 版本:

語言 Package 依賴 CLI 的版本
C# Microsoft.AI.Foundry.Local 0.3.0 及更早版本
JavaScript Foundry-Local-SDK 0.5.0 及更早版本
Python Foundry-Local-SDK 0.5.1 及更早版本
Rust Foundry-Local / Foundry-Local-SDK 0.x

依賴 CLI 版本的支援將於 2026 年 8 月 31 日結束。

Python SDK 指南

先決條件

  • 安裝 Foundry Local CLI,並確保您的 foundry 上可使用 PATH 命令。
  • 使用 Python 3.9 或更新版本。

Installation

安裝 Python 套件:

pip install foundry-local-sdk==0.5.1

快速入門

使用此摘要驗證 SDK 是否能啟動服務並存取本地目錄。

from foundry_local import FoundryLocalManager

manager = FoundryLocalManager()
manager.start_service()

catalog = manager.list_catalog_models()
print(f"Catalog models available: {len(catalog)}")

當服務運行且目錄可用時,此範例會列印非零數字。

參考:

FoundryLocalManager 類別

類別 FoundryLocalManager 提供管理模型、快取和 Foundry Local 服務的方法。

初始化

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:(選擇性) 在啟動時下載和載入的別名或模型識別碼。
  • bootstrap:(預設值 True) 如果為 True,如果未執行,則會啟動服務,並在提供時載入模型。

別名的附註

此參考中概述的許多方法在簽章中都有參數 alias_or_model_id 。 您可以將 別名 或 模型標識碼 當做值傳遞至 方法。 使用別名將會:

  • 為可用的硬體選擇最佳模型。 例如,如果 Nvidia CUDA GPU 可供使用,Foundry Local 會選取 CUDA 模型。 如果有支援的 NPU 可用,Foundry Local 會選取 NPU 模型。
  • 可讓您使用較短的名稱,而不需要記住模型標識符。

小提示

建議您在 alias_or_model_id 參數中傳入別名,因為當您部署應用程式時,Foundry Local 會在執行階段取得最適合使用者機器的最佳模型。

備註

如果你Windows有 Intel NPU,務必安裝 Intel NPU 驅動程式以達到最佳 NPU 加速。

服務管理

方法 Signature 說明
is_service_running() () -> bool 檢查 Foundry 本地服務是否正在執行。
start_service() () -> None 啟動 Foundry Local 服務。
service_uri @property -> str 傳回服務 URI。
endpoint @property -> str 傳回服務端點。
api_key @property -> str 傳回 API 金鑰(從 env 或預設值)。

目錄管理

方法 Signature 說明
list_catalog_models() () -> list[FoundryModelInfo] 列出目錄中所有可用的模型。
refresh_catalog() () -> None 重新整理模型目錄。
get_model_info() (alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None 依別名或標識碼取得模型資訊。

快取管理

方法 Signature 說明
get_cache_location() () -> str 傳回模型快取目錄路徑。
list_cached_models() () -> list[FoundryModelInfo] 列出下載至本機快取的模型。

模型管理

方法 Signature 說明
download_model() (alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo 將模型下載至本機快取。
load_model() (alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo 將模型載入推斷伺服器。
unload_model() (alias_or_model_id: str, force: bool = False) -> None 從推理服務器卸載模型。
list_loaded_models() () -> list[FoundryModelInfo] 列出服務中目前載入的所有模型。

FoundryModelInfo

方法list_catalog_models()、list_cached_models()list_loaded_models()回傳物件清單FoundryModelInfo。 你可以利用這個物件中包含的資訊進一步精煉清單。 或者直接透過呼叫 get_model_info(alias_or_model_id) 方法取得模型資訊。

這些物件包含以下欄位:

領域 類型 說明
alias str 模特兒的別名。
id str 模型的唯一識別碼。
version str 模型的版本。
execution_provider str 執行模型的加速器(執行提供者)。
device_type DeviceType 型號的裝置類型:CPU、GPU、NPU。
uri str 模型的 URI。
file_size_mb int 模型在磁碟上的大小(以 MB 為單位)。
supports_tool_calling bool 模型是否支援工具呼叫。
prompt_template dict \| None 模型的提示範本。
provider str 模型提供者(模型發表地點)。
publisher str 模型的Publisher(是誰出版了模型)。
license str 型號的授權名稱。
task str 模型的任務。 chat-completions 或 automatic-speech-recognition 的其中之一。
ep_override str \| None 如果與模型的預設值不同,請覆寫執行提供者。

執行提供者

擇一:

  • CPUExecutionProvider - 基於 CPU 的執行
  • CUDAExecutionProvider - NVIDIA CUDA GPU 執行
  • WebGpuExecutionProvider - WebGPU 的執行
  • QNNExecutionProvider - 高通神經網路處理單元(NPU)
  • OpenVINOExecutionProvider - 英特爾 OpenVINO 執行環境
  • NvTensorRTRTXExecutionProvider - NVIDIA TensorRT 執行
  • VitisAIExecutionProvider - AMD Vitis AI 執行

範例使用方式

下列程式代碼示範如何使用 類別 FoundryLocalManager 來管理模型,並與 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)

這個範例列出模型,下載並載入一個模型,然後卸載它。

參考:

與 OpenAI SDK 整合

安裝 OpenAI 套件:

pip install openai

下列程式代碼示範如何與 OpenAI SDK 整合 FoundryLocalManager ,以與本機模型互動。

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)

此範例串流來自本地模型的聊天完成結果。

參考:

JavaScript SDK 參考

先決條件

  • 安裝 Foundry Local CLI,並確保您的 foundry 上可使用 PATH 命令。

Installation

從 npm 安裝套件:

npm install foundry-local-sdk@0.5.0

快速入門

使用此摘要驗證 SDK 是否能啟動服務並存取本地目錄。

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

當服務運行且目錄可用時,此範例會列印非零數字。

參考:

FoundryLocalManager 類別

類別 FoundryLocalManager 可讓您在瀏覽器和 Node.js 環境中管理模型、控制快取,並與 Foundry Local 服務互動。

初始化

import { FoundryLocalManager } from "foundry-local-sdk";

const foundryLocalManager = new FoundryLocalManager();

可用選項:

  • host: Foundry 本地服務的基底 URL
  • fetch:(選擇性) Node.js 等環境的自定義擷取實作

別名的附註

此參考中概述的許多方法在簽章中都有參數 aliasOrModelId 。 您可以將 別名 或 模型標識碼 當做值傳遞至 方法。 使用別名將會:

  • 為可用的硬體選擇最佳模型。 例如,如果 Nvidia CUDA GPU 可供使用,Foundry Local 會選取 CUDA 模型。 如果有支援的 NPU 可用,Foundry Local 會選取 NPU 模型。
  • 可讓您使用較短的名稱,而不需要記住模型標識符。

小提示

建議您在 aliasOrModelId 參數中傳入別名,因為當您部署應用程式時,Foundry Local 會在執行階段取得最適合使用者機器的最佳模型。

備註

如果你Windows有 Intel NPU,務必安裝 Intel NPU 驅動程式以達到最佳 NPU 加速。

服務管理

方法 Signature 說明
init() (aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> 初始化 SDK,並選擇性地載入模型。
isServiceRunning() () => Promise<boolean> 檢查 Foundry 本地服務是否正在執行。
startService() () => Promise<void> 啟動 Foundry Local 服務。
serviceUrl string Foundry Local Service 的基底 URL。
endpoint string API 端點 (serviceUrl + /v1)。
apiKey string API 金鑰(無)。

目錄管理

方法 Signature 說明
listCatalogModels() () => Promise<FoundryModelInfo[]> 列出目錄中所有可用的模型。
refreshCatalog() () => Promise<void> 重新整理模型目錄。
getModelInfo() (aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> 依別名或標識碼取得模型資訊。

快取管理

方法 Signature 說明
getCacheLocation() () => Promise<string> 傳回模型快取目錄路徑。
listCachedModels() () => Promise<FoundryModelInfo[]> 列出下載至本機快取的模型。

模型管理

方法 Signature 說明
downloadModel() (aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> 將模型下載至本機快取。
loadModel() (aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> 將模型載入推斷伺服器。
unloadModel() (aliasOrModelId: string, force = false) => Promise<void> 從推理服務器卸載模型。
listLoadedModels() () => Promise<FoundryModelInfo[]> 列出服務中目前載入的所有模型。

範例使用方式

下列程式代碼示範如何使用 類別 FoundryLocalManager 來管理模型,並與 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);

此範例先下載並載入模型,然後列出快取與載入的模型。

參考:

與 OpenAI 用戶端整合

安裝 OpenAI 套件:

npm install openai

下列程式代碼示範如何與 OpenAI 用戶端整合 FoundryLocalManager ,以與本機模型互動。

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

此範例串流來自本地模型的聊天完成結果。

參考:

瀏覽器使用方式

SDK 包含一個瀏覽器相容版本,必須手動指定主機網址:

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

備註

瀏覽器版本不支援 init、 isServiceRunning和 startService 方法。 在瀏覽器環境中使用 SDK 之前,您必須確定 Foundry Local 服務正在執行。 您可以使用 Foundry Local CLI 啟動服務: foundry server start。 您可以從 CLI 輸出擷取服務 URL。

範例使用方式

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

參考:

C# SDK 參考

先決條件

  • 安裝 Foundry Local CLI,並確保您的 foundry 上可使用 PATH 命令。

Installation

若要使用 Foundry Local C# SDK,您需要安裝 NuGet 套件:

dotnet add package Microsoft.AI.Foundry.Local --version 0.3.0 

別名的附註

此參考中概述的許多方法在簽章中都有參數 aliasOrModelId 。 您可以將 別名 或 模型標識碼 當做值傳遞至 方法。 使用別名將會:

  • 為可用的硬體選擇最佳模型。 例如,如果 Nvidia CUDA GPU 可供使用,Foundry Local 會選取 CUDA 模型。 如果有支援的 NPU 可用,Foundry Local 會選取 NPU 模型。
  • 可讓您使用較短的名稱,而不需要記住模型標識符。

小提示

建議您在 aliasOrModelId 參數中傳入別名,因為當您部署應用程式時,Foundry Local 會在執行階段取得最適合使用者機器的最佳模型。

備註

如果你Windows有 Intel NPU,務必安裝 Intel NPU 驅動程式以達到最佳 NPU 加速。

列舉

DeviceType

表示用於模型執行的裝置類型。

價值 說明
CPU CPU 裝置
GPU GPU 裝置
神經處理單元 (NPU) NPU 裝置
無效 無效/未知

ExecutionProvider

表示模型推斷的執行提供者。

價值 說明
無效 無效的提供者
CPUExecutionProvider CPU 執行
WebGpuExecutionProvider WebGPU 執行
CUDAExecutionProvider CUDA GPU 運算
QNNExecutionProvider Qualcomm NPU 執行
OpenVINO執行提供者 英特爾 OpenVINO 執行
NvTensorRTRTX執行提供者 NVIDIA TensorRT 執行
VitisAIExecutionProvider AMD Vitis AI 執行

FoundryLocalManager 類別

管理模型、快取和 Foundry Local 服務的主要進入點。

建築

var manager = new FoundryLocalManager();

屬性

房產 類型 說明
ServiceUri Uri Foundry Local 服務的基底 URI。
端點 Uri API 端點 (ServiceUri + /v1)。
API 金鑰 (ApiKey) string API 金鑰(預設值: "OPENAI_API_KEY")。
IsServiceRunning bool 指出服務是否正在執行。

服務管理

啟動服務
await manager.StartServiceAsync(CancellationToken.None);

如果尚未執行,請啟動 Foundry Local 服務。

停止服務
await manager.StopServiceAsync(CancellationToken.None);

停止 Foundry Local 服務。

啟動與載入模型 (靜態協助程式)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");

啟動服務並載入指定的模型。

目錄管理

列出所有目錄模型
List<ModelInfo> models = await manager.ListCatalogModelsAsync();

傳回目錄中所有可用的模型。

重新整理目錄
manager.RefreshCatalog();

清除快取的目錄,以便在下次存取時重載。

依別名或標識碼取得模型資訊
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");

傳回模型資訊,如果找不到則傳回 null。

快取管理

取得快取位置
string cachePath = await manager.GetCacheLocationAsync();

傳回快取模型的目錄路徑。

列出快取的模型
List<ModelInfo> cached = await manager.ListCachedModelsAsync();

傳回下載至本機快取的模型。

模型管理

下載模型
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");

將模型下載至本機快取。

下載具有進度顯示的模型
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
    // progress.Percentage, progress.Status, etc.
}

串流下載進度更新。

載入模型
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");

將模型載入推斷伺服器。

列出載入的模型
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();

列出服務中目前載入的所有模型。

卸載模型
await manager.UnloadModelAsync("aliasOrModelId");

從推理服務器卸載模型。

處置

同時實作 IDisposable 和 IAsyncDisposable 以進行適當的清除。

manager.Dispose();
// or
await manager.DisposeAsync();

模型類型

此頁面記載 Foundry Local C# SDK 用於描述模型、下載和執行時期資訊的關鍵數據類型。

PromptTemplate

代表模型的提示範本。

房產 類型 說明
小幫手 字串 助理的提示範本。
提示 字串 使用者提示範本。

Runtime

描述模型的運行時間環境。

房產 類型 說明
裝置類型 DeviceType 裝置類型(CPU、GPU 等)。
執行提供者 ExecutionProvider 執行提供者 (CUDA、CPU 等)。

ModelSettings

表示模型特定的參數。

房產 類型 說明
參數 列出<JsonElement> 模型參數集合

ModelInfo

描述 Foundry Local 目錄或快取中的模型。

房產 類型 說明
ModelId 字串 唯一模型標識碼。
DisplayName 字串 人類可讀的模型名稱。
ProviderType 字串 提供者類型 (例如 “CUDA”、“CPU” )。
Uri 字串 下載模型的 URI。
版本 字串 模型版本。
模型類型 字串 模型類型(例如,“llm”)。
PromptTemplate PromptTemplate 模型的提示範本。
出版商 字串 該模型的發行者。
任務 字串 工作類型(例如「聊天」、「完成」)。
執行時間 執行時間 運行時間環境資訊。
檔案大小 (MB) long 以 MB 為單位的模型檔案大小。
ModelSettings 模型設置 ModelSettings 模型設置 模型特定的設定。
Alias 字串 模型的別名。
SupportsToolCalling 布爾 (bool) 是否支援工具呼叫。
許可證 字串 授權標識碼。
許可證描述 字串 授權描述。
ParentModelUri 字串 父模型的 URI,如果有的話。

ModelDownloadProgress

表示模型下載作業的進度。

房產 類型 說明
百分比 double 下載完成百分比 (0-100)。
IsCompleted 布爾 (bool) 下載是否完成。
ModelInfo ModelInfo? 下載完成時的模型資訊。
錯誤訊息 字串? 如果下載失敗,錯誤訊息。

靜態方法:

  • Progress(double percentage):建立進度報告。
  • Completed(ModelInfo modelInfo):建立完成進度結果。
  • Error(string errorMessage):建立錯誤結果。

範例使用方式

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

Rust SDK 參考

Rust SDK for Foundry Local 提供一種方式來管理模型、控制快取,並與 Foundry Local 服務互動。

先決條件

  • 安裝 Foundry Local CLI,並確保您的 foundry 上可使用 PATH 命令。
  • 使用 Rust 1.70.0 或更新版本。

Installation

若要使用 Foundry Local Rust SDK,請將下列內容新增至 :Cargo.toml

[dependencies]
foundry-local = "0.1.0"

或者,您可以使用 cargo 新增 Foundry Local Crate。

cargo add foundry-local@0

快速入門

使用此摘要驗證 SDK 是否能啟動服務並讀取本地目錄。

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(())
}

此範例在服務運行且目錄可用時,列印非零數字。

參考:

FoundryLocalManager

Foundry Local SDK 作業的管理員。

Fields

  • service_uri: Option<String>鑄造廠服務的 URI。
  • client: Option<HttpClient>: HTTP 用戶端用於 API 請求。
  • catalog_list: Option<Vec<FoundryModelInfo>>:目錄模型的快取清單。
  • catalog_dict: Option<HashMap<String, FoundryModelInfo>>:目錄模型的快取字典。
  • timeout: Option<u64>:選用 HTTP 用戶端逾時。

方法

  • pub fn builder() -> FoundryLocalManagerBuilder
    為 FoundryLocalManager 建立新的建立器。

  • pub fn service_uri(&self) -> Result<&str>
    取得服務 URI。
    返回: Foundry 服務的 URI。

  • fn client(&self) -> Result<&HttpClient>
    取得 HTTP 用戶端實例。
    傳回:HTTP 用戶端。

  • pub fn endpoint(&self) -> Result<String>
    取得服務的端點。
    返回: 端點 URL。

  • pub fn api_key(&self) -> String
    取得 API 金鑰以進行驗證。
    返回: API 金鑰。

  • pub fn is_service_running(&mut self) -> bool
    檢查服務是否正在執行,並在找到時設定服務 URI。
    返回:true 如果正在執行,則為 , false 否則為 。

  • pub fn start_service(&mut self) -> Result<()>
    啟動 Foundry 本地服務。

  • pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
    取得目錄中可用模型的清單。

  • pub fn refresh_catalog(&mut self)
    重新整理目錄快取。

  • pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
    依別名或標識碼取得模型資訊。
    引數:

    • alias_or_model_id:別名或模型標識碼。
    • raise_on_not_found:若為 true,找不到時會傳回錯誤。
  • pub async fn get_cache_location(&self) -> Result<String>
    以字串形式取得快取位置。

  • pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    列出快取的模型。

  • pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
    下載模型。
    引數:

    • alias_or_model_id:別名或模型標識碼。
    • token:選擇性的驗證令牌。
    • force:如果已經快取的話,則強制重新下載。
  • pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
    載入模型以進行推斷。
    引數:

    • alias_or_model_id:別名或模型標識碼。
    • ttl:選擇性的存留時間,以秒為單位。
  • pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
    卸載模型。
    引數:

    • alias_or_model_id:別名或模型標識碼。
    • force:即使正在使用也強制卸載。
  • pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    列出載入的模型。

FoundryLocalManagerBuilder

用於創建FoundryLocalManager實例的建構器。

Fields

  • alias_or_model_id: Option<String> — 要下載和載入的別名或模型識別碼。
  • bootstrap: bool — 如果未執行,是否要啟動此服務。
  • timeout_secs: Option<u64> — HTTP 用戶端逾時 (以秒為單位)。

方法

  • pub fn new() -> Self
    建立新的產生器實例。

  • pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
    設定別名或模型標識碼以下載和載入。

  • pub fn bootstrap(mut self, bootstrap: bool) -> Self
    設定是否要在未執行時啟動服務。

  • pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
    設定 HTTP 用戶端逾時 (以秒為單位)。

  • pub async fn build(self) -> Result<FoundryLocalManager>
    建置 FoundryLocalManager 實例。

FoundryModelInfo

表示模型的相關信息。

Fields

  • alias: String — 模型別名。
  • id: String — 模型標識碼。
  • version: String — 模型版本。
  • runtime: ExecutionProvider — 執行提供者(CPU、CUDA 等)。
  • uri: String — 模型 URI。
  • file_size_mb: i32 — 以 MB 為單位模型檔案大小。
  • prompt_template: serde_json::Value — 模型的提示範本。
  • provider: String — 提供者名稱。
  • publisher: String — Publisher名稱。
  • license: String — 授權類型。
  • task: String — 模型任務(例如文字生成)。

方法

  • from_list_response(response: &FoundryListResponseModel) -> Self
    從目錄回應建立 FoundryModelInfo。

  • to_download_body(&self) -> serde_json::Value
    將模型資訊轉換為 JSON 主體以取得下載要求。

ExecutionProvider

列舉支援的執行提供者。

  • CPU
  • WebGPU
  • CUDA
  • QNN
方法
  • get_alias(&self) -> String
    傳回執行提供者的字串別名。

ModelRuntime

描述模型的運行時間環境。

  • device_type: DeviceType
  • execution_provider: ExecutionProvider