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.
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
- Foundry Local C# SDK'sının nasıl kullanılacağını gösteren örnek uygulamalar için bkz. Foundry Local C# SDK Örnekleri GitHub deposu.
API referansı
- Foundry Local C# SDK hakkında daha fazla bilgi için Foundry Local C# SDK API Referansına bakın.
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
- Foundry Local JavaScript SDK'sının nasıl kullanılacağını gösteren örnek uygulamalar için bkz. Foundry Yerel JavaScript SDK Örnekleri GitHub deposu.
API referansı
- Dökümhane Yerel JavaScript SDK'sı hakkında daha fazla bilgi için Bkz. Döküm Yerel JavaScript SDK API Başvurusu.
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
- Foundry Yerel Python SDK'sının nasıl kullanılacağını gösteren örnek uygulamalar için bkz. Foundry Yerel SDK Örnekleri GitHub deposu.
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
- Foundry Local Rust SDK'sının nasıl kullanılacağını gösteren örnek uygulamalar için bkz. Foundry Yerel SDK Örnekleri GitHub deposu.
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: