Foundry Local Legacy SDK-referencia

Figyelmeztetés

Ez a hivatkozás az Öntödei helyi SDK korábbi verzióira vonatkozik, amelyek a szolgáltatásfelügyeleti Foundry helyi parancssori felületétől függnek.

Új fejlesztéshez használja az aktuális SDK-referenciát.

Az alábbi táblázat azokat az SDK-verziókat mutatja be, ahol függőség volt a parancssori felülettel kapcsolatban:

Nyelv Szoftvercsomag PARANCSSOR-függő verziók
C# Microsoft. AI. Foundry.Local 0.3.0 és korábbi verziók
JavaScript foundry-local-sdk 0.5.0 és korábbi verziók
Python foundry-local-sdk 0.5.1 és korábbi verziók
Rust foundry-local / foundry-local-sdk 0.x

A CLI-függő verziók támogatása 2026. augusztus 31-ig tart.

Python SDK-referencia

Előfeltételek

  • Telepítse az Foundry helyi parancssori felületét, és győződjön meg arról, hogy a foundry parancs elérhető az Ön PATHszámítógépén.
  • Használja a Python 3.9-et vagy újabb verziót.

Installation

Telepítse a Python csomagot:

pip install foundry-local-sdk==0.5.1

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK elindíthatja-e a szolgáltatást, és elérheti-e a helyi katalógust.

from foundry_local import FoundryLocalManager

manager = FoundryLocalManager()
manager.start_service()

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

Ez a példa nem nulla számot nyomtat, amikor a szolgáltatás fut, és a katalógus elérhető.

Referenciák:

FoundryLocalManager osztály

Az FoundryLocalManager osztály metódusokat biztosít a modellek, a gyorsítótár és az Foundry Local szolgáltatás kezeléséhez.

Inicializálás

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: (nem kötelező) Alias vagy modellazonosító, amelyet indításkor tölthet le és betölthet.
  • bootstrap: (alapértelmezett értéke: igaz) Ha igaz, elindítja a szolgáltatást, ha nem fut, és betölti a megadott modellt, ha van ilyen.

Megjegyzés az aliasokról

Az ebben a hivatkozásban ismertetett számos metódus rendelkezik egy alias_or_model_id paramétersel az aláírásban. A metódusba megadhat egy aliast vagy egy modellazonosítót értékként. Alias használata esetén:

  • Válassza ki az elérhető hardver legjobb modelljét . Ha például egy Nvidia CUDA GPU elérhető, a Foundry Local kiválasztja a CUDA-modellt. Ha támogatott NPU érhető el, a Foundry Local kiválasztja az NPU-modellt.
  • Lehetővé teszi, hogy rövidebb nevet használjon anélkül, hogy emlékeznie kellene a modellazonosítóra.

Jótanács

Javasoljuk, hogy adjon át egy alias_or_model_id a paraméternek, mert az alkalmazás üzembe helyezésekor a Foundry Local futásidőben szerzi be a legjobb modellt a végfelhasználó gépéhez.

Megjegyzés:

Ha Intel NPU van a Windows, győződjön meg arról, hogy telepítette a Intel NPU-illesztőt az optimális NPU-gyorsításhoz.

Szolgáltatáskezelés

Módszer Signature Leírás
is_service_running() () -> bool Ellenőrzi, hogy az Foundry Local szolgáltatás fut-e.
start_service() () -> None Elindítja az Foundry Local szolgáltatást.
service_uri @property -> str A szolgáltatás URI-jának visszaadása.
endpoint @property -> str A szolgáltatásvégpontot adja vissza.
api_key @property -> str Az API-kulcsot adja vissza (az env vagy az alapértelmezett érték alapján).

Katalóguskezelés

Módszer Signature Leírás
list_catalog_models() () -> list[FoundryModelInfo] A katalógusban elérhető összes modell listája.
refresh_catalog() () -> None Frissíti a modellkatalógust.
get_model_info() (alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None Modellinformációk lekérdezése alias vagy azonosító alapján.

Gyorsítótár-kezelés

Módszer Signature Leírás
get_cache_location() () -> str Visszaadja a modell cache könyvtár elérési útját.
list_cached_models() () -> list[FoundryModelInfo] A helyi gyorsítótárba letöltött modellek listája.

modellkezelés

Módszer Signature Leírás
download_model() (alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo Letölt egy modellt a helyi gyorsítótárba.
load_model() (alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo Betölt egy modellt a következtetési kiszolgálóba.
unload_model() (alias_or_model_id: str, force: bool = False) -> None Eltávolít egy modellt a következtetési kiszolgálóról.
list_loaded_models() () -> list[FoundryModelInfo] Felsorolja a szolgáltatásban jelenleg betöltött összes modellt.

FoundryModelInfo

A metódusok list_catalog_models(), list_cached_models() és list_loaded_models() egy FoundryModelInfo objektumlistát adnak vissza. Az objektumban található információk segítségével tovább finomíthatja a listát. Vagy közvetlenül a metódus meghívásával lekérheti a get_model_info(alias_or_model_id) modell adatait.

Ezek az objektumok a következő mezőket tartalmazzák:

szakterület Típus Leírás
alias str A modell aliasa.
id str A modell egyedi azonosítója.
version str A modell verziója.
execution_provider str A modell futtatásához használt gyorsító (végrehajtási szolgáltató).
device_type DeviceType A modell eszköztípusa: CPU, GPU, NPU.
uri str A modell URI-ja.
file_size_mb int A modell mérete a lemezen MB-ban.
supports_tool_calling bool Azt jelzi, hogy a modell támogatja-e az eszközhívást.
prompt_template dict \| None Sablon kérése a modellhez.
provider str A modell szolgáltatója (ahol a modell közzé van téve).
publisher str Publisher a modellről (aki közzétette a modellt).
license str A modell licencének neve.
task str A modell feladata. Az egyik chat-completions vagy automatic-speech-recognition.
ep_override str \| None Felülbírálás a végrehajtási szolgáltatónál, ha eltér a modell alapértelmezett értékétől.

Végrehajtási szolgáltatók

Az alábbiak egyike:

  • CPUExecutionProvider - CPU-alapú végrehajtás
  • CUDAExecutionProvider - NVIDIA CUDA GPU végrehajtása
  • WebGpuExecutionProvider - WebGPU végrehajtása
  • QNNExecutionProvider - Qualcomm neurális hálózati végrehajtás (NPU)
  • OpenVINOExecutionProvider - Intel OpenVINO végrehajtása
  • NvTensorRTRTXExecutionProvider - NVIDIA TensorRT végrehajtása
  • VitisAIExecutionProvider - AMD Vitis AI-végrehajtás

Használati példa

Az alábbi kód bemutatja, hogyan használhatja az osztályt modellek FoundryLocalManager kezelésére és az Foundry Local szolgáltatással való interakcióra.

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)

Ez a példa felsorolja a modelleket, letölt és betölt egy modellt, majd eltávolítja azt.

Referenciák:

Integrálás az OpenAI SDK-val

Telepítse az OpenAI-csomagot:

pip install openai

Az alábbi kód bemutatja, hogyan integrálható az FoundryLocalManager OpenAI SDK-val egy helyi modellel való interakcióhoz.

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)

Ez a példa egy csevegés befejezésére adott választ streamel a helyi modellből.

Referenciák:

JavaScript SDK-referencia

Előfeltételek

  • Telepítse az Foundry helyi parancssori felületét, és győződjön meg arról, hogy a foundry parancs elérhető az Ön PATHszámítógépén.

Installation

Telepítse a csomagot az npm-ből:

npm install foundry-local-sdk@0.5.0

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK elindíthatja-e a szolgáltatást, és elérheti-e a helyi katalógust.

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

Ez a példa nem nulla számot nyomtat, amikor a szolgáltatás fut, és a katalógus elérhető.

Referenciák:

FoundryLocalManager osztály

Az FoundryLocalManager osztály lehetővé teszi a modellek kezelését, a gyorsítótár vezérlését és az Foundry Local szolgáltatással való interakciót böngészőben és Node.js környezetekben.

Inicializálás

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

const foundryLocalManager = new FoundryLocalManager();

Elérhető lehetőségek:

  • host: Az Foundry Helyi szolgáltatás alap URL-címe
  • fetch: (nem kötelező) Egyéni lekéréses implementáció olyan környezetekhez, mint a Node.js

Megjegyzés az aliasokról

Az ebben a hivatkozásban ismertetett számos metódus rendelkezik egy aliasOrModelId paramétersel az aláírásban. A metódusba megadhat egy aliast vagy egy modellazonosítót értékként. Alias használata esetén:

  • Válassza ki az elérhető hardver legjobb modelljét . Ha például egy Nvidia CUDA GPU elérhető, a Foundry Local kiválasztja a CUDA-modellt. Ha támogatott NPU érhető el, a Foundry Local kiválasztja az NPU-modellt.
  • Lehetővé teszi, hogy rövidebb nevet használjon anélkül, hogy emlékeznie kellene a modellazonosítóra.

Jótanács

Javasoljuk, hogy adjon át egy aliasOrModelId a paraméternek, mert az alkalmazás üzembe helyezésekor a Foundry Local futásidőben szerzi be a legjobb modellt a végfelhasználó gépéhez.

Megjegyzés:

Ha Intel NPU van a Windows, győződjön meg arról, hogy telepítette a Intel NPU-illesztőt az optimális NPU-gyorsításhoz.

Szolgáltatáskezelés

Módszer Signature Leírás
init() (aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> Inicializálja az SDK-t, és opcionálisan betölt egy modellt.
isServiceRunning() () => Promise<boolean> Ellenőrzi, hogy az Foundry Local szolgáltatás fut-e.
startService() () => Promise<void> Elindítja az Foundry Local szolgáltatást.
serviceUrl string Az Foundry Local szolgáltatás alap URL-címe.
endpoint string Az API-végpont (serviceUrl + /v1).
apiKey string Az API-kulcs (nincs).

Katalóguskezelés

Módszer Signature Leírás
listCatalogModels() () => Promise<FoundryModelInfo[]> A katalógusban elérhető összes modell listája.
refreshCatalog() () => Promise<void> Frissíti a modellkatalógust.
getModelInfo() (aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> Modellinformációk lekérdezése alias vagy azonosító alapján.

Gyorsítótár-kezelés

Módszer Signature Leírás
getCacheLocation() () => Promise<string> Visszaadja a modell cache könyvtár elérési útját.
listCachedModels() () => Promise<FoundryModelInfo[]> A helyi gyorsítótárba letöltött modellek listája.

modellkezelés

Módszer Signature Leírás
downloadModel() (aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> Letölt egy modellt a helyi gyorsítótárba.
loadModel() (aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> Betölt egy modellt a következtetési kiszolgálóba.
unloadModel() (aliasOrModelId: string, force = false) => Promise<void> Eltávolít egy modellt a következtetési kiszolgálóról.
listLoadedModels() () => Promise<FoundryModelInfo[]> Felsorolja a szolgáltatásban jelenleg betöltött összes modellt.

Használati példa

Az alábbi kód bemutatja, hogyan használhatja az osztályt modellek FoundryLocalManager kezelésére és az Foundry Local szolgáltatással való interakcióra.

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

Ez a példa letölt és betölt egy modellt, majd felsorolja a gyorsítótárazott és betöltött modelleket.

Referenciák:

Integráció az OpenAI-ügyféllel

Telepítse az OpenAI-csomagot:

npm install openai

Az alábbi kód bemutatja, hogyan integrálható az FoundryLocalManager OpenAI-ügyféllel a helyi modellel való interakcióhoz.

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

Ez a példa egy csevegés befejezésére adott választ streamel a helyi modellből.

Referenciák:

Böngészőhasználat

Az SDK tartalmaz egy böngészőkompatibilis verziót, amelyben manuálisan kell megadnia a hoszt URL-jét.

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

Megjegyzés:

A böngésző verziója nem támogatja a , inités isServiceRunning metódusokatstartService. Az SDK böngészőkörnyezetben való használata előtt győződjön meg arról, hogy az Foundry Local szolgáltatás fut. A szolgáltatást a Foundry helyi parancssori felületével indíthatja el: foundry server start. A szolgáltatás URL-címét a parancssori felület kimenetéből adhatja meg.

Használati példa

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

Referenciák:

C# SDK-referencia

Előfeltételek

  • Telepítse az Foundry helyi parancssori felületét, és győződjön meg arról, hogy a foundry parancs elérhető az Ön PATHszámítógépén.

Installation

A Foundry Local C# SDK használatához telepítenie kell a NuGet-csomagot:

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

Megjegyzés az aliasokról

Az ebben a hivatkozásban ismertetett számos metódus rendelkezik egy aliasOrModelId paramétersel az aláírásban. A metódusba megadhat egy aliast vagy egy modellazonosítót értékként. Alias használata esetén:

  • Válassza ki az elérhető hardver legjobb modelljét . Ha például egy Nvidia CUDA GPU elérhető, a Foundry Local kiválasztja a CUDA-modellt. Ha támogatott NPU érhető el, a Foundry Local kiválasztja az NPU-modellt.
  • Lehetővé teszi, hogy rövidebb nevet használjon anélkül, hogy emlékeznie kellene a modellazonosítóra.

Jótanács

Javasoljuk, hogy adjon át egy aliasOrModelId a paraméternek, mert az alkalmazás üzembe helyezésekor a Foundry Local futásidőben szerzi be a legjobb modellt a végfelhasználó gépéhez.

Megjegyzés:

Ha Intel NPU van a Windows, győződjön meg arról, hogy telepítette a Intel NPU-illesztőt az optimális NPU-gyorsításhoz.

Számbavételek

DeviceType

A modell végrehajtásához használt eszköz típusát jelöli.

Érték Leírás
CPU CPU-eszköz
GPU GPU-eszköz
NPU NPU-eszköz
Érvénytelen Érvénytelen/ismeretlen

ExecutionProvider

A modellkövetkeztetés végrehajtási szolgáltatójának felel meg.

Érték Leírás
Érvénytelen Érvénytelen szolgáltató
CPU végrehajtó szolgáltató Központi feldolgozó egység végrehajtása
WebGpuExecutionProvider WebGPU végrehajtása
CUDA-végrehajtási szolgáltató CUDA GPU futtatás
QNNExecutionProvider Qualcomm NPU feladatvégrehajtása
OpenVINOExecutionProvider Intel OpenVINO-végrehajtás
NvTensorRTRTXExecutionProvider NVIDIA TensorRT-végrehajtás
VitisAIExecutionProvider AMD Vitis AI-végrehajtás

FoundryLocalManager osztály

A modellek, a gyorsítótár és a Foundry Local szolgáltatás kezelésének fő belépési pontja.

Építés

var manager = new FoundryLocalManager();

Tulajdonságok

Ingatlan Típus Leírás
ServiceUri Uri Az Foundry Local szolgáltatás alap URI-ja.
Végpont Uri Az API-végpont (ServiceUri + /v1).
ApiKey (API kulcs) string Az API-kulcs (alapértelmezett: "OPENAI_API_KEY").
IsServiceRunning bool Azt jelzi, hogy a szolgáltatás fut-e.

Szolgáltatáskezelés

A szolgáltatás indítása
await manager.StartServiceAsync(CancellationToken.None);

Elindítja az Foundry Local szolgáltatást, ha még nem fut.

A szolgáltatás leállítása
await manager.StopServiceAsync(CancellationToken.None);

Leállítja az Foundry Local szolgáltatást.

Modell indítása és betöltése (statikus segéd)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");

Elindítja a szolgáltatást, és betölti a megadott modellt.

Katalóguskezelés

Az összes katalógusmodell listázása
List<ModelInfo> models = await manager.ListCatalogModelsAsync();

A katalógusban elérhető összes modellt visszaadja.

A katalógus frissítése
manager.RefreshCatalog();

Törli a gyorsítótárazott katalógust, hogy az a következő hozzáféréskor újratöltődjön.

Modelladatok lekérése alias vagy azonosító alapján
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");

Modelladatokat ad vissza, vagy null ha nem található.

Gyorsítótár-kezelés

Gyorsítótár helyének lekérése
string cachePath = await manager.GetCacheLocationAsync();

A modellek gyorsítótárazási elérési útját adja vissza.

Gyorsítótárazott modellek listázása
List<ModelInfo> cached = await manager.ListCachedModelsAsync();

A helyi gyorsítótárba letöltött modelleket adja vissza.

modellkezelés

Modell letöltése
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");

Letölt egy modellt a helyi gyorsítótárba.

Töltsön le egy modellt a letöltési folyamat nyomon követésével
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
    // progress.Percentage, progress.Status, etc.
}

A streamek letöltik az állapotfrissítéseket.

Modell betöltése
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");

Betölt egy modellt a következtetési kiszolgálóba.

Betöltött modellek listázása
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();

Felsorolja a szolgáltatásban jelenleg betöltött összes modellt.

Modell betöltésének megszüntetése
await manager.UnloadModelAsync("aliasOrModelId");

Eltávolít egy modellt a következtetési kiszolgálóról.

Megszabadulás

Megvalósítja a IDisposable és IAsyncDisposable funkciókat a megfelelő tisztítás érdekében.

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

Modelltípusok

Ez a lap a Foundry Local C# SDK által a modellek, letöltések és futásidejű információk leírásához használt főbb adattípusokat ismerteti.

PromptTemplate

A modell parancssori sablonja.

Ingatlan Típus Leírás
Asszisztens karakterlánc Az asszisztens parancssori sablonja.
Haladéktalan karakterlánc A felhasználói kérés sablonja.

Runtime

A modell futtatókörnyezetét ismerteti.

Ingatlan Típus Leírás
Eszköztípus DeviceType Az eszköz típusa (CPU, GPU stb.).
Végrehajtásszolgáltató ExecutionProvider A végrehajtási szolgáltató (CUDA, CPU stb.).

ModelSettings

Modellspecifikus paramétereket jelöl.

Ingatlan Típus Leírás
Paraméterek Lista<JsonElement> Modellparaméter-gyűjtemény

ModelInfo

Az Foundry Local katalógusában vagy gyorsítótárában található modellt ismerteti.

Ingatlan Típus Leírás
ModelId karakterlánc Egyedi modellazonosító.
Megjelenítendő név karakterlánc Ember által olvasható modell neve.
ProviderType karakterlánc Szolgáltató típusa (pl. "CUDA", "CPU").
Uri karakterlánc Töltse le az URI-t a modellhez.
Verzió karakterlánc Modellverzió.
ModellTípus karakterlánc Modell típusa (pl. "llm").
PromptTemplate PromptTemplate Sablon kérése a modellhez.
Kiadó karakterlánc A modell Publisher.
tevékenység karakterlánc Feladat típusa (pl. "csevegés", "befejezés").
Runtime Runtime Futtatókörnyezet adatai.
FájlméretMB hosszú Modellfájl mérete MB-ban.
Modellbeállítások Modellbeállítások Modellspecifikus beállítások.
Alias karakterlánc A modellhez tartozó alias.
Eszközhívás támogatása bool Támogatja-e az eszközhívást.
Licenc karakterlánc Licencazonosító.
Licencleírás karakterlánc Licenc leírása.
ParentModelUri karakterlánc A szülőmodell URI-ja, ha van ilyen.

ModelDownloadProgress

A modellletöltési művelet előrehaladását jelzi.

Ingatlan Típus Leírás
Százalék dupla Letöltési készültségi százalék (0-100).
BefejezveVan bool Hogy a letöltés befejeződött-e.
ModellInfo ModelInfo? Modelladatok, ha a letöltés befejeződött.
Hibaüzenet karakterlánc? Hibaüzenet, ha a letöltés sikertelen volt.

Statikus metódusok:

  • Progress(double percentage): Folyamatfrissítés létrehozása.
  • Completed(ModelInfo modelInfo): Befejezett folyamat eredményének létrehozása.
  • Error(string errorMessage): Hozzon létre egy hibaeredményt.

Használati példa

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-referencia

A Rust SDK for Foundry Local lehetővé teszi a modellek kezelését, a gyorsítótár vezérlését és az Foundry Local szolgáltatással való interakciót.

Előfeltételek

  • Telepítse az Foundry helyi parancssori felületét, és győződjön meg arról, hogy a foundry parancs elérhető az Ön PATHszámítógépén.
  • Használja a Rust 1.70.0-s vagy újabb verzióját.

Installation

A Foundry Local Rust SDK használatához adja hozzá a következőket a megfelelő helyre: Cargo.toml.

[dependencies]
foundry-local = "0.1.0"

Másik lehetőségként hozzáadhatja a Foundry Local ládát a következővel cargo:

cargo add foundry-local@0

gyorskonfigurálás

Ezzel a kódrészletel ellenőrizheti, hogy az SDK elindíthatja-e a szolgáltatást, és elolvashatja-e a helyi katalógust.

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

Ez a példa nemzero számot nyomtat, amikor a szolgáltatás fut, és a katalógus elérhető.

Referenciák:

FoundryLocalManager

A Foundry helyi SDK-műveleteinek kezelője.

Fields

  • service_uri: Option<String>: Az Foundry szolgáltatás URI-ja.
  • client: Option<HttpClient>: HTTP-ügyfél API-kérésekhez.
  • catalog_list: Option<Vec<FoundryModelInfo>>: A katalógusmodellek gyorsítótárazott listája.
  • catalog_dict: Option<HashMap<String, FoundryModelInfo>>: Katalógusmodellek gyorsítótárazott szótára.
  • timeout: Option<u64>: Nem kötelező HTTP-ügyfél időtúllépése.

Metódusok

  • pub fn builder() -> FoundryLocalManagerBuilder
    Hozzon létre egy új szerkesztőt a következőhöz FoundryLocalManager: .

  • pub fn service_uri(&self) -> Result<&str>
    A szolgáltatás URI-jának lekérése.
    Visszatér: A Foundry szolgáltatás URI-ja.

  • fn client(&self) -> Result<&HttpClient>
    Szerezze be az HTTP-ügyfélpéldányt.
    Visszatér: HTTP-ügyfél.

  • pub fn endpoint(&self) -> Result<String>
    Szerezze meg a szolgáltatás végpontját.
    Visszatérés: Az végpont URL-címe.

  • pub fn api_key(&self) -> String
    Kérje le az API-kulcsot a hitelesítéshez.
    Visszatér: API-kulcs.

  • pub fn is_service_running(&mut self) -> bool
    Ellenőrizze, hogy fut-e a szolgáltatás, és ha megtalálta, állítsa be a szolgáltatás URI-jának beállítását.
    Visszatér:true ha fut, false ellenkező esetben.

  • pub fn start_service(&mut self) -> Result<()>
    Indítsa el az Foundry Local szolgáltatást.

  • pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
    Szerezze be a katalógusban elérhető modellek listáját.

  • pub fn refresh_catalog(&mut self)
    Frissítse a katalógus gyorsítótárát.

  • pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
    Modelladatok lekérése alias vagy azonosító alapján.
    Argumentumok:

    • alias_or_model_id: Aliaszként vagy modellazonosítóként.
    • raise_on_not_found: Ha igaz, hibát jelez, ha nem található.
  • pub async fn get_cache_location(&self) -> Result<String>
    A gyorsítótár helyének lekérése karakterláncként.

  • pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    Gyorsítótárazott modellek listázása.

  • pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
    Töltse le a modellt.
    Argumentumok:

    • alias_or_model_id: Aliaszként vagy modellazonosítóként.
    • token: Opcionális hitelesítési token.
    • force: Ha már gyorsítótárazott, kényszerítse az újraletöltést.
  • pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
    Töltsön be egy modellt következtetésként.
    Argumentumok:

    • alias_or_model_id: Aliaszként vagy modellazonosítóként.
    • ttl: Választható élettartam másodpercben.
  • pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
    Modell betöltésének eltávolítása.
    Argumentumok:

    • alias_or_model_id: Aliaszként vagy modellazonosítóként.
    • force: Akkor is kényszerítse a kiürítéseket, ha használatban van.
  • pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    Betöltött modellek listázása.

FoundryLocalManagerBuilder

FoundryLocalManager példány létrehozására szolgáló Builder.

Fields

  • alias_or_model_id: Option<String> — Alias vagy modellazonosító a letöltéshez és a betöltéshez.
  • bootstrap: bool — Hogy elinduljon-e a szolgáltatás, ha nem fut.
  • timeout_secs: Option<u64> – HTTP-kliens időtúllépése másodpercekben.

Metódusok

  • pub fn new() -> Self
    Hozzon létre egy új szerkesztőpéldányt.

  • pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
    Állítsa be az aliast vagy a modellazonosítót letöltésre és betöltésre.

  • pub fn bootstrap(mut self, bootstrap: bool) -> Self
    Adja meg, hogy elindítsa-e a szolgáltatást, ha nem fut.

  • pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
    Állítsa be a HTTP-ügyfél időtúllépését másodpercekben.

  • pub async fn build(self) -> Result<FoundryLocalManager>
    Építse fel a FoundryLocalManager példányt.

FoundryModelInfo

Egy modellről szóló információkat tartalmaz.

Fields

  • alias: String – A modell aliasa.
  • id: String – A modell azonosítója.
  • version: String – Modell verzió.
  • runtime: ExecutionProvider — A végrehajtási szolgáltató (CPU, CUDA stb.).
  • uri: String – A modell URI-ja.
  • file_size_mb: i32 — Modellfájl mérete MB-ban.
  • prompt_template: serde_json::Value — A modell sablonjának kérése.
  • provider: String — Szolgáltató neve.
  • publisher: String – Publisher név.
  • license: String — Licenc típusa.
  • task: String — Modellfeladat (például szöveggenerálás).

Metódusok

  • from_list_response(response: &FoundryListResponseModel) -> Self
    Egy FoundryModelInfo-t hoz létre egy katalógusválaszból.

  • to_download_body(&self) -> serde_json::Value
    A modell adatait JSON-törzsgé alakítja a letöltési kérelmekhez.

ExecutionProvider

A támogatott végrehajtási szolgáltatók felsorolása.

  • CPU
  • WebGPU
  • CUDA
  • QNN
Metódusok
  • get_alias(&self) -> String
    A végrehajtási szolgáltató sztring aliasát adja vissza.

ModelRuntime

A modell futtatókörnyezetét ismerteti.

  • device_type: DeviceType
  • execution_provider: ExecutionProvider