Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Výstraha
Tento odkaz platí pro starší verze sady Foundry Local SDK, které závisí na rozhraní příkazového řádku Foundry Local CLI pro správu služeb.
Pro nový vývoj použijte aktuální referenční informace k sadě SDK.
Následující tabulka ukazuje verze sady SDK, ve kterých byla závislost na rozhraní příkazového řádku:
| Jazyk | Balíček | Verze závislé na CLI |
|---|---|---|
| jazyk C# | Microsoft. AI. Foundry.Local | 0.3.0 a starší |
| JavaScript | foundry-local-sdk | 0.5.0 a starší |
| Python | foundry-local-sdk | 0.5.1 a starší |
| Rust | foundry-local / foundry-local-sdk | 0.x |
Podpora verzí závislých na rozhraní příkazového řádku končí 31. srpna 2026.
Referenční informace k sadě PYTHON SDK
Předpoklady
- Nainstalujte Foundry Local CLI a ujistěte se, že je
foundrypříkaz dostupný na vašemPATHpočítači. - Použijte Python 3.9 nebo novější.
Instalace
Nainstalujte balíček Python:
pip install foundry-local-sdk==0.5.1
Rychlý start
Pomocí tohoto fragmentu kódu ověřte, že sada SDK může spustit službu a spojit se s místním katalogem.
from foundry_local import FoundryLocalManager
manager = FoundryLocalManager()
manager.start_service()
catalog = manager.list_catalog_models()
print(f"Catalog models available: {len(catalog)}")
Tento příklad vytiskne nenulové číslo, když je služba spuštěná a katalog je k dispozici.
Referenční informace:
FoundryLocalManager – třída
Třída FoundryLocalManager poskytuje metody pro správu modelů, mezipaměti a služby Foundry Local.
Inicializace
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: (volitelné) Alias nebo ID modelu ke stažení a načtení při spuštění programu. -
bootstrap: (výchozí hodnota True) Pokud je True, spustí službu, pokud není spuštěna, a načte model, pokud je poskytnut.
Poznámka k aliasům
Mnoho metod popsaných v tomto odkazu má alias_or_model_id parametr v podpisu. Do metody můžete předat alias nebo ID modelu jako hodnotu. Pomocí aliasu:
- Vyberte nejlepší model pro dostupný hardware. Pokud je například k dispozici Nvidia CUDA GPU, Foundry Local vybere model CUDA. Pokud je k dispozici podporovaná NPU, Foundry Local vybere model NPU.
- Umožňuje použít kratší název, aniž byste si museli pamatovat ID modelu.
Návod
Doporučujeme předat do parametru alias_or_model_idalias, protože když nasadíte aplikaci, Foundry Local získá nejlepší model pro počítač koncového uživatele za běhu.
Poznámka:
Pokud máte intel NPU na Windows, ujistěte se, že máte nainstalovaný ovladač Intel NPU pro optimální akceleraci NPU.
Správa služeb
| Metoda | Signature | Description |
|---|---|---|
is_service_running() |
() -> bool |
Zkontroluje, jestli je spuštěná místní služba Foundry. |
start_service() |
() -> None |
Spustí službu „Foundry Local“. |
service_uri |
@property -> str |
Vrátí URI služby. |
endpoint |
@property -> str |
Funkce vrátí koncový bod služby. |
api_key |
@property -> str |
Vrátí klíč rozhraní API (z env nebo default). |
Správa katalogu
| Metoda | Signature | Description |
|---|---|---|
list_catalog_models() |
() -> list[FoundryModelInfo] |
Zobrazí seznam všech dostupných modelů v katalogu. |
refresh_catalog() |
() -> None |
Aktualizuje katalog modelů. |
get_model_info() |
(alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None |
Získá informace o modelu podle aliasu nebo ID. |
Správa mezipaměti
| Metoda | Signature | Description |
|---|---|---|
get_cache_location() |
() -> str |
Vrátí cestu k adresáři mezipaměti modelu. |
list_cached_models() |
() -> list[FoundryModelInfo] |
Zobrazí seznam modelů stažených do místní mezipaměti. |
Správa modelů
| Metoda | Signature | Description |
|---|---|---|
download_model() |
(alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo |
Stáhne model do místní mezipaměti. |
load_model() |
(alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo |
Načte model na server odvozování. |
unload_model() |
(alias_or_model_id: str, force: bool = False) -> None |
Uvolní model ze serveru odvozování. |
list_loaded_models() |
() -> list[FoundryModelInfo] |
Zobrazí seznam všech modelů aktuálně načtených ve službě. |
FoundryModelInfo
Metody list_catalog_models()a list_cached_models()list_loaded_models() vrátí seznam FoundryModelInfo objektů. Pomocí informací obsažených v tomto objektu můžete seznam dále upřesnit. Nebo získejte informace pro model přímo voláním get_model_info(alias_or_model_id) metody.
Tyto objekty obsahují následující pole:
| Pole | Typ | Description |
|---|---|---|
alias |
str |
Alias modelu |
id |
str |
Jedinečný identifikátor modelu. |
version |
str |
Verze modelu |
execution_provider |
str |
Akcelerátor (zprostředkovatel spouštění) použitý ke spuštění modelu. |
device_type |
DeviceType |
Typ zařízení modelu: CPU, GPU, NPU. |
uri |
str |
Identifikátor URI modelu. |
file_size_mb |
int |
Velikost modelu na disku v MB |
supports_tool_calling |
bool |
Určuje, jestli model podporuje volání nástrojů. |
prompt_template |
dict \| None |
Šablona promptu pro model. |
provider |
str |
Zprostředkovatel modelu (kde je model publikovaný). |
publisher |
str |
Vydavatel modelu |
license |
str |
Název licence modelu. |
task |
str |
Úkol modelu Jedna z možností: chat-completions nebo automatic-speech-recognition |
ep_override |
str \| None |
Nastavení zprostředkovatele spuštění, pokud se liší od výchozího nastavení modelu. |
Poskytovatelé vykonávání
Jedna z těchto možností:
-
CPUExecutionProvider– Spuštění řízené procesorem -
CUDAExecutionProvider– Spouštění GPU NVIDIA CUDA -
WebGpuExecutionProvider– Provádění protokolu WebGPU -
QNNExecutionProvider- Spuštění neurální sítě Qualcomm (NPU) -
OpenVINOExecutionProvider- Spuštění Technologie Intel OpenVINO -
NvTensorRTRTXExecutionProvider– Zpracování pomocí NVIDIA TensorRT -
VitisAIExecutionProvider- AMD Vitis AI spouštění
Příklad použití
Následující kód ukazuje, jak používat FoundryLocalManager třídu ke správě modelů a interakci se službou 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)
Tento příklad uvádí modely, stáhne a načte jeden model a pak ho uvolní.
Referenční informace:
Integrace s OpenAI SDK
Nainstalujte balíček OpenAI:
pip install openai
Následující kód ukazuje, jak integrovat OpenAI SDK s FoundryLocalManager pro komunikaci s místním modelem.
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)
Tento příklad streamuje odpověď na dokončení chatu z místního modelu.
Referenční informace:
Referenční informace k sadě JavaScript SDK
Předpoklady
- Nainstalujte Foundry Local CLI a ujistěte se, že je
foundrypříkaz dostupný na vašemPATHpočítači.
Instalace
Nainstalujte balíček z npm:
npm install foundry-local-sdk@0.5.0
Rychlý start
Pomocí tohoto fragmentu kódu ověřte, že sada SDK může spustit službu a spojit se s místním katalogem.
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}`);
Tento příklad vytiskne nenulové číslo, když je služba spuštěná a katalog je k dispozici.
Referenční informace:
FoundryLocalManager – třída
Třída FoundryLocalManager umožňuje spravovat modely, řídit mezipaměť a pracovat s místní službou Foundry v prohlížeči i v prostředích Node.js.
Inicializace
import { FoundryLocalManager } from "foundry-local-sdk";
const foundryLocalManager = new FoundryLocalManager();
Dostupné možnosti:
-
host: Základní adresa URL místní služby Foundry -
fetch: (volitelné) Vlastní implementace načítání pro prostředí, jako je Node.js
Poznámka k aliasům
Mnoho metod popsaných v tomto odkazu má aliasOrModelId parametr v podpisu. Do metody můžete předat alias nebo ID modelu jako hodnotu. Pomocí aliasu:
- Vyberte nejlepší model pro dostupný hardware. Pokud je například k dispozici Nvidia CUDA GPU, Foundry Local vybere model CUDA. Pokud je k dispozici podporovaná NPU, Foundry Local vybere model NPU.
- Umožňuje použít kratší název, aniž byste si museli pamatovat ID modelu.
Návod
Doporučujeme předat do parametru aliasOrModelIdalias, protože když nasadíte aplikaci, Foundry Local získá nejlepší model pro počítač koncového uživatele za běhu.
Poznámka:
Pokud máte intel NPU na Windows, ujistěte se, že máte nainstalovaný ovladač Intel NPU pro optimální akceleraci NPU.
Správa služeb
| Metoda | Signature | Description |
|---|---|---|
init() |
(aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> |
Inicializuje sadu SDK a volitelně načte model. |
isServiceRunning() |
() => Promise<boolean> |
Zkontroluje, jestli je spuštěná místní služba Foundry. |
startService() |
() => Promise<void> |
Spustí službu „Foundry Local“. |
serviceUrl |
string |
Základní adresa URL místní služby Foundry. |
endpoint |
string |
Koncový bod rozhraní API (serviceUrl + /v1). |
apiKey |
string |
Klíč rozhraní API (žádný). |
Správa katalogu
| Metoda | Signature | Description |
|---|---|---|
listCatalogModels() |
() => Promise<FoundryModelInfo[]> |
Zobrazí seznam všech dostupných modelů v katalogu. |
refreshCatalog() |
() => Promise<void> |
Aktualizuje katalog modelů. |
getModelInfo() |
(aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> |
Získá informace o modelu podle aliasu nebo ID. |
Správa mezipaměti
| Metoda | Signature | Description |
|---|---|---|
getCacheLocation() |
() => Promise<string> |
Vrátí cestu k adresáři mezipaměti modelu. |
listCachedModels() |
() => Promise<FoundryModelInfo[]> |
Zobrazí seznam modelů stažených do místní mezipaměti. |
Správa modelů
| Metoda | Signature | Description |
|---|---|---|
downloadModel() |
(aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> |
Stáhne model do místní mezipaměti. |
loadModel() |
(aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> |
Načte model na server odvozování. |
unloadModel() |
(aliasOrModelId: string, force = false) => Promise<void> |
Uvolní model ze serveru odvozování. |
listLoadedModels() |
() => Promise<FoundryModelInfo[]> |
Zobrazí seznam všech modelů aktuálně načtených ve službě. |
Příklad použití
Následující kód ukazuje, jak používat FoundryLocalManager třídu ke správě modelů a interakci se službou 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);
Tento příklad stáhne a načte model a pak zobrazí seznam modelů uložených v mezipaměti a načtených modelů.
Referenční informace:
Integrace s klientem OpenAI
Nainstalujte balíček OpenAI:
npm install openai
Následující kód ukazuje, jak integrovat FoundryLocalManager s klientem OpenAI pro interakci s místním modelem.
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();
Tento příklad streamuje odpověď na dokončení chatu z místního modelu.
Referenční informace:
Využití prohlížeče
Sada SDK obsahuje verzi kompatibilní s prohlížečem, kde je nutné zadat adresu URL hostitele ručně:
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
Poznámka:
Verze prohlížeče nepodporuje initisServiceRunning, a startService metody. Před použitím sady SDK v prostředí prohlížeče se musíte ujistit, že je spuštěná místní služba Foundry. Službu můžete spustit pomocí místního rozhraní příkazového řádku Foundry: foundry server start. Adresu URL služby můžete gleanovat z výstupu rozhraní příkazového řádku.
Příklad použití
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);
Referenční informace:
Referenční informace k sadě C# SDK
Předpoklady
- Nainstalujte Foundry Local CLI a ujistěte se, že je
foundrypříkaz dostupný na vašemPATHpočítači.
Instalace
Pokud chcete použít sadu Foundry Local C# SDK, musíte nainstalovat balíček NuGet:
dotnet add package Microsoft.AI.Foundry.Local --version 0.3.0
Poznámka k aliasům
Mnoho metod popsaných v tomto odkazu má aliasOrModelId parametr v podpisu. Do metody můžete předat alias nebo ID modelu jako hodnotu. Pomocí aliasu:
- Vyberte nejlepší model pro dostupný hardware. Pokud je například k dispozici Nvidia CUDA GPU, Foundry Local vybere model CUDA. Pokud je k dispozici podporovaná NPU, Foundry Local vybere model NPU.
- Umožňuje použít kratší název, aniž byste si museli pamatovat ID modelu.
Návod
Doporučujeme předat do parametru aliasOrModelIdalias, protože když nasadíte aplikaci, Foundry Local získá nejlepší model pro počítač koncového uživatele za běhu.
Poznámka:
Pokud máte intel NPU na Windows, ujistěte se, že máte nainstalovaný ovladač Intel NPU pro optimální akceleraci NPU.
Výčty
DeviceType
Představuje typ zařízení používaného ke spuštění modelu.
| Hodnota | Description |
|---|---|
| CPU | Zařízení s procesorem |
| GPU | Zařízení s GPU |
| NPU | Zařízení NPU |
| Neplatný | Neplatné nebo neznámé |
ExecutionProvider
Představuje zprostředkovatele spuštění pro odvozování modelu.
| Hodnota | Description |
|---|---|
| Neplatný | Neplatný zprostředkovatel |
| CpuExecutionProvider | Spouštění procesoru |
| WebGpuExecutionProvider | Provádění protokolu WebGPU |
| CUDAExecutionProvider | Spouštění GPU CUDA |
| QNNExecutionProvider | Spuštění NPU Qualcomm |
| OpenVINOExecutionProvider | Provádění Intel OpenVINO |
| NvTensorRTRTXExecutionProvider | Provádění NVIDIA TensorRT |
| VitisAIExecutionProvider | AMD Vitis AI spuštění |
FoundryLocalManager Třída
Hlavní vstupní bod pro správu modelů, mezipaměti a místní služby Foundry.
Stavebnictví
var manager = new FoundryLocalManager();
Vlastnosti
| Vlastnictví | Typ | Description |
|---|---|---|
| ServiceUri | Uri |
Základní identifikátor URI místní služby Foundry. |
| Koncový bod | Uri |
Koncový bod rozhraní API (ServiceUri + /v1). |
| Klíč API | string |
Klíč rozhraní API (výchozí: "OPENAI_API_KEY"). |
| IsServiceRunning | bool |
Označuje, jestli je služba spuštěná. |
Správa služeb
Spusťte službu
await manager.StartServiceAsync(CancellationToken.None);
Spustí místní službu Foundry, pokud ještě není spuštěná.
Zastavení služby
await manager.StopServiceAsync(CancellationToken.None);
Zastaví službu Foundry Local.
Spuštění a načtení modelu (statický pomocník)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");
Spustí službu a načte zadaný model.
Správa katalogu
Výpis všech modelů katalogu
List<ModelInfo> models = await manager.ListCatalogModelsAsync();
Vrátí všechny dostupné modely v katalogu.
Aktualizace katalogu
manager.RefreshCatalog();
Vymaže katalog uložený v mezipaměti, aby se znovu načte při dalším přístupu.
Získání informací o modelu podle aliasu nebo ID
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");
Vrátí informace o modelu nebo null pokud nebyly nalezeny.
Správa mezipaměti
Získej umístění mezipaměti
string cachePath = await manager.GetCacheLocationAsync();
Vrátí cestu k adresáři, do které se modely ukládají do mezipaměti.
Výpis modelů uložených v mezipaměti
List<ModelInfo> cached = await manager.ListCachedModelsAsync();
Vrátí modely stažené do místní mezipaměti.
Správa modelů
Stažení modelu
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");
Stáhne model do místní mezipaměti.
Stažení modelu s průběžným zobrazením pokroku
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
// progress.Percentage, progress.Status, etc.
}
Streamuje aktualizace průběhu stahování.
Načíst model
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");
Načte model na server odvozování.
Výpis načtených modelů
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();
Zobrazí seznam všech modelů aktuálně načtených ve službě.
Uvolnění modelu
await manager.UnloadModelAsync("aliasOrModelId");
Uvolní model ze serveru odvozování.
Likvidace
Implementuje jak IDisposable, tak IAsyncDisposable pro správné vyčištění.
manager.Dispose();
// or
await manager.DisposeAsync();
Typy modelů
Tato stránka dokumentuje klíčové datové typy používané sadou Foundry Local C# SDK pro popis modelů, stahování a informací o modulu runtime.
PromptTemplate
Představuje příkazovou šablonu pro model.
| Vlastnictví | Typ | Description |
|---|---|---|
| Pomocník | řetězec | Šablona výzvy asistenta. |
| Výzva | řetězec | Šablona výzvy uživatele. |
Runtime
Popisuje běhové prostředí pro model.
| Vlastnictví | Typ | Description |
|---|---|---|
| TypZařízení | DeviceType |
Typ zařízení (procesor, GPU atd.). |
| ExecutionProvider | ExecutionProvider |
Zprostředkovatel spouštění (CUDA, CPU atd.). |
ModelSettings
Představuje parametry specifické pro model.
| Vlastnictví | Typ | Description |
|---|---|---|
| Parametry | List<JsonElement> | Kolekce parametrů modelu |
ModelInfo
Popisuje model v katalogu nebo mezipaměti Foundry Local.
| Vlastnictví | Typ | Description |
|---|---|---|
| Id modelu | řetězec | Jedinečný identifikátor modelu. |
| ZobrazovanéJméno | řetězec | Název modelu čitelný pro člověka |
| ProviderType | řetězec | Typ poskytovatele (např. "CUDA", "CPU"). |
| Uri | řetězec | Stáhněte si URI modelu. |
| Verze | řetězec | Verze modelu |
| TypModelu | řetězec | Typ modelu (např. "llm"). |
| PromptTemplate | PromptTemplate | Šablona promptu pro model. |
| Nakladatel | řetězec | Vydavatel modelu. |
| Úkol | řetězec | Typ úkolu (např. "chat", "dokončení"). |
| Runtime | Runtime | Informace o prostředí modulu runtime |
| Velikost souboru v MB | long | Velikost souboru modelu v MB |
| Nastavení modelu | Nastavení modelu | Nastavení specifická pro model. |
| Alias | řetězec | Alias pro model |
| SupportsToolCalling | Booleova hodnota | Určuje, jestli se podporuje volání nástrojů. |
| Licence | řetězec | Identifikátor licence. |
| Popis licence | řetězec | Popis licence. |
| ParentModelUri | řetězec | Identifikátor URI nadřazeného modelu, pokud existuje. |
ModelDownloadProgress
Představuje průběh operace stahování modelu.
| Vlastnictví | Typ | Description |
|---|---|---|
| Procento | dvojitý | Procento dokončení stahování (0–100) |
| Je dokončeno | Booleova hodnota | Zda je stahování dokončeno. |
| ModelInfo | ModelInfo? | Informace o modelu, pokud se stahování dokončilo. |
| Chybová zpráva | řetězec? | Chybová zpráva, pokud stahování selhalo. |
Statické metody:
-
Progress(double percentage): Vytvořte aktualizaci průběhu. -
Completed(ModelInfo modelInfo): Vytvořte dokončený výsledek pokroku. -
Error(string errorMessage): Vytvoření výsledku chyby
Příklad použití
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();
Referenční informace k sadě Rust SDK
Sada Rust SDK for Foundry Local poskytuje způsob správy modelů, řízení mezipaměti a interakci s místní službou Foundry.
Předpoklady
- Nainstalujte Foundry Local CLI a ujistěte se, že je
foundrypříkaz dostupný na vašemPATHpočítači. - Použijte Rust 1.70.0 nebo novější.
Instalace
Pokud chcete použít sadu Foundry Local Rust SDK, přidejte do své Cargo.tomlaplikace následující:
[dependencies]
foundry-local = "0.1.0"
Alternativně můžete přidat Foundry Local crate pomocí cargo:
cargo add foundry-local@0
Rychlý start
Pomocí tohoto fragmentu kódu ověřte, že sada SDK může spustit službu a přečíst místní katalog.
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(())
}
Tento příklad vytiskne nenulové číslo, když je služba spuštěná a katalog je k dispozici.
Referenční informace:
- lokální dokumentace Foundry
- foundry-lokální dokumentace ke knihovně crate
FoundryLocalManager
Manager pro operace Foundry Local SDK.
Fields
-
service_uri: Option<String>: Identifikátor URI služby Foundry. -
client: Option<HttpClient>: Klient HTTP pro požadavky rozhraní API. -
catalog_list: Option<Vec<FoundryModelInfo>>: Seznam modelů katalogu uložených v mezipaměti. -
catalog_dict: Option<HashMap<String, FoundryModelInfo>>: Uložený slovník modelů katalogu v mezipaměti. -
timeout: Option<u64>: Volitelný časový limit klienta HTTP.
Methods
pub fn builder() -> FoundryLocalManagerBuilder
Vytvořte nový sestavovač proFoundryLocalManager.pub fn service_uri(&self) -> Result<&str>
Získejte identifikátor URI služby.
Návraty: Identifikátor URI služby Foundry.fn client(&self) -> Result<&HttpClient>
Získejte instanci klienta HTTP.
Návraty: Klient HTTP.pub fn endpoint(&self) -> Result<String>
Získejte koncový bod pro službu.
Návraty: Adresa URL koncového bodupub fn api_key(&self) -> String
Získejte klíč rozhraní API pro ověřování.
Návraty: Klíč rozhraní API.pub fn is_service_running(&mut self) -> bool
Zkontrolujte, jestli je služba spuštěná, a nastavte identifikátor URI služby, pokud byl nalezen.
Návraty:truepokud je spuštěno,falsejinak.pub fn start_service(&mut self) -> Result<()>
Spusťte místní službu Foundry.pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
Získejte seznam dostupných modelů v katalogu.pub fn refresh_catalog(&mut self)
Aktualizujte mezipaměť katalogu.pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
Získání informací o modelu podle aliasu nebo ID
argumenty :-
alias_or_model_id: Alias nebo ID modelu. -
raise_on_not_found: Pokud je hodnota true, chyba, pokud nebyla nalezena.
-
pub async fn get_cache_location(&self) -> Result<String>
Získejte umístění mezipaměti jako řetězec.pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Výpis modelů uložených v mezipamětipub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
Stáhněte si model.
argumenty :-
alias_or_model_id: Alias nebo ID modelu. -
token: Volitelný ověřovací token. -
force: Vynuťte opětovné načtení, pokud už je uložená v mezipaměti.
-
pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
Načtení modelu pro odvozování
argumenty :-
alias_or_model_id: Alias nebo ID modelu. -
ttl: Volitelná doba životnosti v sekundách.
-
pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
Uvolnění modelu
argumenty :-
alias_or_model_id: Alias nebo ID modelu. -
force: Vynuťte uvolnění, i když se používá.
-
pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Seznam načtených modelů
FoundryLocalManagerBuilder
Tvůrce pro vytvoření FoundryLocalManager instance
Fields
-
alias_or_model_id: Option<String>— Id aliasu nebo modelu ke stažení a načtení. -
bootstrap: bool— Zda se má služba spustit, pokud není spuštěná. -
timeout_secs: Option<u64>— Časový limit klienta HTTP v sekundách.
Methods
pub fn new() -> Self
Vytvořte novou instanci builderu.pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
Nastavte alias nebo ID modelu pro stažení a načtení.pub fn bootstrap(mut self, bootstrap: bool) -> Self
Nastavte, jestli se má služba spustit, pokud není spuštěná.pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
Nastavte časový limit klienta HTTP v sekundách.pub async fn build(self) -> Result<FoundryLocalManager>
Sestavte instanciFoundryLocalManager.
FoundryModelInfo
Představuje informace o modelu.
Fields
-
alias: String— Alias modelu. -
id: String— ID modelu. -
version: String— Verze modelu. -
runtime: ExecutionProvider— Zprostředkovatel spouštění (CPU, CUDA atd.). -
uri: String— Identifikátor URI modelu. -
file_size_mb: i32— Velikost souboru modelu v MB. -
prompt_template: serde_json::Value— Výzva k zadání šablony modelu. -
provider: String— Název poskytovatele. -
publisher: String— název Publisher. -
license: String— Typ licence. -
task: String— Úloha modelu (například generování textu).
Methods
from_list_response(response: &FoundryListResponseModel) -> Self
Ze zprávy katalogu se vytvoříFoundryModelInfo.to_download_body(&self) -> serde_json::Value
Převede informace o modelu na text JSON pro žádosti o stažení.
ExecutionProvider
Výčet podporovaných zprostředkovatelů spouštění
CPUWebGPUCUDAQNN
Methods
get_alias(&self) -> String
Vrátí řetězcový alias pro poskytovatele spuštění.
ModelRuntime
Popisuje běhové prostředí pro model.
device_type: DeviceTypeexecution_provider: ExecutionProvider