Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Advertência
Esta referência aplica-se a versões anteriores do Foundry Local SDK que dependem da CLI Foundry Local para gestão de serviços.
Para novos desenvolvimentos, use a referência atual do SDK.
A tabela seguinte mostra as versões do SDK onde havia dependência da CLI:
| Linguagem | Package | Versões dependentes da CLI |
|---|---|---|
| C# | Microsoft. IA. Foundry.Local | 0.3.0 e anteriores |
| JavaScript | Foundry-local-SDK | 0.5.0 e anteriores |
| Python | Foundry-local-SDK | 0.5.1 e anteriores |
| Ferrugem | Fundição-local / Fundição-local-SDK | 0.x |
O suporte para versões dependentes de CLI termina a 31 de agosto de 2026.
Referência do SDK Python
Pré-requisitos
- Instale a CLI local do Foundry e certifique-se de que o
foundrycomando está disponível no seuPATHarquivo . - Usa Python 3.9 ou posterior.
Instalação
Instale o pacote Python:
pip install foundry-local-sdk==0.5.1
Início Rápido
Use este excerto para verificar se o SDK pode iniciar o serviço e aceder ao catálogo local.
from foundry_local import FoundryLocalManager
manager = FoundryLocalManager()
manager.start_service()
catalog = manager.list_catalog_models()
print(f"Catalog models available: {len(catalog)}")
Este exemplo imprime um número diferente de zero quando o serviço está em execução e o catálogo está disponível.
Referências:
Classe FoundryLocalManager
A FoundryLocalManager classe fornece métodos para gerenciar modelos, cache e o serviço Foundry Local.
Inicialização
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: (opcional) Alias ou ID do modelo para baixar e carregar na inicialização. -
bootstrap: (padrão True) Se True, inicia o serviço se não estiver em execução e carrega o modelo, se fornecido.
Uma nota sobre pseudónimos
Muitos métodos descritos nesta referência têm um alias_or_model_id parâmetro na assinatura. Você pode passar para o método um alias ou ID de modelo como um valor. O uso de um alias irá:
- Selecione o melhor modelo para o hardware disponível. Por exemplo, se uma GPU Nvidia CUDA estiver disponível, o Foundry Local selecionará o modelo CUDA. Se uma NPU suportada estiver disponível, o Foundry Local selecionará o modelo de NPU.
- Permitir que você use um nome mais curto sem precisar lembrar o ID do modelo.
Sugestão
Recomendamos passar para o alias_or_model_id parâmetro um alias porque quando você implanta seu aplicativo, o Foundry Local adquire o melhor modelo para a máquina do usuário final em tempo de execução.
Observação
Se tiver uma NPU Intel na Windows, certifique-se de que instalou o driver NPU Intel para uma aceleração NPU ótima.
Gestão de Serviços
| Método | Signature | Descrição |
|---|---|---|
is_service_running() |
() -> bool |
Verifica se o serviço Foundry Local está em execução. |
start_service() |
() -> None |
Inicia o serviço Foundry Local. |
service_uri |
@property -> str |
Retorna o URI do serviço. |
endpoint |
@property -> str |
Retorna o ponto de extremidade do serviço. |
api_key |
@property -> str |
Retorna a chave da API (de env ou padrão). |
Gestão de Catálogos
| Método | Signature | Descrição |
|---|---|---|
list_catalog_models() |
() -> list[FoundryModelInfo] |
Lista todos os modelos disponíveis no catálogo. |
refresh_catalog() |
() -> None |
Atualiza o catálogo de modelos. |
get_model_info() |
(alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None |
Obtém informações do modelo por alias ou ID. |
Gerenciamento de cache
| Método | Signature | Descrição |
|---|---|---|
get_cache_location() |
() -> str |
Retorna o caminho do diretório de cache do modelo. |
list_cached_models() |
() -> list[FoundryModelInfo] |
Lista os modelos baixados para o cache local. |
Gestão de Modelos
| Método | Signature | Descrição |
|---|---|---|
download_model() |
(alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo |
Baixa um modelo para o cache local. |
load_model() |
(alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo |
Carrega um modelo no servidor de inferência. |
unload_model() |
(alias_or_model_id: str, force: bool = False) -> None |
Descarrega um modelo do servidor de inferência. |
list_loaded_models() |
() -> list[FoundryModelInfo] |
Lista todos os modelos atualmente carregados no serviço. |
FoundryModelInfo
Os métodos list_catalog_models(), , e list_cached_models() retornam uma lista de list_loaded_models() objetosFoundryModelInfo. Pode usar a informação contida neste objeto para refinar ainda mais a lista. Ou obter a informação de um modelo diretamente chamando o get_model_info(alias_or_model_id) método.
Estes objetos contêm os seguintes campos:
| Campo | Tipo | Descrição |
|---|---|---|
alias |
str |
Pseudónimo do modelo. |
id |
str |
Identificador exclusivo do modelo. |
version |
str |
Versão do modelo. |
execution_provider |
str |
O acelerador (fornecedor de execução) era usado para executar o modelo. |
device_type |
DeviceType |
Tipo de dispositivo do modelo: CPU, GPU, NPU. |
uri |
str |
URI do modelo. |
file_size_mb |
int |
Tamanho do modelo no disco em MB. |
supports_tool_calling |
bool |
Se o modelo permite chamadas de ferramentas. |
prompt_template |
dict \| None |
Modelo de prompt para o modelo. |
provider |
str |
Fornecedor do modelo (onde o modelo é publicado). |
publisher |
str |
Publisher do modelo (que publicou o modelo). |
license |
str |
O nome da licença do modelo. |
task |
str |
Tarefa do modelo. Um dos chat-completions ou automatic-speech-recognition. |
ep_override |
str \| None |
Override para o fornecedor de execução, se for diferente do padrão do modelo. |
Fornecedores de Execução
Um dos seguintes:
-
CPUExecutionProvider- Execução baseada em CPU -
CUDAExecutionProvider- Execução de GPU NVIDIA CUDA -
WebGpuExecutionProvider- Execução WebGPU -
QNNExecutionProvider- Execução de Rede Neural Qualcomm (NPU) -
OpenVINOExecutionProvider- Execução Intel OpenVINO -
NvTensorRTRTXExecutionProvider- Execução NVIDIA TensorRT -
VitisAIExecutionProvider- Execução de IA AMD Vitis
Exemplo de Utilização
O código a seguir demonstra como usar a FoundryLocalManager classe para gerenciar modelos e interagir com o serviço 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)
Este exemplo lista modelos, faz o download e carrega um modelo, e depois liberta-o.
Referências:
Integração com OpenAI SDK
Instale o pacote OpenAI:
pip install openai
O código a seguir demonstra como integrar o FoundryLocalManager com o OpenAI SDK para interagir com um modelo local.
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)
Este exemplo transmite uma resposta de conclusão de chat a partir do modelo local.
Referências:
Referência do SDK JavaScript
Pré-requisitos
- Instale a CLI local do Foundry e certifique-se de que o comando
foundryestá disponível no seuPATHsistema.
Instalação
Instale o pacote a partir do npm:
npm install foundry-local-sdk@0.5.0
Início Rápido
Use este excerto para verificar se o SDK pode iniciar o serviço e aceder ao catálogo local.
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}`);
Este exemplo imprime um número diferente de zero quando o serviço está em execução e o catálogo está disponível.
Referências:
Classe FoundryLocalManager
A FoundryLocalManager classe permite gerenciar modelos, controlar o cache e interagir com o serviço Foundry Local em ambientes de navegador e Node.js.
Inicialização
import { FoundryLocalManager } from "foundry-local-sdk";
const foundryLocalManager = new FoundryLocalManager();
Opções disponíveis:
-
host: URL base do serviço Foundry Local -
fetch: (opcional) Implementação de busca personalizada para ambientes como Node.js
Uma nota sobre pseudónimos
Muitos métodos descritos nesta referência têm um aliasOrModelId parâmetro na assinatura. Você pode passar para o método um alias ou ID de modelo como um valor. O uso de um alias irá:
- Selecione o melhor modelo para o hardware disponível. Por exemplo, se uma GPU Nvidia CUDA estiver disponível, o Foundry Local selecionará o modelo CUDA. Se uma NPU suportada estiver disponível, o Foundry Local selecionará o modelo de NPU.
- Permitir que você use um nome mais curto sem precisar lembrar o ID do modelo.
Sugestão
Recomendamos passar para o aliasOrModelId parâmetro um alias porque quando você implanta seu aplicativo, o Foundry Local adquire o melhor modelo para a máquina do usuário final em tempo de execução.
Observação
Se tiver uma NPU Intel na Windows, certifique-se de que instalou o driver NPU Intel para uma aceleração NPU ótima.
Gestão de Serviços
| Método | Signature | Descrição |
|---|---|---|
init() |
(aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> |
Inicializa o SDK e, opcionalmente, carrega um modelo. |
isServiceRunning() |
() => Promise<boolean> |
Verifica se o serviço Foundry Local está em execução. |
startService() |
() => Promise<void> |
Inicia o serviço Foundry Local. |
serviceUrl |
string |
A URL base do serviço Foundry Local. |
endpoint |
string |
O ponto de extremidade da API (serviceUrl + /v1). |
apiKey |
string |
Chave da API (nenhuma) |
Gestão de Catálogos
| Método | Signature | Descrição |
|---|---|---|
listCatalogModels() |
() => Promise<FoundryModelInfo[]> |
Lista todos os modelos disponíveis no catálogo. |
refreshCatalog() |
() => Promise<void> |
Atualiza o catálogo de modelos. |
getModelInfo() |
(aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> |
Obtém informações do modelo por alias ou ID. |
Gerenciamento de cache
| Método | Signature | Descrição |
|---|---|---|
getCacheLocation() |
() => Promise<string> |
Retorna o caminho do diretório de cache do modelo. |
listCachedModels() |
() => Promise<FoundryModelInfo[]> |
Lista os modelos baixados para o cache local. |
Gestão de Modelos
| Método | Signature | Descrição |
|---|---|---|
downloadModel() |
(aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> |
Baixa um modelo para o cache local. |
loadModel() |
(aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> |
Carrega um modelo no servidor de inferência. |
unloadModel() |
(aliasOrModelId: string, force = false) => Promise<void> |
Descarrega um modelo do servidor de inferência. |
listLoadedModels() |
() => Promise<FoundryModelInfo[]> |
Lista todos os modelos atualmente carregados no serviço. |
Exemplo de Utilização
O código a seguir demonstra como usar a FoundryLocalManager classe para gerenciar modelos e interagir com o serviço 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);
Este exemplo descarrega e carrega um modelo, depois lista os modelos em cache e carregados.
Referências:
Integração com OpenAI Client
Instale o pacote OpenAI:
npm install openai
O código a seguir demonstra como integrar o FoundryLocalManager com o cliente OpenAI para interagir com um modelo local.
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();
Este exemplo transmite uma resposta de conclusão de chat a partir do modelo local.
Referências:
Utilização do navegador
O SDK inclui uma versão compatível com browser, onde deve especificar manualmente a URL do anfitrião:
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
Observação
A versão do navegador não suporta os initmétodos , isServiceRunninge startService . Você deve garantir que o serviço Foundry Local esteja em execução antes de usar o SDK em um ambiente de navegador. Você pode iniciar o serviço usando a CLI local do Foundry: foundry service start. Você pode obter a URL do serviço a partir da saída da CLI.
Exemplo de Utilização
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);
Referências:
Referência do SDK do C#
Pré-requisitos
- Instale a CLI local do Foundry e certifique-se de que o
foundrycomando está disponível no seuPATHarquivo .
Instalação
Para usar o SDK do C# Local do Foundry, você precisa instalar o pacote NuGet:
dotnet add package Microsoft.AI.Foundry.Local --version 0.3.0
Uma nota sobre pseudónimos
Muitos métodos descritos nesta referência têm um aliasOrModelId parâmetro na assinatura. Você pode passar para o método um alias ou ID de modelo como um valor. O uso de um alias irá:
- Selecione o melhor modelo para o hardware disponível. Por exemplo, se uma GPU Nvidia CUDA estiver disponível, o Foundry Local selecionará o modelo CUDA. Se uma NPU suportada estiver disponível, o Foundry Local selecionará o modelo de NPU.
- Permitir que você use um nome mais curto sem precisar lembrar o ID do modelo.
Sugestão
Recomendamos passar para o aliasOrModelId parâmetro um alias porque quando você implanta seu aplicativo, o Foundry Local adquire o melhor modelo para a máquina do usuário final em tempo de execução.
Observação
Se tiver uma NPU Intel na Windows, certifique-se de que instalou o driver NPU Intel para uma aceleração NPU ótima.
Enumerações
DeviceType
Representa o tipo de dispositivo usado para a execução do modelo.
| Valor | Descrição |
|---|---|
| CPU | Dispositivo CPU |
| GPU | Dispositivo GPU |
| NPU (Unidade de Processamento Neural) | Dispositivo NPU |
| Inválido | Inválido/desconhecido |
ExecutionProvider
Representa o provedor de execução para inferência de modelo.
| Valor | Descrição |
|---|---|
| Inválido | Provedor inválido |
| ProvedorDeExecuçãoCPU | Execução da CPU |
| WebGpuExecutionProvider | Execução de WebGPU |
| Provedor de Execução CUDA (CUDAExecutionProvider) | Execução de GPU CUDA |
| QNNExecutionProvider | Execução de NPU Qualcomm |
| OpenVINOExecutionProvider | Execução do Intel OpenVINO |
| NvTensorRTRTXExecutionProvider | Execução NVIDIA TensorRT |
| VitisAIExecutionProvider | Execução de IA AMD Vitis |
FoundryLocalManager Classe
O principal ponto de entrada para gerenciar modelos, cache e o serviço Foundry Local.
Construção
var manager = new FoundryLocalManager();
Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
| ServiceUri | Uri |
O URI base do serviço Foundry Local. |
| Ponto final | Uri |
O ponto de extremidade da API (ServiceUri + /v1). |
| ApiKey | string |
A chave da API (padrão: "OPENAI_API_KEY"). |
| IsServiceRunning | bool |
Indica se o serviço está em execução. |
Gestão de Serviços
Iniciar o serviço
await manager.StartServiceAsync(CancellationToken.None);
Inicia o serviço Foundry Local se ainda não estiver em execução.
Parar o serviço
await manager.StopServiceAsync(CancellationToken.None);
Interrompe o serviço local da Foundry.
Iniciar e carregar um modelo (auxiliar estático)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");
Inicia o serviço e carrega o modelo especificado.
Gestão de Catálogos
Listar todos os modelos de catálogo
List<ModelInfo> models = await manager.ListCatalogModelsAsync();
Retorna todos os modelos disponíveis no catálogo.
Atualizar o catálogo
manager.RefreshCatalog();
Limpa o catálogo armazenado em cache para que ele seja recarregado no próximo acesso.
Obter informações do modelo por alias ou ID
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");
Retorna as informações do modelo ou null se não forem encontradas.
Gerenciamento de cache
Obter localização do cache
string cachePath = await manager.GetCacheLocationAsync();
Retorna o caminho do diretório onde os modelos são armazenados em cache.
Listar modelos armazenados em cache
List<ModelInfo> cached = await manager.ListCachedModelsAsync();
Retorna modelos baixados para o cache local.
Gestão de Modelos
Descarregar um modelo
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");
Baixa um modelo para o cache local.
Faça o download de um modelo com acompanhamento de progresso
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
// progress.Percentage, progress.Status, etc.
}
Os streams baixam atualizações de progresso.
Carregar um modelo
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");
Carrega um modelo no servidor de inferência.
Listar modelos carregados
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();
Lista todos os modelos atualmente carregados no serviço.
Descarregar um modelo
await manager.UnloadModelAsync("aliasOrModelId");
Descarrega um modelo do servidor de inferência.
Eliminação
Implementa ambos IDisposable e IAsyncDisposable para uma limpeza adequada.
manager.Dispose();
// or
await manager.DisposeAsync();
Tipos de modelo
Esta página documenta os principais tipos de dados usados pelo SDK C# Local do Foundry para descrever modelos, downloads e informações de tempo de execução.
PromptTemplate
Representa o modelo de prompt para um sistema.
| Propriedade | Tipo | Descrição |
|---|---|---|
| Assistente | cadeia (de caracteres) | O modelo de prompt do assistente. |
| Prompt | cadeia (de caracteres) | O modelo de aviso do usuário. |
Runtime
Descreve o ambiente de tempo de execução para um modelo.
| Propriedade | Tipo | Descrição |
|---|---|---|
| Tipo de dispositivo | DeviceType |
O tipo de dispositivo (CPU, GPU, etc). |
| ExecutionProvider | ExecutionProvider |
O provedor de execução (CUDA, CPU, etc). |
ModelSettings
Representa parâmetros específicos do modelo.
| Propriedade | Tipo | Descrição |
|---|---|---|
| Parâmetros | Lista<JsonElement> | Coleção de parâmetros do modelo |
ModelInfo
Descreve um modelo no catálogo ou cache do Foundry Local.
| Propriedade | Tipo | Descrição |
|---|---|---|
| ModelId | cadeia (de caracteres) | Identificador de modelo único. |
| Nome de Exibição | cadeia (de caracteres) | Nome do modelo legível por humanos. |
| Tipo de provedor | cadeia (de caracteres) | Tipo de provedor (por exemplo, "CUDA", "CPU"). |
| Uri | cadeia (de caracteres) | Descarregar URI do modelo. |
| Versão | cadeia (de caracteres) | Versão do modelo. |
| Tipo de modelo | cadeia (de caracteres) | Tipo de modelo (por exemplo, "llm"). |
| PromptTemplate | PromptTemplate | Modelo de prompt para o modelo. |
| Publisher | cadeia (de caracteres) | Publisher do modelo. |
| Tarefa | cadeia (de caracteres) | Tipo de tarefa (por exemplo, "chat", "conclusão"). |
| Tempo de execução | Tempo de execução | Informações do ambiente de tempo de execução. |
| Tamanho do arquivoMb | long | Tamanho do ficheiro do modelo em MB. |
| Configurações do Modelo | Configurações do Modelo | Configurações específicas do modelo. |
| Alias | cadeia (de caracteres) | Alias para o modelo. |
| SupportsToolCalling | booleano | Se a chamada de ferramentas é suportada. |
| Licença | cadeia (de caracteres) | Identificador de licença. |
| Descrição da Licença | cadeia (de caracteres) | Descrição da licença. |
| ParentModelUri | cadeia (de caracteres) | URI do modelo pai, se houver. |
ModelDownloadProgress
Representa o progresso de uma operação de download de modelo.
| Propriedade | Tipo | Descrição |
|---|---|---|
| Percentagem | duplo | Percentagem de conclusão do download (0-100). |
| EstáConcluído | booleano | Se o download está concluído. |
| ModelInfo | ModelInfo? | Informações do modelo caso o download seja concluído. |
| Mensagem de Erro | string? | Mensagem de erro se o download falhar. |
Métodos estáticos:
-
Progress(double percentage): Crie uma atualização de progresso. -
Completed(ModelInfo modelInfo): Crie um resultado de progresso concluído. -
Error(string errorMessage): Crie um resultado de erro.
Exemplo de Utilização
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();
Referência do SDK do Rust
O SDK do Rust para Foundry Local fornece uma maneira de gerenciar modelos, controlar o cache e interagir com o serviço Foundry Local.
Pré-requisitos
- Instale a CLI local do Foundry e certifique-se de que o
foundrycomando está disponível no seuPATHarquivo . - Usa o Rust 1.70.0 ou posterior.
Instalação
Para usar o SDK do Foundry Local Rust, adicione o seguinte ao seu Cargo.toml:
[dependencies]
foundry-local = "0.1.0"
Como alternativa, pode adicionar a caixa Foundry Local usando cargo:
cargo add foundry-local@0
Início Rápido
Use este excerto para verificar se o SDK pode iniciar o serviço e ler o catálogo local.
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(())
}
Este exemplo imprime um número não nulo quando o serviço está a correr e o catálogo está disponível.
Referências:
FoundryLocalManager
Gerente de operações do SDK local do Foundry.
Fields
-
service_uri: Option<String>: URI do serviço Foundry. -
client: Option<HttpClient>: Cliente HTTP para pedidos de API. -
catalog_list: Option<Vec<FoundryModelInfo>>: Lista em cache de modelos de catálogo. -
catalog_dict: Option<HashMap<String, FoundryModelInfo>>: Dicionário em cache de modelos de catálogo. -
timeout: Option<u64>: Time out opcional do cliente HTTP.
Methods
pub fn builder() -> FoundryLocalManagerBuilder
Crie um novo construtor paraFoundryLocalManager.pub fn service_uri(&self) -> Result<&str>
Obtenha o URI de serviço.
Retorno: URI do serviço Foundry.fn client(&self) -> Result<&HttpClient>
Obtenha a instância do cliente HTTP.
Devoluções: Cliente HTTP.pub fn endpoint(&self) -> Result<String>
Obtenha o ponto final para o serviço.
Devoluções: URL do ponto final.pub fn api_key(&self) -> String
Obtenha a chave de API para autenticação.
Devoluções: Chave da API.pub fn is_service_running(&mut self) -> bool
Verifique se o serviço está em execução e defina o URI do serviço, se encontrado.
Devoluções:truese estiver em execução,falsecaso contrário.pub fn start_service(&mut self) -> Result<()>
Inicie o serviço Foundry Local.pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
Obtenha uma lista de modelos disponíveis no catálogo.pub fn refresh_catalog(&mut self)
Atualize o cache do catálogo.pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
Obtenha informações do modelo por alias ou ID.
Argumentos:-
alias_or_model_id: Alias ou ID do modelo. -
raise_on_not_found: Se verdadeiro, erro se não encontrado.
-
pub async fn get_cache_location(&self) -> Result<String>
Obtenha o local do cache como uma cadeia de caracteres.pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Listar modelos armazenados em cache.pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
Faça o download de um modelo.
Argumentos:-
alias_or_model_id: Alias ou ID do modelo. -
token: Token de autenticação opcional. -
force: Forçar o download se já estiver em cache.
-
pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
Carregue um modelo para inferência.
Argumentos:-
alias_or_model_id: Alias ou ID do modelo. -
ttl: Tempo de vida opcional em segundos.
-
pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
Descarregue um modelo.
Argumentos:-
alias_or_model_id: Alias ou ID do modelo. -
force: Descarregamento forçado mesmo que esteja em uso.
-
pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
Listar modelos carregados.
FoundryLocalManagerBuilder
Construtor para criar uma FoundryLocalManager instância.
Fields
-
alias_or_model_id: Option<String>— Alias ou ID do modelo para baixar e carregar. -
bootstrap: bool— Se o serviço deve ser iniciado se não estiver em execução. -
timeout_secs: Option<u64>— Tempo limite do cliente HTTP em segundos.
Methods
pub fn new() -> Self
Crie uma nova instância do construtor.pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
Defina o alias ou ID do modelo para baixar e carregar.pub fn bootstrap(mut self, bootstrap: bool) -> Self
Defina se o serviço deve ser iniciado se não estiver em execução.pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
Defina o tempo limite do cliente HTTP em segundos.pub async fn build(self) -> Result<FoundryLocalManager>
Crie aFoundryLocalManagerinstância.
FoundryModelInfo
Representa informações sobre um modelo.
Fields
-
alias: String— O alias do modelo. -
id: String— O ID do modelo. -
version: String— A versão do modelo. -
runtime: ExecutionProvider— O provedor de execução (CPU, CUDA, etc.). -
uri: String— O modelo URI. -
file_size_mb: i32— Tamanho do ficheiro do modelo em MB. -
prompt_template: serde_json::Value— Modelo de prompt para o modelo. -
provider: String— Nome do fornecedor. -
publisher: String— Nome do Publicador. -
license: String— Tipo de licença. -
task: String— Tarefa de modelar (por exemplo, geração de texto).
Methods
from_list_response(response: &FoundryListResponseModel) -> Self
Cria umFoundryModelInfoa partir de uma resposta do catálogo.to_download_body(&self) -> serde_json::Value
Converte as informações do modelo em um corpo JSON para solicitações de download.
ExecutionProvider
Enum para provedores de execução suportados.
CPUWebGPUCUDAQNN
Methods
get_alias(&self) -> String
Retorna um alias de cadeia de caracteres para o provedor de execução.
ModelRuntime
Descreve o ambiente de tempo de execução para um modelo.
device_type: DeviceTypeexecution_provider: ExecutionProvider