Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Avviso
Questo riferimento si applica alle versioni precedenti di Foundry Local SDK che dipendono dall'interfaccia della riga di comando locale di Foundry per la gestione dei servizi.
Per il nuovo sviluppo, usare il riferimento all'SDK corrente.
La tabella seguente illustra le versioni dell'SDK in cui è presente una dipendenza dall'interfaccia della riga di comando:
| Lingua | Package | Versioni dipendenti dall'interfaccia della riga di comando |
|---|---|---|
| C# | Microsoft. Intelligenza artificiale. Foundry.Local | 0.3.0 e versioni precedenti |
| JavaScript | foundry-local-sdk | 0.5.0 e versioni precedenti |
| Python | foundry-local-sdk | 0.5.1 e versioni precedenti |
| Rust | foundry-local/foundry-local-sdk | 0.x |
Il supporto per le versioni dipendenti dall'interfaccia della riga di comando termina il 31 agosto 2026.
Informazioni di riferimento su Python SDK
Prerequisiti
- Installare l'interfaccia della riga di comando locale di Foundry e assicurarsi che il comando sia disponibile nell'oggetto
foundryPATH. - Usare Python 3.9 o versione successiva.
Installazione
Installare il pacchetto Python:
pip install foundry-local-sdk==0.5.1
Avvio rapido
Usare questo frammento di codice per verificare che l'SDK possa avviare il servizio e raggiungere il catalogo locale.
from foundry_local import FoundryLocalManager
manager = FoundryLocalManager()
manager.start_service()
catalog = manager.list_catalog_models()
print(f"Catalog models available: {len(catalog)}")
In questo esempio viene stampato un numero diverso da zero quando il servizio è in esecuzione e il catalogo è disponibile.
Riferimenti:
Classe FoundryLocalManager
La FoundryLocalManager classe fornisce metodi per gestire modelli, cache e il servizio locale Foundry.
Inizializzazione
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: (facoltativo) Alias o ID modello da scaricare e caricare all'avvio. -
bootstrap: (valore predefinito True) Se True, avvia il servizio se non è in esecuzione e carica il modello, se specificato.
Nota sugli alias
Molti metodi descritti in questo riferimento hanno un alias_or_model_id parametro nella firma. È possibile passare al metodo un alias o un ID modello come valore. L'uso di un alias porterà a:
- Selezionare il modello migliore per l'hardware disponibile. Ad esempio, se è disponibile una GPU Nvidia CUDA, Foundry Local seleziona il modello CUDA. Se è disponibile una NPU supportata, Foundry Local seleziona il modello NPU.
- Consente di usare un nome più breve senza dover ricordare l'ID modello.
Suggerimento
È consigliabile passare al alias_or_model_id parametro un alias perché quando si distribuisce l'applicazione, Foundry Local acquisisce il modello migliore per il computer dell'utente finale in fase di esecuzione.
Annotazioni
Se si dispone di una NPU Intel in Windows, assicurarsi di aver installato il driver Intel NPU per un'accelerazione NPU ottimale.
Gestione dei servizi
| metodo | Signature | Descrizione |
|---|---|---|
is_service_running() |
() -> bool |
Controlla se il servizio locale Foundry è in esecuzione. |
start_service() |
() -> None |
Avvia il servizio Foundry Locale. |
service_uri |
@property -> str |
Restituisce l'URI del servizio. |
endpoint |
@property -> str |
Restituisce l'endpoint del servizio. |
api_key |
@property -> str |
Restituisce la chiave API (da env o default). |
Gestione catalogo
| metodo | Signature | Descrizione |
|---|---|---|
list_catalog_models() |
() -> list[FoundryModelInfo] |
Elenca tutti i modelli disponibili nel catalogo. |
refresh_catalog() |
() -> None |
Aggiorna il catalogo dei modelli. |
get_model_info() |
(alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None |
Ottiene informazioni sul modello in base all'alias o all'ID. |
Gestione cache
| metodo | Signature | Descrizione |
|---|---|---|
get_cache_location() |
() -> str |
Restituisce il percorso della directory della cache del modello. |
list_cached_models() |
() -> list[FoundryModelInfo] |
Elenca i modelli scaricati nella cache locale. |
Gestione modelli
| metodo | Signature | Descrizione |
|---|---|---|
download_model() |
(alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo |
Scarica un modello nella cache locale. |
load_model() |
(alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo |
Carica un modello nel server di inferenza. |
unload_model() |
(alias_or_model_id: str, force: bool = False) -> None |
Scarica un modello dal server di inferenza. |
list_loaded_models() |
() -> list[FoundryModelInfo] |
Elenca tutti i modelli attualmente caricati nel servizio. |
FoundryModelInfo
I metodi list_catalog_models(), list_cached_models()e list_loaded_models() restituiscono un elenco di FoundryModelInfo oggetti . È possibile utilizzare le informazioni contenute in questo oggetto per perfezionare ulteriormente l'elenco. In alternativa, ottenere le informazioni per un modello direttamente chiamando il get_model_info(alias_or_model_id) metodo .
Questi oggetti contengono i campi seguenti:
| Campo | Tipo | Descrizione |
|---|---|---|
alias |
str |
Alias del modello. |
id |
str |
Identificatore univoco del modello. |
version |
str |
Versione del modello. |
execution_provider |
str |
Acceleratore (provider di esecuzione) utilizzato per eseguire il modello. |
device_type |
DeviceType |
Tipo di dispositivo del modello: CPU, GPU, NPU. |
uri |
str |
URI del modello. |
file_size_mb |
int |
Dimensioni del modello su disco in MB. |
supports_tool_calling |
bool |
Indica se il modello supporta la chiamata allo strumento. |
prompt_template |
dict \| None |
Modello di richiesta per il modello. |
provider |
str |
Provider del modello (dove è pubblicato il modello). |
publisher |
str |
Publisher del modello (che ha pubblicato il modello). |
license |
str |
Nome della licenza del modello. |
task |
str |
Attività del modello. Uno tra chat-completions e automatic-speech-recognition. |
ep_override |
str \| None |
Eseguire l'override per il provider di esecuzione, se diverso dall'impostazione predefinita del modello. |
Fornitori di esecuzione
Uno dei seguenti:
-
CPUExecutionProvider- Esecuzione basata sulla CPU -
CUDAExecutionProvider- Esecuzione GPU NVIDIA CUDA -
WebGpuExecutionProvider- Esecuzione di WebGPU -
QNNExecutionProvider- Esecuzione della rete neurale Qualcomm (NPU) -
OpenVINOExecutionProvider- Esecuzione di Intel OpenVINO -
NvTensorRTRTXExecutionProvider- Esecuzione di NVIDIA TensorRT -
VitisAIExecutionProvider- Esecuzione dell'intelligenza artificiale AMD Vitis
Esempio di utilizzo
Il codice seguente illustra come usare la FoundryLocalManager classe per gestire i modelli e interagire con il servizio locale Foundry.
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)
Questo esempio elenca modelli, ne scarica uno, lo carica e poi lo rimuove.
Riferimenti:
Eseguire l'integrazione con OpenAI SDK
Installare il pacchetto OpenAI:
pip install openai
Il codice seguente illustra come integrare FoundryLocalManager con l'SDK di OpenAI per interagire con un modello locale.
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)
Questo esempio trasmette una risposta di completamento della chat dal modello locale.
Riferimenti:
Informazioni di riferimento su JavaScript SDK
Prerequisiti
- Installare l'interfaccia della riga di comando locale di Foundry e assicurarsi che il comando sia disponibile nell'oggetto
foundryPATH.
Installazione
Installare il pacchetto da npm:
npm install foundry-local-sdk@0.5.0
Avvio rapido
Usare questo frammento di codice per verificare che l'SDK possa avviare il servizio e raggiungere il catalogo locale.
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}`);
In questo esempio viene stampato un numero diverso da zero quando il servizio è in esecuzione e il catalogo è disponibile.
Riferimenti:
Classe FoundryLocalManager
La FoundryLocalManager classe consente di gestire modelli, controllare la cache e interagire con il servizio locale Foundry in ambienti browser e Node.js.
Inizializzazione
import { FoundryLocalManager } from "foundry-local-sdk";
const foundryLocalManager = new FoundryLocalManager();
Opzioni disponibili:
-
host: URL di base del servizio locale Foundry -
fetch: (facoltativo) Implementazione di recupero personalizzato per ambienti come Node.js
Nota sugli alias
Molti metodi descritti in questo riferimento hanno un aliasOrModelId parametro nella firma. È possibile passare al metodo un alias o un ID modello come valore. L'uso di un alias porterà a:
- Selezionare il modello migliore per l'hardware disponibile. Ad esempio, se è disponibile una GPU Nvidia CUDA, Foundry Local seleziona il modello CUDA. Se è disponibile una NPU supportata, Foundry Local seleziona il modello NPU.
- Consente di usare un nome più breve senza dover ricordare l'ID modello.
Suggerimento
È consigliabile passare al aliasOrModelId parametro un alias perché quando si distribuisce l'applicazione, Foundry Local acquisisce il modello migliore per il computer dell'utente finale in fase di esecuzione.
Annotazioni
Se si dispone di una NPU Intel in Windows, assicurarsi di aver installato il driver Intel NPU per un'accelerazione NPU ottimale.
Gestione dei servizi
| metodo | Signature | Descrizione |
|---|---|---|
init() |
(aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> |
Inizializza l'SDK e, facoltativamente, carica un modello. |
isServiceRunning() |
() => Promise<boolean> |
Controlla se il servizio locale Foundry è in esecuzione. |
startService() |
() => Promise<void> |
Avvia il servizio Foundry Locale. |
serviceUrl |
string |
URL di base del servizio locale Foundry. |
endpoint |
string |
L'endpoint dell'API (serviceUrl + /v1). |
apiKey |
string |
Chiave API (nessuno). |
Gestione catalogo
| metodo | Signature | Descrizione |
|---|---|---|
listCatalogModels() |
() => Promise<FoundryModelInfo[]> |
Elenca tutti i modelli disponibili nel catalogo. |
refreshCatalog() |
() => Promise<void> |
Aggiorna il catalogo dei modelli. |
getModelInfo() |
(aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> |
Ottiene informazioni sul modello in base all'alias o all'ID. |
Gestione cache
| metodo | Signature | Descrizione |
|---|---|---|
getCacheLocation() |
() => Promise<string> |
Restituisce il percorso della directory della cache del modello. |
listCachedModels() |
() => Promise<FoundryModelInfo[]> |
Elenca i modelli scaricati nella cache locale. |
Gestione modelli
| metodo | Signature | Descrizione |
|---|---|---|
downloadModel() |
(aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> |
Scarica un modello nella cache locale. |
loadModel() |
(aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> |
Carica un modello nel server di inferenza. |
unloadModel() |
(aliasOrModelId: string, force = false) => Promise<void> |
Scarica un modello dal server di inferenza. |
listLoadedModels() |
() => Promise<FoundryModelInfo[]> |
Elenca tutti i modelli attualmente caricati nel servizio. |
Esempio di utilizzo
Il codice seguente illustra come usare la FoundryLocalManager classe per gestire i modelli e interagire con il servizio locale Foundry.
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);
Questo esempio scarica e carica un modello, quindi elenca i modelli memorizzati nella cache e caricati.
Riferimenti:
Integrazione con il client OpenAI
Installare il pacchetto OpenAI:
npm install openai
Il codice seguente illustra come integrare con FoundryLocalManager il client OpenAI per interagire con un modello locale.
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();
Questo esempio trasmette una risposta di completamento della chat dal modello locale.
Riferimenti:
Utilizzo del browser
L'SDK include una versione compatibile con browser in cui è necessario specificare manualmente l'URL host:
import { FoundryLocalManager } from "foundry-local-sdk/browser";
// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry service 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
Annotazioni
La versione del browser non supporta i metodi init, isServiceRunning e startService. È necessario assicurarsi che il servizio locale Foundry sia in esecuzione prima di usare l'SDK in un ambiente browser. È possibile avviare il servizio usando l'interfaccia della riga di comando locale di Foundry: foundry service start. È possibile ottenere l'URL del servizio dall'output dell'interfaccia della riga di comando.
Esempio di utilizzo
import { FoundryLocalManager } from "foundry-local-sdk/browser";
// Specify the service URL
// Run the Foundry Local service using the CLI: `foundry service 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);
Riferimenti:
Informazioni di riferimento su C# SDK
Prerequisiti
- Installare l'interfaccia della riga di comando locale di Foundry e assicurarsi che il comando sia disponibile nell'oggetto
foundryPATH.
Installazione
Per usare Foundry Local C# SDK, è necessario installare il pacchetto NuGet:
dotnet add package Microsoft.AI.Foundry.Local --version 0.3.0
Nota sugli alias
Molti metodi descritti in questo riferimento hanno un aliasOrModelId parametro nella firma. È possibile passare al metodo un alias o un ID modello come valore. L'uso di un alias porterà a:
- Selezionare il modello migliore per l'hardware disponibile. Ad esempio, se è disponibile una GPU Nvidia CUDA, Foundry Local seleziona il modello CUDA. Se è disponibile una NPU supportata, Foundry Local seleziona il modello NPU.
- Consente di usare un nome più breve senza dover ricordare l'ID modello.
Suggerimento
È consigliabile passare al aliasOrModelId parametro un alias perché quando si distribuisce l'applicazione, Foundry Local acquisisce il modello migliore per il computer dell'utente finale in fase di esecuzione.
Annotazioni
Se si dispone di una NPU Intel in Windows, assicurarsi di aver installato il driver Intel NPU per un'accelerazione NPU ottimale.
Enumerazioni
DeviceType
Rappresenta il tipo di dispositivo utilizzato per l'esecuzione del modello.
| Valore | Descrizione |
|---|---|
| CPU (unità centrale di elaborazione) | Dispositivo CPU |
| GPU (Unità di Elaborazione Grafica) | Dispositivo GPU |
| NPU | Dispositivo NPU |
| Non valido | Non valido/sconosciuto |
ExecutionProvider
Rappresenta il provider di esecuzione per l'inferenza sui modelli.
| Valore | Descrizione |
|---|---|
| Non valido | Provider non valido |
| CPUExecutionProvider | Esecuzione della CPU |
| WebGpuExecutionProvider | Esecuzione di GPU Web |
| CUDAExecutionProvider | Esecuzione di GPU CUDA |
| QNNExecutionProvider | Esecuzione di NPU Qualcomm |
| OpenVINOExecutionProvider | Esecuzione di Intel OpenVINO |
| NvTensorRTRTXExecutionProvider | Esecuzione di NVIDIA TensorRT |
| VitisAIExecutionProvider | Esecuzione di Vitis AI di AMD |
Classe FoundryLocalManager
Punto di ingresso principale per la gestione di modelli, cache e servizio locale Foundry.
Costruzione
var manager = new FoundryLocalManager();
Proprietà
| Proprietà | Tipo | Descrizione |
|---|---|---|
| ServiceUri | Uri |
URI di base del servizio locale Foundry. |
| Punto finale | Uri |
L'endpoint dell'API (ServiceUri + /v1). |
| ApiKey | string |
Chiave API (impostazione predefinita: "OPENAI_API_KEY"). |
| IsServiceRunning | bool |
Indica se il servizio è in esecuzione. |
Gestione dei servizi
Avviare il servizio
await manager.StartServiceAsync(CancellationToken.None);
Avvia il servizio locale Foundry se non è già in esecuzione.
Interrompere il servizio
await manager.StopServiceAsync(CancellationToken.None);
Arresta il servizio Foundry Local.
Avviare e caricare un modello (helper statico)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");
Avvia il servizio e carica il modello specificato.
Gestione catalogo
Elencare tutti i modelli di catalogo
List<ModelInfo> models = await manager.ListCatalogModelsAsync();
Restituisce tutti i modelli disponibili nel catalogo.
Aggiornare il catalogo
manager.RefreshCatalog();
Cancella il catalogo memorizzato nella cache in modo che venga ricaricato al successivo accesso.
Ottenere informazioni sul modello in base all'alias o all'ID
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");
Restituisce informazioni sul modello o null se non vengono trovate.
Gestione cache
Ottenere il percorso della cache
string cachePath = await manager.GetCacheLocationAsync();
Restituisce il percorso della directory in cui vengono memorizzati i modelli nella cache.
Elencare i modelli memorizzati nella cache
List<ModelInfo> cached = await manager.ListCachedModelsAsync();
Restituisce i modelli scaricati nella cache locale.
Gestione modelli
Scaricare un modello
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");
Scarica un modello nella cache locale.
Scaricare un modello con lo stato di avanzamento
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
// progress.Percentage, progress.Status, etc.
}
Trasmette aggiornamenti sullo stato del download.
Caricare un modello
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");
Carica un modello nel server di inferenza.
Elencare i modelli caricati
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();
Elenca tutti i modelli attualmente caricati nel servizio.
Scaricare un modello
await manager.UnloadModelAsync("aliasOrModelId");
Scarica un modello dal server di inferenza.
Disposizione
Implementa sia IDisposable che IAsyncDisposable per una pulizia corretta.
manager.Dispose();
// or
await manager.DisposeAsync();
Tipi di modello
Questa pagina documenta i tipi di dati chiave usati da Foundry Local C# SDK per descrivere modelli, download e informazioni di runtime.
PromptTemplate
Rappresenta il modello di richiesta per un modello.
| Proprietà | Tipo | Descrizione |
|---|---|---|
| Assistente | string | Il modello di richiesta dell'assistente. |
| Rapido | string | Modello di richiesta dell'utente. |
Runtime
Descrive l'ambiente di runtime per un modello.
| Proprietà | Tipo | Descrizione |
|---|---|---|
| Tipo di dispositivo | DeviceType |
Tipo di dispositivo (CPU, GPU e così via). |
| Fornitore di Esecuzione | ExecutionProvider |
Fornitore di esecuzione (CUDA, CPU e così via). |
ModelSettings
Rappresenta i parametri specifici del modello.
| Proprietà | Tipo | Descrizione |
|---|---|---|
| Parametri | Lista<JsonElement> | Raccolta di parametri del modello |
ModelInfo
Descrive un modello nel catalogo locale o nella cache Foundry.
| Proprietà | Tipo | Descrizione |
|---|---|---|
| ModelId | string | Identificatore univoco del modello. |
| DisplayName | string | Nome del modello leggibile da un umano. |
| ProviderType | string | Tipo di provider (ad esempio, "CUDA", "CPU"). |
| Uri | string | Scarica l'URI per il modello. |
| Versione | string | Versione del modello. |
| Tipo di Modello | string | Tipo di modello (ad esempio, "llm"). |
| PromptTemplate | PromptTemplate | Modello di richiesta per il modello. |
| Editore | string | Publisher del modello. |
| Attività | string | Tipo di attività (ad esempio, "chat", "completamento"). |
| Runtime | Runtime | Informazioni sull'ambiente di runtime. |
| FileSizeMb | long | Dimensioni del file del modello in MB. |
| Impostazioni del modello | Impostazioni del modello | Impostazioni specifiche del modello. |
| Alias | string | Alias per il modello. |
| SupportsToolCalling | bool | Indica se la chiamata agli strumenti è supportata. |
| Licenza | string | Identificatore di licenza. |
| Descrizione della licenza | string | Descrizione della licenza. |
| ParentModelUri | string | URI del modello padre, se presente. |
ModelDownloadProgress
Rappresenta lo stato di avanzamento di un'operazione di download del modello.
| Proprietà | Tipo | Descrizione |
|---|---|---|
| Percentuale | double | Percentuale di completamento del download (0-100). |
| IsCompleted | bool | Indica se il download è stato completato. |
| ModelInfo | ModelInfo? | Informazioni sul modello se il download è stato completato. |
| messaggio di errore | string? | Messaggio di errore se il download non è riuscito. |
Metodi statici:
-
Progress(double percentage): crea un aggiornamento dello stato di avanzamento. -
Completed(ModelInfo modelInfo): creare un risultato dello stato completato. -
Error(string errorMessage): creare un risultato di errore.
Esempio di utilizzo
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();
Informazioni di riferimento su Rust SDK
Rust SDK per Foundry Local consente di gestire i modelli, controllare la cache e interagire con il servizio locale Foundry.
Prerequisiti
- Installare l'interfaccia della riga di comando locale di Foundry e assicurarsi che il comando sia disponibile nell'oggetto
foundryPATH. - Usare Rust 1.70.0 o versione successiva.
Installazione
Per usare Foundry Local Rust SDK, aggiungere quanto segue a Cargo.toml:
[dependencies]
foundry-local = "0.1.0"
In alternativa, è possibile aggiungere il crate cassa Foundry Local usando cargo:
cargo add foundry-local@0
Avvio rapido
Usare questo frammento di codice per verificare che l'SDK possa avviare il servizio e leggere il catalogo locale.
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(())
}
In questo esempio viene stampato un numero diverso da zero quando il servizio è in esecuzione e il catalogo è disponibile.
Riferimenti:
FoundryLocalManager
Responsabile delle operazioni di Foundry Local SDK.
Fields
-
service_uri: Option<String>: URI del servizio Foundry. -
client: Option<HttpClient>: client HTTP per le richieste API. -
catalog_list: Option<Vec<FoundryModelInfo>>: elenco memorizzato nella cache dei modelli di catalogo. -
catalog_dict: Option<HashMap<String, FoundryModelInfo>>: dizionario memorizzato nella cache dei modelli di catalogo. -
timeout: Option<u64>: timeout client HTTP facoltativo.
Methods
pub fn builder() -> FoundryLocalManagerBuilder
Creare un nuovo generatore perFoundryLocalManager.pub fn service_uri(&self) -> Result<&str>
Ottenere l'URI del servizio.
Restituisce: URI del servizio Foundry.fn client(&self) -> Result<&HttpClient>
Ottenere l'istanza del client HTTP.
Restituisce: client HTTP.pub fn endpoint(&self) -> Result<String>
Ottenere l'endpoint per il servizio.
Restituisce: endpoint URL.pub fn api_key(&self) -> String
Ottenere la chiave API per l'autenticazione.
Restituisce: chiave API.pub fn is_service_running(&mut self) -> bool
Controllare se il servizio è in esecuzione e impostare l'URI del servizio, se trovato.
Restituisce:truese è in esecuzione, altrimentifalse.pub fn start_service(&mut self) -> Result<()>
Avvia il servizio locale Foundry.pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
Ottenere un elenco dei modelli disponibili nel catalogo.pub fn refresh_catalog(&mut self)
Aggiornare la cache del catalogo.pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
Ottenere informazioni sul modello in base all'alias o all'ID.
Argomenti:-
alias_or_model_id: alias o ID modello. -
raise_on_not_found: Se true, errore se non trovato.
-
pub async fn get_cache_location(&self) -> Result<String>
Ottieni il percorso della cache come stringa.pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Elencare i modelli memorizzati nella cache.pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
Scaricare un modello.
Argomenti:-
alias_or_model_id: alias o ID modello. -
token: token di autenticazione facoltativo. -
force: forzare il download se già memorizzato nella cache.
-
pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
Caricare un modello per l'inferenza.
Argomenti:-
alias_or_model_id: alias o ID modello. -
ttl: time-to-live opzionale in secondi.
-
pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
Scaricare un modello.
Argomenti:-
alias_or_model_id: alias o ID modello. -
force: forza lo scaricamento anche se in uso.
-
pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Elencare i modelli caricati.
FoundryLocalManagerBuilder
Generatore per la creazione di un'istanza FoundryLocalManager.
Fields
-
alias_or_model_id: Option<String>— Alias o ID del modello da scaricare e caricare. -
bootstrap: bool— Indica se avviare il servizio se non è in esecuzione. -
timeout_secs: Option<u64>— Timeout del client HTTP in secondi.
Methods
pub fn new() -> Self
Creare una nuova istanza di generatore.pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
Impostare l'alias o l'ID modello per il download e il caricamento.pub fn bootstrap(mut self, bootstrap: bool) -> Self
Imposta se avviare il servizio quando non è in esecuzione.pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
Impostare un timeout del client HTTP in secondi.pub async fn build(self) -> Result<FoundryLocalManager>
Creare l'istanzaFoundryLocalManager.
FoundryModelInfo
Rappresenta informazioni su un modello.
Fields
-
alias: String— L'alias del modello. -
id: String— ID modello. -
version: String— La versione del modello. -
runtime: ExecutionProvider— Il provider di esecuzione (CPU, CUDA e così via). -
uri: String— URI del modello. -
file_size_mb: i32— Dimensioni del file del modello in MB. -
prompt_template: serde_json::Value— Richiedi modello per il modello. -
provider: String— Nome del provider. -
publisher: String: nome Publisher. -
license: String— Tipo di licenza. -
task: String— Attività modello (ad esempio, generazione di testo).
Methods
from_list_response(response: &FoundryListResponseModel) -> Self
Crea un oggettoFoundryModelInfoda una risposta del catalogo.to_download_body(&self) -> serde_json::Value
Converte le informazioni sul modello in un corpo JSON per le richieste di download.
ExecutionProvider
Enumerazione per i provider di esecuzione supportati.
CPUWebGPUCUDAQNN
Methods
get_alias(&self) -> String
Restituisce un alias stringa per il provider di esecuzione.
ModelRuntime
Descrive l'ambiente di runtime per un modello.
device_type: DeviceTypeexecution_provider: ExecutionProvider