Foundry Yerel Miras SDK referansı

Uyarı

Bu başvuru, Hizmet yönetimi için Foundry Local CLI'ye bağlı olan önceki Foundry Local SDK sürümleri için geçerlidir.

Yeni geliştirme için geçerli SDK başvuruyu kullanın.

Aşağıdaki tabloda, CLI'da bir bağımlılığın bulunduğu SDK sürümleri gösterilmektedir:

Language Package CLI'ya bağımlı sürümler
C# Microsoft. AI. Foundry.Local 0.3.0 ve öncesi
JavaScript foundry-local-sdk 0.5.0 ve öncesi
Python foundry-local-sdk 0.5.1 ve öncesi
Rust foundry-local / foundry-local-sdk 0,x

CLI'ya bağımlı sürümler için destek 31 Ağustos 2026'da sona erer.

Python SDK Referansı

Önkoşullar

  • Foundry Local CLI'yi yükleyin ve foundry komutunun PATH üzerinde kullanılabilir olduğundan emin olun.
  • Python 3.9 veya üzerini kullanın.

Installation

Python paketini yükleyin:

pip install foundry-local-sdk==0.5.1

Hızlı Başlangıç

SDK'nın hizmeti başlatıp yerel kataloğa ulaşabildiğini doğrulamak için bu kod parçacığını kullanın.

from foundry_local import FoundryLocalManager

manager = FoundryLocalManager()
manager.start_service()

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

Bu örnek, hizmet çalışırken ve katalog kullanılabilir olduğunda sıfır olmayan bir sayı yazdırır.

Referanslar:

FoundryLocalManager Sınıfı

sınıfı FoundryLocalManager modelleri, önbelleği ve Foundry Local hizmetini yönetmek için yöntemler sağlar.

Başlatma Aşaması

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: (isteğe bağlı) Başlangıçta indirmek ve yüklemek için takma ad veya Model Kimliği.
  • bootstrap: (varsayılan True) True ise, çalışmıyorsa hizmeti başlatır ve sağlanırsa modeli yükler.

Diğer adlar hakkında bir not

Bu kaynakta özetlenen birçok yöntemin tanımında bir alias_or_model_id parametresi vardır. Bir takma adı veya model kimliğini yöntemine değer olarak geçirebilirsiniz. Bir takma ad kullanmanın sonuçları:

  • Kullanılabilir donanım için en iyi modeli seçin. Örneğin, bir Nvidia CUDA GPU varsa, Foundry Local CUDA modelini seçer. Desteklenen bir NPU varsa, Foundry Local NPU modelini seçer.
  • Model kimliğini hatırlamanıza gerek kalmadan daha kısa bir ad kullanmanıza olanak sağlar.

Tavsiye

alias_or_model_id parametresine bir diğer ad geçirmenizi öneriyoruz çünkü uygulamanızı dağıttığınızda Foundry Local, çalışma anında son kullanıcının makinesi için en iyi modeli edinir.

Uyarı

Windows bir Intel NPU'nuz varsa, en iyi NPU hızlandırması için Intel NPU sürücüsünü yüklediğinizden emin olun.

Servis Yönetimi

Yöntem Signature Açıklama
is_service_running() () -> bool Foundry Local hizmetinin çalışıp çalışmadığını denetler.
start_service() () -> None Foundry Local hizmetini başlatır.
service_uri @property -> str Hizmet URI'sini döndürür.
endpoint @property -> str Hizmet uç noktasını döndürür.
api_key @property -> str API anahtarını döndürür (env veya varsayılandan).

Katalog Yönetimi

Yöntem Signature Açıklama
list_catalog_models() () -> list[FoundryModelInfo] Katalogdaki tüm kullanılabilir modelleri listeler.
refresh_catalog() () -> None Model kataloğunu yeniler.
get_model_info() (alias_or_model_id: str, raise_on_not_found=False) -> FoundryModelInfo \| None Diğer ad veya kimlikle model bilgilerini alır.

Önbellek Yönetimi

Yöntem Signature Açıklama
get_cache_location() () -> str Model önbelleği dizin yolunu döndürür.
list_cached_models() () -> list[FoundryModelInfo] Yerel önbelleğe indirilen modelleri listeler.

Model Yönetimi

Yöntem Signature Açıklama
download_model() (alias_or_model_id: str, token: str = None, force: bool = False) -> FoundryModelInfo Modeli yerel önbelleğe indirir.
load_model() (alias_or_model_id: str, ttl: int = 600) -> FoundryModelInfo Modeli çıkarım sunucusuna yükler.
unload_model() (alias_or_model_id: str, force: bool = False) -> None Bir modeli çıkarım sunucusundan kaldırır.
list_loaded_models() () -> list[FoundryModelInfo] Hizmette yüklü olan tüm modelleri listeler.

FoundryModelInfo

, list_catalog_models()ve list_cached_models() yöntemleri list_loaded_models()nesnelerin listesini FoundryModelInfo döndürür. Listeyi daha da daraltmak için bu nesnede yer alan bilgileri kullanabilirsiniz. Ya da get_model_info(alias_or_model_id) yöntemini çağırarak bir modelin bilgilerini doğrudan edinin.

Bu nesneler aşağıdaki alanları içerir:

Field Türü Açıklama
alias str Modelin takma adı.
id str Modelin benzersiz tanımlayıcısı.
version str Modelin sürümü.
execution_provider str Modeli çalıştırmak için kullanılan hızlandırıcı (yürütme sağlayıcısı).
device_type DeviceType Modelin cihaz türü: CPU, GPU, NPU.
uri str Modelin URI'sini seçin.
file_size_mb int Diskteki modelin MB cinsinden boyutu.
supports_tool_calling bool Modelin araç çağrısını destekleyip desteklemediği.
prompt_template dict \| None Model için şablon iste.
provider str Modelin sağlayıcısı (modelin yayımlandığı yer).
publisher str Modelin yayımlayıcısı (modeli yayımlayan kişi).
license str Modelin lisansının adı.
task str Modelin görevi. chat-completions veya automatic-speech-recognition'den biri.
ep_override str \| None Modelin varsayılanından farklıysa yürütme sağlayıcısı için geçersiz kılın.

Yürütme Sağlayıcıları

Bunlardan biri:

  • CPUExecutionProvider - CPU tabanlı yürütme
  • CUDAExecutionProvider - NVIDIA CUDA GPU yürütme
  • WebGpuExecutionProvider - WebGPU yürütme
  • QNNExecutionProvider - Qualcomm Sinir Ağı İşlemcisi (NPU)
  • OpenVINOExecutionProvider - Intel OpenVINO çalıştırma
  • NvTensorRTRTXExecutionProvider - NVIDIA TensorRT yürütme
  • VitisAIExecutionProvider - AMD Vitis AI çalıştırma

Örnek Kullanım

Aşağıdaki kod, modelleri yönetmek ve Foundry Local hizmetiyle etkileşime geçmek için sınıfının nasıl kullanılacağını FoundryLocalManager gösterir.

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)

Bu örnekte modeller listelenir, bir model indirilir ve yüklenir ve ardından kaldırılır.

Referanslar:

OpenAI SDK ile tümleştirme

OpenAI paketini yükleyin:

pip install openai

Aşağıdaki kod, yerel bir model ile etkileşim kurmak için OpenAI SDK'sı ile FoundryLocalManager entegrasyonunu nasıl yapacağınızı gösterir.

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)

Bu örnek, yerel modelden bir sohbet tamamlama yanıtının akışını gerçekleştirir.

Referanslar:

JavaScript SDK Dokümanı

Önkoşullar

  • Foundry Local CLI'yi yükleyin ve foundry komutunun PATH üzerinde kullanılabilir olduğundan emin olun.

Installation

Paketi npm'den yükleyin:

npm install foundry-local-sdk@0.5.0

Hızlı Başlangıç

SDK'nın hizmeti başlatıp yerel kataloğa ulaşabildiğini doğrulamak için bu kod parçacığını kullanın.

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

Bu örnek, hizmet çalışırken ve katalog kullanılabilir olduğunda sıfır olmayan bir sayı yazdırır.

Referanslar:

FoundryLocalManager Sınıfı

sınıfı, FoundryLocalManager modelleri yönetmenize, önbelleği denetlemenize ve hem tarayıcıda hem de Node.js ortamlarda Foundry Local hizmetiyle etkileşim kurmanıza olanak tanır.

Başlatma Aşaması

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

const foundryLocalManager = new FoundryLocalManager();

Mevcut seçenekler:

  • host: Dökümhane Yerel hizmetinin temel URL'si
  • fetch: (isteğe bağlı) Node.js gibi ortamlar için özel getirme uygulaması

Diğer adlar hakkında bir not

Bu kaynakta özetlenen birçok yöntemin tanımında bir aliasOrModelId parametresi vardır. Bir takma adı veya model kimliğini yöntemine değer olarak geçirebilirsiniz. Bir takma ad kullanmanın sonuçları:

  • Kullanılabilir donanım için en iyi modeli seçin. Örneğin, bir Nvidia CUDA GPU varsa, Foundry Local CUDA modelini seçer. Desteklenen bir NPU varsa, Foundry Local NPU modelini seçer.
  • Model kimliğini hatırlamanıza gerek kalmadan daha kısa bir ad kullanmanıza olanak sağlar.

Tavsiye

aliasOrModelId parametresine bir diğer ad geçirmenizi öneriyoruz çünkü uygulamanızı dağıttığınızda Foundry Local, çalışma anında son kullanıcının makinesi için en iyi modeli edinir.

Uyarı

Windows bir Intel NPU'nuz varsa, en iyi NPU hızlandırması için Intel NPU sürücüsünü yüklediğinizden emin olun.

Servis Yönetimi

Yöntem Signature Açıklama
init() (aliasOrModelId?: string) => Promise<FoundryModelInfo \| void> SDK'yi başlatır ve isteğe bağlı olarak bir model yükler.
isServiceRunning() () => Promise<boolean> Foundry Local hizmetinin çalışıp çalışmadığını denetler.
startService() () => Promise<void> Foundry Local hizmetini başlatır.
serviceUrl string Foundry Local hizmetinin temel URL'si.
endpoint string API uç noktası (serviceUrl + /v1).
apiKey string API anahtarı (yok).

Katalog Yönetimi

Yöntem Signature Açıklama
listCatalogModels() () => Promise<FoundryModelInfo[]> Katalogdaki tüm kullanılabilir modelleri listeler.
refreshCatalog() () => Promise<void> Model kataloğunu yeniler.
getModelInfo() (aliasOrModelId: string, throwOnNotFound = false) => Promise<FoundryModelInfo \| null> Diğer ad veya kimlikle model bilgilerini alır.

Önbellek Yönetimi

Yöntem Signature Açıklama
getCacheLocation() () => Promise<string> Model önbelleği dizin yolunu döndürür.
listCachedModels() () => Promise<FoundryModelInfo[]> Yerel önbelleğe indirilen modelleri listeler.

Model Yönetimi

Yöntem Signature Açıklama
downloadModel() (aliasOrModelId: string, token?: string, force = false, onProgress?) => Promise<FoundryModelInfo> Modeli yerel önbelleğe indirir.
loadModel() (aliasOrModelId: string, ttl = 600) => Promise<FoundryModelInfo> Modeli çıkarım sunucusuna yükler.
unloadModel() (aliasOrModelId: string, force = false) => Promise<void> Bir modeli çıkarım sunucusundan kaldırır.
listLoadedModels() () => Promise<FoundryModelInfo[]> Hizmette yüklü olan tüm modelleri listeler.

Örnek Kullanım

Aşağıdaki kod, modelleri yönetmek ve Foundry Local hizmetiyle etkileşime geçmek için sınıfının nasıl kullanılacağını FoundryLocalManager gösterir.

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

Bu örnek bir modeli indirip yükler, ardından önbelleğe alınmış ve yüklenen modelleri listeler.

Referanslar:

OpenAI İstemcisi ile Tümleştirme

OpenAI paketini yükleyin:

npm install openai

Aşağıdaki kod, yerel bir modelle etkileşime geçmek için FoundryLocalManager ile OpenAI istemcisi entegrasyonunu gösterir.

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

Bu örnek, yerel modelden bir sohbet tamamlama yanıtının akışını gerçekleştirir.

Referanslar:

Tarayıcı Kullanımı

SDK, ana bilgisayar URL'sini el ile belirtmeniz gereken tarayıcı uyumlu bir sürüm içerir:

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

Uyarı

Tarayıcı sürümü, init, isServiceRunning ve startService yöntemlerini desteklemez. SDK'yi bir tarayıcı ortamında kullanmadan önce Foundry Local hizmetinin çalıştığından emin olmanız gerekir. Hizmeti, Foundry Yerel CLI'yi kullanarak başlatabilirsiniz: foundry server start. CLI çıktı bilgilerini kullanarak hizmet URL'sini çıkarabilirsiniz.

Örnek Kullanım

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

Referanslar:

C# SDK Referansı

Önkoşullar

  • Foundry Local CLI'yi yükleyin ve foundry komutunun PATH üzerinde kullanılabilir olduğundan emin olun.

Installation

Foundry Local C# SDK'sını kullanmak için NuGet paketini yüklemeniz gerekir:

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

Diğer adlar hakkında bir not

Bu kaynakta özetlenen birçok yöntemin tanımında bir aliasOrModelId parametresi vardır. Bir takma adı veya model kimliğini yöntemine değer olarak geçirebilirsiniz. Bir takma ad kullanmanın sonuçları:

  • Kullanılabilir donanım için en iyi modeli seçin. Örneğin, bir Nvidia CUDA GPU varsa, Foundry Local CUDA modelini seçer. Desteklenen bir NPU varsa, Foundry Local NPU modelini seçer.
  • Model kimliğini hatırlamanıza gerek kalmadan daha kısa bir ad kullanmanıza olanak sağlar.

Tavsiye

aliasOrModelId parametresine bir diğer ad geçirmenizi öneriyoruz çünkü uygulamanızı dağıttığınızda Foundry Local, çalışma anında son kullanıcının makinesi için en iyi modeli edinir.

Uyarı

Windows bir Intel NPU'nuz varsa, en iyi NPU hızlandırması için Intel NPU sürücüsünü yüklediğinizden emin olun.

Numaralandırma

DeviceType

Model yürütme için kullanılan cihaz türünü temsil eder.

Değer Açıklama
İşlemci (CPU) CPU cihazı
GPU (Grafik İşleme Birimi) GPU cihazı
NPU (Sinir İşlem Ünitesi) NPU cihazı
Geçersiz Geçersiz/bilinmiyor

ExecutionProvider

Model çıkarımı için yürütme sağlayıcısını temsil eder.

Değer Açıklama
Geçersiz Geçersiz sağlayıcı
CPUExecutionProvider CPU işleyişi
WebGpuExecutionProvider WebGPU yürütme
CUDAExecutionProvider CUDA GPU çalıştırma
QNNExecutionProvider Qualcomm NPU'nin yürütülmesi
OpenVINOExecutionProvider Intel OpenVINO çalıştırma
NvTensorRTRTXExecutionProvider NVIDIA TensorRT yürütme
VitisAIExecutionProvider AMD Vitis AI çalıştırma

FoundryLocalManager Sınıf

Modelleri, önbelleği ve Foundry Yerel hizmetini yönetmek için ana giriş noktası.

İnşaat

var manager = new FoundryLocalManager();

Özellikler

Mülkiyet Türü Açıklama
ServiceUri Uri Foundry Local hizmetinin temel URI'si.
Bitiş noktası Uri API uç noktası (ServiceUri + /v1).
API Anahtarı string API anahtarı (varsayılan: "OPENAI_API_KEY").
IsServiceRunning bool Hizmetin çalışıp çalışmadığını gösterir.

Servis Yönetimi

Hizmeti başlatma
await manager.StartServiceAsync(CancellationToken.None);

Henüz çalışmıyorsa Foundry Yerel hizmetini başlatır.

Hizmeti durdurma
await manager.StopServiceAsync(CancellationToken.None);

Foundry Local hizmetini durdurur.

Modeli başlatma ve yükleme (statik yardımcı)
var manager = await FoundryLocalManager.StartModelAsync("aliasOrModelId");

Hizmeti başlatır ve belirtilen modeli yükler.

Katalog Yönetimi

Tüm katalog modellerini listeleme
List<ModelInfo> models = await manager.ListCatalogModelsAsync();

Katalogdaki tüm kullanılabilir modelleri döndürür.

Kataloğu yenileme
manager.RefreshCatalog();

Önbelleğe alınan kataloğu temizler, böylece bir sonraki erişimde yeniden yüklenir.

Takma ad veya kimlik ile model bilgilerini alma
ModelInfo? info = await manager.GetModelInfoAsync("aliasOrModelId");

Model bilgilerini veya null bulunamazsa döndürür.

Önbellek Yönetimi

Önbellek konumunu alma
string cachePath = await manager.GetCacheLocationAsync();

Modellerin önbelleğe alındığı dizin yolunu döndürür.

Önbelleğe alınan modelleri listeleme
List<ModelInfo> cached = await manager.ListCachedModelsAsync();

Yerel önbelleğe indirilen modelleri döndürür.

Model Yönetimi

Bir model indir
ModelInfo? model = await manager.DownloadModelAsync("aliasOrModelId");

Modeli yerel önbelleğe indirir.

İlerleme durumunu takip ederek bir modeli indir
await foreach (var progress in manager.DownloadModelWithProgressAsync("aliasOrModelId"))
{
    // progress.Percentage, progress.Status, etc.
}

Akışlar indirme ilerleme durumu güncelleştirmeleri.

Model yükleme
ModelInfo loaded = await manager.LoadModelAsync("aliasOrModelId");

Modeli çıkarım sunucusuna yükler.

Yüklenen modelleri listeleme
List<ModelInfo> loaded = await manager.ListLoadedModelsAsync();

Hizmette yüklü olan tüm modelleri listeler.

Modeli boşalt
await manager.UnloadModelAsync("aliasOrModelId");

Bir modeli çıkarım sunucusundan kaldırır.

Atık Bertarafı

Uygun temizleme için hem IDisposable hem de IAsyncDisposable uygular.

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

Model Türleri

Bu sayfada, Foundry Local C# SDK'sı tarafından modelleri, indirmeleri ve çalışma zamanı bilgilerini tanımlamak için kullanılan anahtar veri türleri belgelenmiştir.

PromptTemplate

Model için istem şablonunu temsil eder.

Mülkiyet Türü Açıklama
Yardımcı String Yardımcının istem şablonu.
Uyarı String Kullanıcı istemi şablonu.

Runtime

Modelin çalışma zamanı ortamını açıklar.

Mülkiyet Türü Açıklama
CihazTürü DeviceType Cihaz türü (CPU, GPU vb.).
Yürütme Sağlayıcı ExecutionProvider Yürütme sağlayıcısı (CUDA, CPU vb.).

ModelSettings

Modele özgü parametreleri temsil eder.

Mülkiyet Türü Açıklama
Parametreler Liste<JsonElement> Model parametresi koleksiyonu

ModelInfo

Foundry Local kataloğundaki veya önbelleğindeki bir modeli açıklar.

Mülkiyet Türü Açıklama
Model Kimliği String Benzersiz model tanımlayıcısı.
Gösterim Adı String İnsan tarafından okunabilen model adı.
ProviderType String Sağlayıcı türü (örn. "CUDA", "CPU").
Uri String Model için URI'yi indirin.
Sürüm String Model sürümü.
Model Türü String Model türü (ör. "llm").
PromptTemplate PromptTemplate Model için şablon iste.
Yayıncı String Modelin Yayıncısı
Görev String Görev türü (örneğin, "sohbet", "tamamlama").
Çalışma zamanı Çalışma zamanı Çalışma zamanı ortam bilgileri.
Dosya Boyutu (MB) uzun MB cinsinden model dosyası boyutu.
ModelAyarlar ModelAyarlar Modele özgü ayarlar.
Diğer ad String Model için takma ad.
Araç Çağırmayı Destekler bool Araç çağrısının desteklenip desteklenmediği.
Lisans String Lisans tanımlayıcısı.
Lisans Açıklaması String Lisans açıklaması.
ParentModelUri String Varsa üst modelin URI'sini seçin.

ModelDownloadProgress

Model indirme işleminin ilerleme durumunu temsil eder.

Mülkiyet Türü Açıklama
Yüzde double Tamamlanma yüzdesini (0-100) indirin.
Tamamlandı bool İndirme işleminin tamamlanıp tamamlanmadığı.
Model Bilgisi ModelInfo mu? İndirme tamamlandıysa model bilgileri.
Hata Mesajı dizgi? İndirme başarısız olursa hata iletisi.

Statik yöntemler:

  • Progress(double percentage): İlerleme güncellemesi yapın.
  • Completed(ModelInfo modelInfo): Tamamlanmış bir ilerleme sonucu oluşturun.
  • Error(string errorMessage): Bir hata sonucu oluşturun.

Örnek Kullanım

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 referansları

Foundry Local için Rust SDK modelleri yönetmek, önbelleği denetlemek ve Foundry Local hizmetiyle etkileşime geçmek için bir yol sağlar.

Önkoşullar

  • Foundry Local CLI'yi yükleyin ve foundry komutunun PATH üzerinde kullanılabilir olduğundan emin olun.
  • Rust 1.70.0 veya üzerini kullanın.

Installation

Foundry Local Rust SDK'sını kullanmak için aşağıdakini ekleyin Cargo.toml:

[dependencies]
foundry-local = "0.1.0"

Alternatif olarak, cargo kullanarak Foundry Local kasasını ekleyebilirsiniz.

cargo add foundry-local@0

Hızlı Başlangıç

SDK'nın hizmeti başlatıp yerel kataloğu okuyabildiğini doğrulamak için bu kod parçacığını kullanın.

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

Bu örnek, hizmet çalışırken ve katalog kullanılabilir olduğunda sıfır olmayan bir sayı yazdırır.

Referanslar:

FoundryLocalManager

Foundry Yerel SDK işlemleri yöneticisi.

Fields

  • service_uri: Option<String>: Dökümhane hizmetinin URI'si.
  • client: Option<HttpClient>: API istekleri için HTTP istemcisi.
  • catalog_list: Option<Vec<FoundryModelInfo>>: Katalog modellerinin önbelleğe alınmış listesi.
  • catalog_dict: Option<HashMap<String, FoundryModelInfo>>: Katalog modellerinin önbelleğe alınmış sözlüğü.
  • timeout: Option<u64>: HTTP istemcisine yönelik isteğe bağlı zaman aşımı.

Methods

  • pub fn builder() -> FoundryLocalManagerBuilder
    FoundryLocalManager için yeni bir oluşturucu oluşturun.

  • pub fn service_uri(&self) -> Result<&str>
    Hizmet URI'sini alın.
    Döndürür: Foundry hizmetinin URI'si.

  • fn client(&self) -> Result<&HttpClient>
    HTTP istemci örneğini alın.
    Döndürür: HTTP istemcisi.

  • pub fn endpoint(&self) -> Result<String>
    Hizmetin uç noktasını edinin.
    Döndürür: Uç nokta URL'si.

  • pub fn api_key(&self) -> String
    Kimlik doğrulaması için API anahtarını alın.
    Döndürür: API anahtarı.

  • pub fn is_service_running(&mut self) -> bool
    Hizmetin çalışıp çalışmadığını denetleyin ve bulunursa hizmet URI'sini ayarlayın.
    Dönen değer:true çalışıyorsa, false aksi takdirde.

  • pub fn start_service(&mut self) -> Result<()>
    Foundry Yerel hizmetini başlatın.

  • pub async fn list_catalog_models(&mut self) -> Result<&Vec<FoundryModelInfo>>
    Katalogdaki kullanılabilir modellerin listesini alın.

  • pub fn refresh_catalog(&mut self)
    Katalog önbelleğini yenileyin.

  • pub async fn get_model_info(&mut self, alias_or_model_id: &str, raise_on_not_found: bool) -> Result<FoundryModelInfo>
    Takma ad veya kimlik ile model bilgilerini alın.
    Argümanlar:

    • alias_or_model_id: Takma ad veya Model Kimliği.
    • raise_on_not_found: True ise, bulunamazsa hata.
  • pub async fn get_cache_location(&self) -> Result<String>
    Önbellek konumunu dize olarak alın.

  • pub async fn list_cached_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    Önbelleğe alınan modelleri listeleyin.

  • pub async fn download_model(&mut self, alias_or_model_id: &str, token: Option<&str>, force: bool) -> Result<FoundryModelInfo>
    Bir model indirin.
    Argümanlar:

    • alias_or_model_id: Takma ad veya Model Kimliği.
    • token: İsteğe bağlı kimlik doğrulama belirteci.
    • force: Önceden önbelleğe alınmışsa yeniden indirmeye zorla.
  • pub async fn load_model(&mut self, alias_or_model_id: &str, ttl: Option<i32>) -> Result<FoundryModelInfo>
    Çıkarım için bir model yükleyin.
    Argümanlar:

    • alias_or_model_id: Takma ad veya Model Kimliği.
    • ttl: İsteğe bağlı yaşam süresi (saniye cinsinden).
  • pub async fn unload_model(&mut self, alias_or_model_id: &str, force: bool) -> Result<()>
    Bir modeli boşalt.
    Argümanlar:

    • alias_or_model_id: Takma ad veya Model Kimliği.
    • force: Zorla kaldır, kullanımda olsa bile.
  • pub async fn list_loaded_models(&mut self) -> Result<Vec<FoundryModelInfo>>
    Yüklenen modelleri listeleyin.

FoundryLocalManagerBuilder

FoundryLocalManager örneği oluşturmak için yapıcı.

Fields

  • alias_or_model_id: Option<String> — İndirilecek ve yüklenecek takma ad veya model kimliği.
  • bootstrap: bool — Çalışmıyorsa hizmetin başlatılıp başlatılmaymayacağı.
  • timeout_secs: Option<u64> — HTTP istemcisi zaman aşımı süresi, saniye cinsinden.

Methods

  • pub fn new() -> Self
    Yeni bir oluşturucu örneği oluşturun.

  • pub fn alias_or_model_id(mut self, alias_or_model_id: impl Into<String>) -> Self
    İndirmek ve yüklemek için diğer adı veya model kimliğini belirleyin.

  • pub fn bootstrap(mut self, bootstrap: bool) -> Self
    Çalışmıyorsa hizmetin başlatılıp başlatılmayacağını ayarlayın.

  • pub fn timeout_secs(mut self, timeout_secs: u64) -> Self
    HTTP istemcisi zaman aşımını saniye olarak ayarlayın.

  • pub async fn build(self) -> Result<FoundryLocalManager>
    FoundryLocalManager Örneği oluşturun.

FoundryModelInfo

Model hakkındaki bilgileri temsil eder.

Fields

  • alias: String — Model takma adı.
  • id: String — Model kimliği.
  • version: String — Model sürümü.
  • runtime: ExecutionProvider — Yürütme sağlayıcısı (CPU, CUDA vb.).
  • uri: String — Model URI'si.
  • file_size_mb: i32 — MB cinsinden model dosyası boyutu.
  • prompt_template: serde_json::Value — Model için istem şablonu.
  • provider: String — Sağlayıcı adı.
  • publisher: String — Publisher adı.
  • license: String — Lisans türü.
  • task: String — Model görevi (örneğin, metin oluşturma).

Methods

  • from_list_response(response: &FoundryListResponseModel) -> Self
    Katalog yanıtından bir FoundryModelInfo oluşturur.

  • to_download_body(&self) -> serde_json::Value
    İndirme istekleri için model bilgilerini bir JSON gövdesine dönüştürür.

ExecutionProvider

Desteklenen yürütme sağlayıcıları için enum sabitleri.

  • CPU
  • WebGPU
  • CUDA
  • QNN
Methods
  • get_alias(&self) -> String
    Yürütme sağlayıcısı için bir dizgi takma adı döndürür.

ModelRuntime

Modelin çalışma zamanı ortamını açıklar.

  • device_type: DeviceType
  • execution_provider: ExecutionProvider