Referenční odkaz na Foundry Local Legacy SDK

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 foundry příkaz dostupný na vašem PATH počí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 foundry příkaz dostupný na vašem PATH počí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 foundry příkaz dostupný na vašem PATH počí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 foundry příkaz dostupný na vašem PATH počí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:

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č pro FoundryLocalManager.

  • 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 bodu

  • pub 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:true pokud je spuštěno, false jinak.

  • 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ěti

  • pub 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 instanci FoundryLocalManager.

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í

  • CPU
  • WebGPU
  • CUDA
  • QNN
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: DeviceType
  • execution_provider: ExecutionProvider