Aracılığıyla paylaş


Foundry Yerel SDK referansı

Foundry Yerel SDK'sı, uygulamalarınızda yerel yapay zeka modellerini kullanabilen yapay zeka özelliklerini basit ve sezgisel bir API aracılığıyla göndermenizi sağlar. SDK, yapay zeka modellerini yönetmenin karmaşıklıklarını soyutlar ve yerel yapay zeka özelliklerini uygulamalarınızla tümleştirmek için sorunsuz bir deneyim sunar. Bu başvuru C#, JavaScript, Python ve Rust için SDK uygulamalarını belgelemektedir.

SDK, Son kullanıcılar makinesine Foundry Local CLI'nın yüklenmesini gerektirmez ve kullanıcılarınız için ek kurulum adımları olmadan uygulamalarınızı göndermenize olanak tanır. Uygulamalarınız bağımsızdır. Foundry Yerel SDK'sının şu ek avantajları vardır:

  • Donanım algılama ve iyileştirme: GPU, NPU ve CPU için otomatik yetenek değerlendirmesi.
  • Execution sağlayıcı yönetimi (Windows): Cihaz özelliklerine göre uygun ONNX Çalışma Zamanı yürütme sağlayıcılarının (CUDA, Vitis, QNN, OpenVINO, TensorRT) otomatik olarak indirilmesi ve kaydedilmesi.
  • WebGpu (macOS) aracılığıyla metal desteği: Apple Silicon'da modelleri en iyi duruma getirilmiş performansla çalıştırmak için yerel destek.
  • Model edinme: Sürüm oluşturma, güncellemeler ve geri alma desteğiyle otomatik olarak donanım için optimize edilmiş model seçimiyle Foundry Model Kataloğu'ndan sorunsuz indirme.
  • Verimli çalışma zamanı: Uygulama boyutuna yaklaşık 20 MB ekler, cep telefonlarından masaüstlerine kadar cihazlarda çalışır.
  • OpenAI API uyumluluğu: OpenAI modelleri ve araçlarıyla kolay tümleştirme.
  • İsteğe bağlı REST sunucusu: Foundry Local'ı diğer uygulamalar tarafından erişilebilen bir yerel hizmet olarak çalıştırın.

C# SDK Referansı

Paketleri yükleme

Windows üzerinde geliştiriyor veya gönderiyorsanız Windows sekmesini seçin. Windows paketi Windows ML çalışma zamanıyla tümleşir; aynı API yüzey alanını daha geniş bir donanım hızlandırmasıyla sağlar.

dotnet add package Microsoft.AI.Foundry.Local.WinML
dotnet add package OpenAI

GitHub deposundaki C# örnekleri önceden yapılandırılmış projelerdir. Sıfırdan oluşturuyorsanız, C# projenizi Foundry Local ile nasıl ayarlayacağınız hakkında daha fazla ayrıntı için Foundry Yerel SDK başvurusunu okumalısınız.

proje yapılandırması

Örnek depolar, platform algılamayı otomatik olarak işleyen bir .csproj dosya içerir. Sıfırdan bir proje oluşturuyorsanız bu yapılandırmayı başvuru olarak kullanın:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <!-- Windows: target Windows SDK for WinML hardware acceleration -->
  <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
    <TargetFramework>net9.0-windows10.0.26100</TargetFramework>
    <WindowsAppSDKSelfContained>false</WindowsAppSDKSelfContained>
    <Platforms>ARM64;x64</Platforms>
    <WindowsPackageType>None</WindowsPackageType>
    <EnableCoreMrtTooling>false</EnableCoreMrtTooling>
  </PropertyGroup>

  <!-- Non-Windows: standard .NET -->
  <PropertyGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
    <TargetFramework>net9.0</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(RuntimeIdentifier)'==''">
    <RuntimeIdentifier>$(NETCoreSdkRuntimeIdentifier)</RuntimeIdentifier>
  </PropertyGroup>

  <!-- Windows: WinML for hardware acceleration -->
  <ItemGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
    <PackageReference Include="Microsoft.AI.Foundry.Local.WinML" />
  </ItemGroup>

  <!-- Non-Windows: standard SDK -->
  <ItemGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
    <PackageReference Include="Microsoft.AI.Foundry.Local" />
  </ItemGroup>

  <!-- Linux GPU support -->
  <ItemGroup Condition="'$(RuntimeIdentifier)' == 'linux-x64'">
    <PackageReference Include="Microsoft.ML.OnnxRuntime.Gpu" />
    <PackageReference Include="Microsoft.ML.OnnxRuntimeGenAI.Cuda" />
  </ItemGroup>

  <!-- Shared utilities -->
  <ItemGroup>
    <Compile Include="../Shared/*.cs" />
  </ItemGroup>

</Project>

Aşağıdaki tabloda anahtar proje ayarları açıklanmaktadır:

Setting Açıklama
TargetFramework Windows'te net9.0-windows10.0.26100, WinML donanım hızlandırması için hedeflenir. Diğer platformlarda hedefler net9.0.
WindowsAppSDKSelfContained false olarak ayarlayarak paketlemek yerine sistem tarafından yüklenen Windows Uygulama SDK'sı'sini kullanın.
WindowsPackageType None Paketlenmemiş bir masaüstü uygulaması (MSIX paketlemesi olmadan) olarak derlenmeye ayarlayın.
EnableCoreMrtTooling false Konsol uygulamaları için gerekli olmayan MRT Core kaynak araçlarını devre dışı bırakmak için olarak ayarlayın.
RuntimeIdentifier Varsayılan olarak geçerli SDK'nın çalışma zamanı tanımlayıcısını kullanır ve doğru platform ikili dosyalarının seçildiğinden emin olur.
Microsoft.AI.Foundry.Local.WinML Sadece Windows için olan ve donanım hızlandırması ile otomatik yürütme sağlayıcısı yönetimi için WinML kullanan bir paket.
Microsoft.AI.Foundry.Local WinML olmadan macOS, Linux ve Windows için platformlar arası paket.
Microsoft.ML.OnnxRuntime.Gpu / OnnxRuntimeGenAI.Cuda CUDA özellikli donanımlar için Linux GPU destek paketleri.

Hızlı Başlangıç

SDK'nin yerel model kataloğunu başlatıp erişebildiğini doğrulamak için bu kod parçacığını kullanın.

using Microsoft.AI.Foundry.Local;
using Microsoft.Extensions.Logging;
using System.Linq;

var config = new Configuration
{
  AppName = "app-name",
  LogLevel = Microsoft.AI.Foundry.Local.LogLevel.Information,
};

using var loggerFactory = LoggerFactory.Create(builder =>
{
  builder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information);
});
var logger = loggerFactory.CreateLogger<Program>();

await FoundryLocalManager.CreateAsync(config, logger);
var manager = FoundryLocalManager.Instance;

var catalog = await manager.GetCatalogAsync();
var models = await catalog.ListModelsAsync();

Console.WriteLine($"Models available: {models.Count()}");

Bu örnek, donanımınız için kullanılabilen model sayısını yazdırır.

Örnekleri

API referansı

Doğal Ses Transkripsiyonu API'si

C# SDK'sı, Fısıltı modellerini kullanarak cihazdaki ses dosyalarının transkribesine yönelik yerel bir ses istemcisi içerir. Bu, REST web sunucusuna gerek kalmadan çıkarım işlemini çalıştırır.

Ses istemcisi alma

Whisper modelini yükledikten sonra bir ses istemcisi alın:

var audioClient = await model.GetAudioClientAsync();

Ses transkripsiyon yöntemleri

Yöntem Signature Açıklama
TranscribeAudioStreamingAsync() (string audioFilePath, CancellationToken ct) => IAsyncEnumerable<TranscriptionChunk> Döküm sonuçlarını öbeklere göre öbek olarak akışla gönderir. Her öbek bir Text özelliğe sahiptir.

AudioClient ayarları

Mülkiyet Türü Açıklama
Language string ISO 639-1 dil kodu (örneğin, "en"). Doğruluğu artırır.
Temperature float Örnekleme sıcaklığı (0,0–1,0). Düşük değerler daha belirleyicidir.

Example

var audioClient = await model.GetAudioClientAsync();
audioClient.Settings.Language = "en";
audioClient.Settings.Temperature = 0.0f;

await foreach (var chunk in audioClient.TranscribeAudioStreamingAsync(
    "recording.mp3", CancellationToken.None))
{
    Console.Write(chunk.Text);
}

Referanslar:

JavaScript SDK Dokümanı

Paketleri yükleme

Windows üzerinde geliştiriyor veya gönderiyorsanız Windows sekmesini seçin. Windows paketi Windows ML çalışma zamanıyla tümleşir; aynı API yüzey alanını daha geniş bir donanım hızlandırmasıyla sağlar.

npm install foundry-local-sdk-winml openai

Hızlı Başlangıç

SDK'nin yerel model kataloğunu başlatıp erişebildiğini doğrulamak için bu kod parçacığını kullanın.

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

console.log('Initializing Foundry Local SDK...');

const manager = FoundryLocalManager.create({
    appName: 'foundry_local_samples',
    logLevel: 'info'
});
console.log('✓ SDK initialized successfully');

// Explore available models
console.log('\nFetching available models...');
const catalog = manager.catalog;
const models = await catalog.getModels();

console.log(`Found ${models.length} models:`);
for (const model of models) {
    console.log(`  - ${model.alias}`);
}

Bu örnek, donanımınız için kullanılabilir modellerin listesini oluşturur.

Örnekleri

API referansı

Referanslar

Python SDK Referansı

Paketleri yükleme

Windows üzerinde geliştiriyor veya gönderiyorsanız Windows sekmesini seçin. Windows paketi Windows ML çalışma zamanıyla tümleşir; aynı API yüzey alanını daha geniş bir donanım hızlandırmasıyla sağlar.

pip install foundry-local-sdk-winml openai

Hızlı Başlangıç

SDK'nin yerel model kataloğunu başlatıp erişebildiğini doğrulamak için bu kod parçacığını kullanın.

import asyncio
from foundry_local_sdk import Configuration, FoundryLocalManager


async def main():
    config = Configuration(app_name="app-name")
    FoundryLocalManager.initialize(config)
    manager = FoundryLocalManager.instance

    models = manager.catalog.list_models()
    print(f"Models available: {len(models)}")


if __name__ == "__main__":
    asyncio.run(main())

Bu örnek, donanımınız için kullanılabilen model sayısını yazdırır.

Örnekleri

Konfigürasyon

sınıfı SDK Configuration davranışını özelleştirmenize olanak tanır:

from foundry_local_sdk import Configuration

config = Configuration(
    app_name="app-name",
    log_level="info",
    model_cache_dir="./foundry_local_data/model_cache",
    web={"urls": "http://127.0.0.1:55588"},
)
Parametre Türü Açıklama
app_name str Uygulamanızın adı.
log_level str Günlük düzeyi (örneğin, "info", "debug").
model_cache_dir str Önbelleğe alınmış modeller için dizin.
web dict Anahtarla web urls hizmeti yapılandırması.

Çekirdek API

Yöntem Açıklama
FoundryLocalManager.initialize(config) singleton yöneticisini Configuration ile başlatın.
FoundryLocalManager.instance Başlatılan yönetici örneğine erişin.
manager.catalog.list_models() Katalogdaki tüm kullanılabilir modelleri listeleyin.
manager.catalog.get_model(alias) Diğer adlara göre model alma.
manager.catalog.get_cached_models() Modelleri yerel önbellekte listeleyin.
manager.catalog.get_loaded_models() Şu anda yüklü olan modelleri listeleyin.
model.download(progress_callback) Modeli indirin (önbelleğe alınmışsa atlar).
model.load() Çıkarım için modeli yükleyin.
model.unload() Modeli kaldırın.
model.is_cached Modelin yerel olarak önbelleğe alınılıp alınmadığını denetleyin.
model.is_loaded Modelin yüklenip yüklenmediğini denetleyin.

Yerleşik Sohbet Tamamlama API'si

Modeli yükledikten sonra bir sohbet istemcisi alın:

client = model.get_chat_client()
Yöntem Açıklama
client.complete_chat(messages) Eksiksiz bir sohbet yanıtı oluşturun.
client.complete_streaming_chat(messages) Sohbet yanıt parçalarını akışla ilet.

Doğal Ses Transkripsiyonu API'si

Whisper modelini yükledikten sonra bir ses istemcisi alın:

audio_client = model.get_audio_client()
Yöntem Açıklama
audio_client.transcribe(file_path) Ses dosyasını yazıya dökme. Özelliği olan bir text nesne döndürür.

Referanslar:

Rust SDK Referans

Paketleri yükleme

Windows üzerinde geliştiriyor veya gönderiyorsanız Windows sekmesini seçin. Windows paketi Windows ML çalışma zamanıyla tümleşir; aynı API yüzey alanını daha geniş bir donanım hızlandırmasıyla sağlar.

cargo add foundry-local-sdk --features winml
cargo add tokio --features full
cargo add tokio-stream anyhow

Hızlı Başlangıç

SDK'nin yerel model kataloğunu başlatıp erişebildiğini doğrulamak için bu kod parçacığını kullanın.

use foundry_local_sdk::{FoundryLocalConfig, FoundryLocalManager};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let manager = FoundryLocalManager::create(FoundryLocalConfig::new("app-name"))?;

    let models = manager.catalog().get_models().await?;
    println!("Models available: {}", models.len());

    Ok(())
}

Bu örnek, donanımınız için kullanılabilen model sayısını yazdırır.

Örnekleri

Konfigürasyon

Yapısı, FoundryLocalConfig SDK davranışını özelleştirmenize olanak tanır:

use foundry_local_sdk::FoundryLocalConfig;

let config = FoundryLocalConfig::new("app-name")
    .with_log_level("info")
    .with_model_cache_dir("./foundry_local_data/model_cache")
    .with_web_urls("http://127.0.0.1:55588");

Çekirdek API

Yöntem Açıklama
FoundryLocalManager::create(config) yeni bir FoundryLocalConfig ile yönetici oluşturun.
manager.catalog().get_models().await Kullanılabilir tüm modelleri listeleyin.
manager.catalog().get_model(alias).await Takma ad ile model alma.
manager.catalog().get_cached_models().await Modelleri yerel önbellekte listeleyin.
manager.catalog().get_loaded_models().await Şu anda yüklü olan modelleri listeleyin.
model.download(callback).await Modeli indirin (önbelleğe alınmışsa atlar).
model.load().await Çıkarım için modeli yükleyin.
model.unload().await Modeli kaldırın.

Yerleşik Sohbet Tamamlama API'si

Modeli yükledikten sonra, isteğe bağlı ayarlarla bir sohbet istemcisi oluşturun:

let client = model.create_chat_client()
    .temperature(0.7)
    .max_tokens(256);
Yöntem Açıklama
client.complete_chat(&messages, tools).await Eksiksiz bir sohbet yanıtı oluşturun.
client.complete_streaming_chat(&messages, tools).await Sohbet yanıtlarının öbeklerini akışla aktar.

İleti türleri: ChatCompletionRequestSystemMessage, ChatCompletionRequestUserMessage, ChatCompletionRequestMessage.

Doğal Ses Transkripsiyonu API'si

Whisper modelini yükledikten sonra bir ses istemcisi oluşturun:

let audio_client = model.create_audio_client();
Yöntem Açıklama
audio_client.transcribe(file_path).await Ses dosyasını dökün. Alanı olan bir text nesne döndürür.

Referanslar: