Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
foundrykomutununPATHü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
foundrykomutununPATHü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
foundrykomutununPATHü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
foundrykomutununPATHü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
FoundryLocalManageriç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,falseaksi 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 birFoundryModelInfooluş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.
CPUWebGPUCUDAQNN
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: DeviceTypeexecution_provider: ExecutionProvider