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 kullanan yapay zeka özelliklerini basit ve sezgisel bir API aracılığıyla sunmanızı 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#, 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
dotnet add package Microsoft.AI.Foundry.Local
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.19041.0</TargetFramework>
<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>
<ItemGroup>
<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 |
Örneğin gerektirdiği .NET sürümünü hedefler. |
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 |
Windows, macOS ve Linux için Foundry Yerel SDK paketi. |
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
npm install foundry-local-sdk 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
pip install foundry-local-sdk 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
cargo add foundry-local-sdk
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 |
Diğer adlara göre 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ıt parçalarını akışla ilet. |
İ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ı yazıya dökme. Alanı olan bir text nesne döndürür. |
Referanslar:
C++ SDK referansı
Prerequisites
C++ SDK, yerel Foundry Local çalışma zamanını temel alan yalnızca başlık dosyasından oluşan bir sarmalayıcı sağlar. Dağıtılan uygulamanız Için Foundry Yerel CLI veya .NET çalışma zamanı gerekmez.
Yapılandırılmış bir CMake projesiyle başlamak için yerel sohbet örneğini kopyalayın:
git clone https://github.com/microsoft-foundry/foundry-samples.git
cd foundry-samples/samples/cpp/foundry-local/native-chat-completions
C++ örnekleri şunları gerektirir:
Örneği yapılandırın ve derleyin:
cmake -S . -B build
cmake --build build --config Release
Yapılandırma sırasında örnek, Microsoft.AI.Foundry.Local.Runtime NuGet paketinin 2.2.1 sürümünü build/_packages geri yükler. Paket Windows, Linux ve macOS için C++ başlık dosyalarını ve yerel kitaplıkları içerir. Ayrı bir WinML paketine ihtiyacınız yoktur.
CMake yapılandırması, işletim sisteminiz ve mimariniz için çalışma zamanı varlıklarını seçer ve gerekli yerel kitaplıkları yürütülebilir dosyanın yanına kopyalar. macOS ve Linux'ta, build içinden yürütülebilir dosyayı çalıştırın. Windows'ta, build konumundaki .exe dosyasını çalıştırın.
Uygulamanızın işletim sistemi ve mimarisiyle eşleşen yerel varlıkları seçin:
| İşletim Sistemi | Architecture | Çalışma zamanı tanımlayıcısı (RID) |
|---|---|---|
| Windows | x64 veya ARM64 |
win-x64 veya win-arm64 |
| Linux | x64 veya ARM64 |
linux-x64 veya linux-arm64 |
| macOS | Apple silikon (ARM64) | osx-arm64 |
ekle
build/_packages/Microsoft.AI.Foundry.Local.Runtime.2.2.1/build/native/include öğesini derleyicinizin include yoluna ekleyin. Paketin içindeki yerel kitaplığı bağlayın
build/_packages/Microsoft.AI.Foundry.Local.Runtime.2.2.1/runtimes/<rid>/native dizin:
-
foundry_local.libWindows'ta. -
libfoundry_local.solinux'ta. -
libfoundry_local.dylibmacOS'ta.
Eşleşen yerel çalışma zamanını ve bağımlılık kitaplıklarını yürütülebilir dosyanızın yanına veya platformun kitaplık arama yoluna dağıtın. Geri yüklenen paket sürümlerini birlikte tutun. Farklı sürümlerdeki üst bilgileri ve yerel kitaplıkları karıştırmayın.
Hızlı Başlangıç
SDK'yi başlatmak ve katalogdaki modelleri saymak için örneğin main.cpp öğesini aşağıdaki kodla değiştirin:
#include <foundry_local/foundry_local_cpp.h>
#include <iostream>
using namespace foundry_local;
int main() {
try {
Manager manager{Configuration("app-name")};
auto models = manager.GetCatalog().GetModels();
std::cout << "Models available: " << models.size() << "\n";
} catch (const Error& error) {
std::cerr << "Foundry Local error [" << error.Code()
<< "]: " << error.what() << "\n";
return 1;
}
return 0;
}
Örnek, Models available: öğesini ve ardından kataloğun model sayısını yazdırır.
Bir modeli indirmez veya yüklemez. Katalog, model veya ondan alınan meta veri nesnelerini kullanırken yöneticiyi canlı tutun.
Referans: Manager, Catalog ve Configuration için C++ sarmalayıcı bildirimleri.
Çekirdek API
Sarmalayıcı, nesneler kapsam dışına çıktığında yerel tanıtıcıları serbest bırakmak için resource acquisition is initialization (RAII) kullanır.
| API | Açıklama |
|---|---|
Manager{Configuration("app-name")} |
Bir yönetici nesnesini uygulama adıyla başlatın. |
manager.GetCatalog() |
Model kataloğunu alın. |
catalog.GetModels() |
Katalogdaki modelleri listeleyin. |
catalog.GetModel(alias) |
Takma ada göre model arayın. Kullanmadan önce döndürülen işaretçiyi denetleyin. |
model->Download() |
Modeli yerel önbelleğe indirin. |
model->Load() |
Çıkarım için bir model yükleyin. |
model->Unload() |
Modeli bellekten kaldırın. |
ChatSession::ProcessRequest(request) |
Bir sohbet isteği çalıştırın ve bir yanıt döndürün. |
API referansı ve örnekleri
Tam API ve çıkarım iş akışları için public header dosyasını ve bakımlı örnekleri kullanın: