Dökümhane Yerel SDK geçiş kılavuzu

Bu kılavuzda, kodunuzu Foundry Yerel SDK'sının eski sürümünden geçerli sürüme geçirme yönergeleri sağlanır. Yeni SDK, Foundry Local CLI bağımlılığını kaldırır ve bu nedenle kullanıcılarınızın CLI'yı yüklemesine veya yerel bir Foundry ortamı ayarlamasına gerek kalmadan uygulamalarınızı göndermenize olanak tanır. Yeni SDK, daha iyi kullanılabilirlik ve performans için API'de iyileştirmeler de içerir.

C# SDK Geçiş Kılavuzu

Cihaz içi yapay zeka kullanarak uygulama gönderme becerinizi geliştirmek için, sürüm ve sonraki sürümlerde 0.8.0 C# SDK'sının mimarisinde önemli değişiklikler vardır. Bu bölümde, uygulamalarınızı SDK'nın en son sürümüne geçirmenize yardımcı olacak önemli değişiklikleri özetleyeceğiz.

Uyarı

SDK 0.8.0 ve sonraki sürümlerinde, API'de önceki sürümlere (<=0.3.0) göre uyumsuz değişiklikler vardır.

Aşağıdaki diyagramda, önceki mimarinin (önceki 0.8.0 sürümler için) modelleri ve sohbet tamamlamaları gibi çıkarımları yönetmek için bir REST web sunucusu kullanmaya nasıl dayandığı gösterilmektedir:

Foundry Local için önceki mimarinin diyagramı.

SDK, makinede Foundry Yerel CLI yürütülebilir dosyasını bulmak, web sunucusunu başlatmak ve ardından HTTP üzerinden onunla iletişim kurmak için bir Uzak Yordam Çağrısı (RPC) kullanacaktır. Bu mimarinin aşağıdakiler dahil olmak üzere çeşitli sınırlamaları vardır:

  • Web sunucusu yaşam döngüsünü yönetme karmaşıklığı.
  • Zorlu dağıtım: Son kullanıcıların makinelerinde ve uygulamanızda Foundry Yerel CLI'sinin yüklü olması gerekiyordu.
  • CLI ve SDK'nın sürüm yönetimi uyumluluk sorunlarına yol açabilir.

Bu sorunları gidermek için, 0.8.0 ve sonraki sürümlerde yeniden tasarlanan mimari daha yalın bir yaklaşım kullanır. Yeni mimari aşağıdaki gibidir:

Foundry Local için yeni mimarinin diyagramı.

Bu yeni mimaride:

  • Uygulamanız bağımsızdır. Dökümhane Yerel CLI'sinin son kullanıcının makinesine ayrı olarak yüklenmesi gerekmez ve bu da uygulamaları dağıtmanızı kolaylaştırır.
  • REST web sunucusu isteğe bağlıdır. HTTP üzerinden iletişim kuran diğer araçlarla tümleştirmek istiyorsanız web sunucusunu kullanmaya devam edebilirsiniz. Bu özelliğin nasıl kullanılacağı hakkında ayrıntılı bilgi için REST sunucusu üzerinden Foundry Local ile sohbet tamamlama kullanma başlıklı yazıyı okuyun.
  • SDK, sohbet tamamlamaları ve sesli transkripsiyonlar için yerel desteğe sahiptir ve daha az bağımlılıkla konuşma yapay zekası uygulamaları oluşturmanıza olanak tanır. Bu özelliğin nasıl kullanılacağı hakkında ayrıntılı bilgi için Use Foundry Local Native Chat Completions API'yi kullanma üzerine detayları okuyun.
  • Windows cihazlarda, doğru çalışma zamanı ve sürücüleri çekerek cihazdaki modeller için donanım hızlandırma işleten bir Windows ML derlemesi kullanabilirsiniz.

API değişiklikleri

Sürüm 0.8.0 ve sonraki sürümler daha nesne odaklı ve oluşturulabilir bir API sağlar. Ana giriş noktası FoundryLocalManager olmaya devam ediyor; ancak durum bilgisi olmayan bir HTTP API'sine statik çağrılarla çalışan sabit bir yöntem seti yerine, SDK artık örnek üzerinde durum bilgisi tutan hizmet ve modellere ait yöntemleri FoundryLocalManager sağlar.

İlkel Sürüm < 0.8.0 Sürümler >= 0.8.0
Configuration Mevcut Değil config = Configuration(...)
YöneticiYi Al mgr = FoundryLocalManager(); await FoundryLocalManager.CreateAsync(config, logger);
var mgr = FoundryLocalManager.Instance;
Kataloğu Al Mevcut Değil catalog = await mgr.GetCatalogAsync();
Modelleri Listele mgr.ListCatalogModelsAsync(); catalog.ListModelsAsync();
Modeli Al mgr.GetModelInfoAsync("aliasOrModelId"); catalog.GetModelAsync(alias: "alias");
Varyantı Al Mevcut Değil model.SelectedVariant;
Değişken Ayarla Mevcut Değil model.SelectVariant();
Model indirme mgr.DownloadModelAsync("aliasOrModelId"); model.DownloadAsync()
Model yükleme mgr.LoadModelAsync("aliasOrModelId"); model.LoadAsync()
Modeli kaldırma mgr.UnloadModelAsync("aliasOrModelId"); model.UnloadAsync()
Yüklenen modelleri listeleme mgr.ListLoadedModelsAsync(); catalog.GetLoadedModelsAsync();
Model yolunu al Mevcut Değil model.GetPathAsync()
Hizmeti başlat mgr.StartServiceAsync(); mgr.StartWebServerAsync();
Hizmeti durdur mgr.StopServiceAsync(); mgr.StopWebServerAsync();
Önbellek konumu mgr.GetCacheLocationAsync(); config.ModelCacheDir
Önbelleğe alınan modelleri listeleme mgr.ListCachedModelsAsync(); catalog.GetCachedModelsAsync();

API, Foundry Local'ın web sunucusu, günlük, önbellek konumu ve model değişkeni seçimi üzerinden daha yapılandırılabilir olmasını sağlar. Örneğin, Configuration sınıfı uygulama adını, günlük seviyesini, web sunucusu URL'lerini ve uygulama verileri, model önbelleği ve günlükler için dizinleri ayarlamanıza olanak tanır:

var config = new Configuration
{
    AppName = "app-name",
    LogLevel = Microsoft.AI.Foundry.Local.LogLevel.Information,
    Web = new Configuration.WebService
    {
        Urls = "http://127.0.0.1:55588"
    },
    AppDataDir = "./foundry_local_data",
    ModelCacheDir = "{AppDataDir}/model_cache",
    LogsDir = "{AppDataDir}/logs"
};

API referansı

JavaScript SDK Geçiş Kılavuzu

Cihaz içi yapay zeka kullanarak uygulama gönderme becerinizi geliştirmek için JavaScript SDK'sının mimarisinde önemli değişiklikler vardır. Bu bölümde, uygulamalarınızı SDK'nın en son sürümüne geçirmenize yardımcı olacak önemli değişiklikleri özetleyeceğiz.

Uyarı

JavaScript SDK sürüm 0.9.0 ve sonraki sürümlerde, önceki sürümlerden (<=0.5.0) API'de önemli değişiklikler vardır.

Aşağıdaki diyagramda, önceki mimarinin modelleri ve sohbet tamamlamaları gibi çıkarımları yönetmek için rest web sunucusu kullanmaya nasıl dayandığı gösterilmektedir:

Foundry Local için önceki mimarinin diyagramı.

SDK, makinede Foundry Yerel CLI yürütülebilir dosyasını bulmak, web sunucusunu başlatmak ve ardından HTTP üzerinden onunla iletişim kurmak için bir Uzak Yordam Çağrısı (RPC) kullanacaktır. Bu mimarinin aşağıdakiler dahil olmak üzere çeşitli sınırlamaları vardır:

  • Web sunucusu yaşam döngüsünü yönetme karmaşıklığı.
  • Zorlu dağıtım: Son kullanıcıların makinelerinde ve uygulamanızda Foundry Yerel CLI'sinin yüklü olması gerekiyordu.
  • CLI ve SDK'nın sürüm yönetimi uyumluluk sorunlarına yol açabilir.

Bu sorunları gidermek için yeniden tasarlanan mimari daha kolay bir yaklaşım kullanır. Yeni mimari aşağıdaki gibidir:

Foundry Local için yeni mimarinin diyagramı.

Bu yeni mimaride:

  • Uygulamanız bağımsızdır. Dökümhane Yerel CLI'sinin son kullanıcının makinesine ayrı olarak yüklenmesi gerekmez ve bu da uygulamaları dağıtmanızı kolaylaştırır.
  • REST web sunucusu isteğe bağlıdır. HTTP üzerinden iletişim kuran diğer araçlarla tümleştirmek istiyorsanız web sunucusunu kullanmaya devam edebilirsiniz.
  • SDK, sohbet tamamlamaları ve sesli transkripsiyonlar için yerel desteğe sahiptir ve daha az bağımlılıkla konuşma yapay zekası uygulamaları oluşturmanıza olanak tanır.

API değişiklikleri

En son sürüm daha nesne odaklı ve oluşturulabilir bir API sağlar. Ana giriş noktası FoundryLocalManager olmaya devam ediyor; ancak durum bilgisi olmayan bir HTTP API'sine statik çağrılarla çalışan sabit bir yöntem seti yerine, SDK artık örnek üzerinde durum bilgisi tutan hizmet ve modellere ait yöntemleri FoundryLocalManager sağlar.

İlkel Önceki Sürüm Geçerli Sürüm
Configuration Mevcut Değil config = { appName: "app-name", ... }
YöneticiYi Al mgr = new FoundryLocalManager(); mgr = FoundryLocalManager.create(config);
Kataloğu Al Mevcut Değil catalog = mgr.catalog;
Modelleri Listele mgr.listCatalogModels(); catalog.getModels();
Modeli Al mgr.getModelInfo("aliasOrModelId"); catalog.getModel(alias);
Varyantı Al Mevcut Değil model.id;
Değişken Ayarla Mevcut Değil model.selectVariant(modelId);
Model indirme mgr.downloadModel("aliasOrModelId"); model.download();
Model yükleme mgr.loadModel("aliasOrModelId"); model.load();
Modeli kaldırma mgr.unloadModel("aliasOrModelId"); model.unload();
Yüklenen modelleri listeleme mgr.listLoadedModels(); catalog.getLoadedModels();
Model yolunu al Mevcut Değil model.path;
Hizmeti başlat mgr.startService(); mgr.startWebService();
Hizmeti durdur Mevcut Değil mgr.stopWebService();
Önbellek konumu mgr.getCacheLocation(); config.modelCacheDir
Önbelleğe alınan modelleri listeleme mgr.listCachedModels(); catalog.getCachedModels();

API, Foundry Local'ın web sunucusu, günlük, önbellek konumu ve model değişkeni seçimi üzerinden daha yapılandırılabilir olmasını sağlar. Örneğin, uygulama verileri, config model önbelleği ve günlükler için uygulama adını, günlük düzeyini, web sunucusu URL'lerini ve dizinlerini ayarlamanıza olanak tanır:

const config = {
  appName: "app-name",
  logLevel: "info",
  webServiceUrls: "http://127.0.0.1:55588",
  appDataDir: "./foundry_local_data",
  modelCacheDir: "{appDataDir}/model_cache",
  logsDir: "{appDataDir}/logs",
};

Foundry Local JavaScript SDK'sının önceki sürümünde, bu ayarları doğrudan SDK aracılığıyla yapılandıramadınız ve bu da hizmetin davranışını özelleştirme yeteneğinizi sınırlamıştı.

Referanslar

Python SDK Geçiş Kılavuzu

Cihaz içi yapay zeka kullanarak uygulama gönderme becerinizi geliştirmek için Python SDK'sının mimarisinde önemli değişiklikler vardır. Bu bölümde, uygulamalarınızı SDK'nın en son sürümüne geçirmenize yardımcı olacak önemli değişiklikleri özetleyeceğiz.

Uyarı

En son Python SDK sürümünde (1.0.0), API'de, önceki sürümlerden (<=0.5.1) geriye dönük uyumluluğu bozan değişiklikler vardır.

Aşağıdaki diyagramda, önceki mimarinin modelleri ve sohbet tamamlamaları gibi çıkarımları yönetmek için rest web sunucusu kullanmaya nasıl dayandığı gösterilmektedir:

Foundry Local için önceki mimarinin diyagramı.

SDK, makinede Foundry Yerel CLI yürütülebilir dosyasını bulmak, web sunucusunu başlatmak ve ardından HTTP üzerinden onunla iletişim kurmak için bir Uzak Yordam Çağrısı (RPC) kullanacaktır. Bu mimarinin aşağıdakiler dahil olmak üzere çeşitli sınırlamaları vardır:

  • Web sunucusu yaşam döngüsünü yönetme karmaşıklığı.
  • Zorlu dağıtım: Son kullanıcıların makinelerinde ve uygulamanızda Foundry Yerel CLI'sinin yüklü olması gerekiyordu.
  • CLI ve SDK'nın sürüm yönetimi uyumluluk sorunlarına yol açabilir.

Bu sorunları gidermek için yeniden tasarlanan mimari daha kolay bir yaklaşım kullanır. Yeni mimari aşağıdaki gibidir:

Foundry Local için yeni mimarinin diyagramı.

Bu yeni mimaride:

  • Uygulamanız bağımsızdır. Dökümhane Yerel CLI'sinin son kullanıcının makinesine ayrı olarak yüklenmesi gerekmez ve bu da uygulamaları dağıtmanızı kolaylaştırır.
  • REST web sunucusu isteğe bağlıdır. HTTP üzerinden iletişim kuran diğer araçlarla tümleştirmek istiyorsanız web sunucusunu kullanmaya devam edebilirsiniz.
  • SDK, sohbet tamamlamaları ve sesli transkripsiyonlar için yerel desteğe sahiptir ve daha az bağımlılıkla konuşma yapay zekası uygulamaları oluşturmanıza olanak tanır.

API değişiklikleri

En son sürüm daha nesne odaklı ve oluşturulabilir bir API sağlar. Ana giriş noktası sınıf olmaya FoundryLocalManager devam eder, ancak başlatma düzeni, model yönetimi ve çıkarım önemli ölçüde değişmiştir.

İlkel Önceki Sürüm (foundry-local) Geçerli Sürüm (foundry-local-sdk)
Paket pip install foundry-local pip install foundry-local-sdk
İthalat from foundry_local import FoundryLocalManager from foundry_local_sdk import Configuration, FoundryLocalManager
Configuration Mevcut Değil config = Configuration(app_name="app-name")
YöneticiYi Al manager = FoundryLocalManager(alias) FoundryLocalManager.initialize(config)
manager = FoundryLocalManager.instance
Kataloğu Al Mevcut Değil catalog = manager.catalog
Modelleri Listele manager.list_catalog_models() catalog.list_models()
Modeli Al manager.get_model_info(alias) catalog.get_model(alias)
Model indirme manager.download_model(alias) model.download(progress_callback)
Model yükleme manager.load_model(alias) model.load()
Modeli kaldırma manager.unload_model(alias) model.unload()
Yüklenen modelleri listeleme manager.list_loaded_models() catalog.get_loaded_models()
Önbelleğe alınan modelleri listeleme manager.list_cached_models() catalog.get_cached_models()
Önbellek konumu manager.get_cache_location() config.model_cache_dir
Hizmeti başlat manager.start_service() manager.start_web_service()
Hizmet uç noktası manager.endpoint manager.urls

API, Foundry Local'ın web sunucusu, günlük, önbellek konumu ve model değişkeni seçimi üzerinden daha yapılandırılabilir olmasını sağlar. Örneğin, Configuration sınıfı uygulama adını, günlük seviyesini, web sunucusu URL'lerini ve uygulama verileri, model önbelleği ve günlükler için dizinleri ayarlamanıza olanak tanır:

from foundry_local_sdk import Configuration

config = Configuration(
    app_name="app-name",
    log_level="info",
    web={"urls": "http://127.0.0.1:55588"},
    model_cache_dir="./foundry_local_data/model_cache",
)

Referanslar

Rust SDK Geçiş Kılavuzu

Cihaz içi yapay zeka kullanarak uygulama gönderme becerinizi geliştirmek için Rust SDK mimarisinde önemli değişiklikler vardır. Bu bölümde, uygulamalarınızı SDK'nın en son sürümüne geçirmenize yardımcı olacak önemli değişiklikleri özetleyeceğiz.

Uyarı

En son Rust SDK sürümünde (1.0.0) önceki sürümden API'de önemli değişiklikler vardır. foundry-local olan kasa adı foundry-local-sdk olarak değiştirildi.

Aşağıdaki diyagramda, önceki mimarinin modelleri ve sohbet tamamlamaları gibi çıkarımları yönetmek için rest web sunucusu kullanmaya nasıl dayandığı gösterilmektedir:

Foundry Local için önceki mimarinin diyagramı.

SDK, makinede Foundry Local CLI yürütülebilir dosyasını bulmak, web sunucusunu başlatmak ve ardından HTTP üzerinden iletişim kurmak için Uzaktan Yordam Çağrısı (RPC) kullanacaktır. Bu mimarinin aşağıdakiler dahil olmak üzere çeşitli sınırlamaları vardır:

  • Web sunucusu yaşam döngüsünü yönetme karmaşıklığı.
  • Zorlu dağıtım: Son kullanıcıların makinelerinde ve uygulamanızda Foundry Yerel CLI'sinin yüklü olması gerekiyordu.
  • CLI ve SDK'nın sürüm yönetimi uyumluluk sorunlarına yol açabilir.

Bu sorunları gidermek için yeniden tasarlanan mimari daha kolay bir yaklaşım kullanır. Yeni mimari aşağıdaki gibidir:

Foundry Local için yeni mimarinin diyagramı.

Bu yeni mimaride:

  • Uygulamanız bağımsızdır. Dökümhane Yerel CLI'sinin son kullanıcının makinesine ayrı olarak yüklenmesi gerekmez ve bu da uygulamaları dağıtmanızı kolaylaştırır.
  • REST web sunucusu isteğe bağlıdır. HTTP üzerinden iletişim kuran diğer araçlarla tümleştirmek istiyorsanız web sunucusunu kullanmaya devam edebilirsiniz.
  • SDK, sohbet tamamlamaları ve sesli transkripsiyonlar için yerel desteğe sahiptir ve daha az bağımlılıkla konuşma yapay zekası uygulamaları oluşturmanıza olanak tanır.

API değişiklikleri

En son sürüm daha nesne odaklı ve oluşturulabilir bir API sağlar. Oluşturucu deseni yapılandırma tabanlı bir yaklaşımla değiştirildi ve model yönetimi artık ayrılmış Model nesneler kullanıyor.

İlkel Önceki Sürüm (foundry-local) Geçerli Sürüm (foundry-local-sdk)
Sandık foundry-local foundry-local-sdk
Configuration Mevcut Değil FoundryLocalConfig::new("app-name")
YöneticiYi Al FoundryLocalManager::builder().build().await? FoundryLocalManager::create(config)?
Kataloğu Al Mevcut Değil manager.catalog()
Modelleri Listele manager.list_catalog_models().await? manager.catalog().get_models().await?
Modeli Al manager.get_model_info(alias).await? manager.catalog().get_model(alias).await?
Model indirme manager.download_model(alias).await? model.download(callback).await?
Model yükleme manager.load_model(alias).await? model.load().await?
Modeli kaldırma manager.unload_model(alias).await? model.unload().await?
Yüklenen modelleri listeleme manager.list_loaded_models().await? manager.catalog().get_loaded_models().await?
Önbelleğe alınan modelleri listeleme manager.list_cached_models().await? manager.catalog().get_cached_models().await?
Hizmeti başlat manager.start_service()? manager.start_web_service().await?
Bitiş noktası manager.endpoint()? manager.urls()
HTTP çağrıları reqwest::Client (manuel REST) Yerel SDK: model.create_chat_client()

Yeni SDK yerel sohbet ve ses istemcileri sağlayarak çoğu durumda el ile HTTP isteklerine olan ihtiyacı ortadan kaldırır:

use foundry_local_sdk::{FoundryLocalConfig, FoundryLocalManager};

let config = FoundryLocalConfig::new("app-name");
let manager = FoundryLocalManager::create(config)?;

let model = manager.catalog().get_model("qwen2.5-0.5b").await?;
model.download(None).await?;
model.load().await?;

// Native chat client - no HTTP server needed
let client = model.create_chat_client().temperature(0.7).max_tokens(256);

Referanslar