警告
此參考適用於依賴 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
列舉支援的執行提供者。
CPUWebGPUCUDAQNN
方法
get_alias(&self) -> String
傳回執行提供者的字串別名。
ModelRuntime
描述模型的運行時間環境。
device_type: DeviceTypeexecution_provider: ExecutionProvider