Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Foundry Local SDK lehetővé teszi olyan AI-funkciók szállítását az alkalmazásokban, amelyek képesek helyi AI-modellek használatára egy egyszerű és intuitív API-val. Az SDK elvonja az AI-modellek kezelésének összetettségeit, és zökkenőmentes felületet biztosít a helyi AI-képességek alkalmazásokba való integrálásához. Ez a referencia a C#, JavaScript, Python és Rust SDK-implementációit ismerteti.
Az SDK-hoz nem szükséges telepíteni a Foundry helyi parancssori felületét a végfelhasználói gépre, így a felhasználók számára további beállítási lépések nélkül is szállíthatja az alkalmazásokat – az alkalmazások önállóak. Az Foundry Local SDK további előnyei a következők:
- Hardverészlelés és -optimalizálás: Automatikus képességfelmérés GPU, NPU és CPU esetén.
- Execution provider management (Windows): A megfelelő ONNX futtatókörnyezeti végrehajtási szolgáltatók (CUDA, Vitis, QNN, OpenVINO, TensorRT) automatikus letöltése és regisztrálása az eszköz képességei alapján.
- Metal support via WebGpu (macOS): Natív támogatás modellek futtatásához az Apple Silicon-en optimalizált teljesítménnyel.
- Modell beszerzése: Zökkenőmentes letöltés az Foundry Modellkatalógusból verziószámozással, frissítésekkel és automatikusan hardveroptimalizált modellkiválasztással tartalék támogatással.
- Hatékony futtatókörnyezet: Körülbelül 20 MB-ot ad hozzá az alkalmazás méretéhez, mobileszközökön és asztali számítógépeken fut.
- OpenAI API-kompatibilitás: Egyszerű integráció az OpenAI-modellekkel és -eszközökkel.
- Választható REST-kiszolgáló: Futtassa a Foundry Local parancsot helyi szolgáltatásként, amelyet más alkalmazások is elérhetnek.
C# SDK-referencia
Csomagok telepítése
Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.
dotnet add package Microsoft.AI.Foundry.Local.WinML
dotnet add package OpenAI
A GitHub adattár C#-mintái előre konfigurált projektek. Ha az alapoktól épít, olvassa el a Foundry Local SDK-referenciáját , amelyből megtudhatja, hogyan állíthatja be a C#-projektet a Foundry Local használatával.
Projektkonfiguráció
A mintaadattárak olyan fájlokat .csproj tartalmaznak, amelyek automatikusan kezelik a platformészlelést. Ha az alapoktól épít egy projektet, használja ezt a konfigurációt referenciaként:
<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>net8.0-windows10.0.18362.0</TargetFramework>
<Platforms>ARM64;x64</Platforms>
<WindowsPackageType>None</WindowsPackageType>
<EnableCoreMrtTooling>false</EnableCoreMrtTooling>
</PropertyGroup>
<!-- Non-Windows: standard .NET -->
<PropertyGroup Condition="!$([MSBuild]::IsOSPlatform('Windows'))">
<TargetFramework>net8.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>
Az alábbi táblázat a projekt legfontosabb beállításait ismerteti:
| Setting | Leírás |
|---|---|
TargetFramework |
Windows net9.0-windows10.0.26100 WinML hardvergyorsítást célozza meg. Más platformokon a célokat .net9.0 |
WindowsAppSDKSelfContained |
Állítsa false a rendszer által telepített Windows App SDK használatára ahelyett, hogy összekapcsolja. |
WindowsPackageType |
None Csomagolatlan asztali alkalmazásként való buildelésre van beállítva (MSIX-csomagolás nélkül). |
EnableCoreMrtTooling |
Állítsa be az false MRT Core erőforrás-eszközkészlet letiltására, amelyre nincs szükség a konzolalkalmazásokhoz. |
RuntimeIdentifier |
Az aktuális SDK futtatókörnyezet-azonosítójának alapértelmezett értéke, biztosítva, hogy a megfelelő platform bináris fájljai legyenek kiválasztva. |
Microsoft.AI.Foundry.Local.WinML |
Windows csak WinML-t használó csomag hardveres gyorsításhoz és automatikus végrehajtási szolgáltató-felügyelethez. |
Microsoft.AI.Foundry.Local |
Platformfüggetlen csomag macOS, Linux és Windows rendszerekhez, WinML nélkül. |
Microsoft.ML.OnnxRuntime.Gpu / OnnxRuntimeGenAI.Cuda |
Linux GPU-támogatási csomagok CUDA-kompatibilis hardverekhez. |
gyorskonfigurálás
Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.
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()}");
Ez a példa a hardverhez elérhető modellek számát nyomtatja ki.
Példák
- A Foundry Local C# SDK használatát bemutató mintaalkalmazásokért lásd a Foundry Local C# SDK-mintákat GitHub adattárat.
API-referencia
- Az Foundry Local C# SDK-val kapcsolatos további részletekért olvassa el az Foundry Local C# SDK API-referenciáját.
Natív hangátírási API
A C# SDK tartalmaz egy natív hangügyfélt, amely hangfájlokat ír át az eszközön a Whisper-modellek használatával. Ez a folyamat közbeni következtetést futtatja a REST-webkiszolgáló nélkül.
Hangügyfél lekérése
A Whisper-modell betöltése után kérje le az audio klienst:
var audioClient = await model.GetAudioClientAsync();
Hangátírási módszerek
| Módszer | Signature | Leírás |
|---|---|---|
TranscribeAudioStreamingAsync() |
(string audioFilePath, CancellationToken ct) => IAsyncEnumerable<TranscriptionChunk> |
A streamek átiratának eredményeit részenként továbbítja. Minden adattömbnek van tulajdonsága Text . |
AudioClient-beállítások
| Ingatlan | Típus | Leírás |
|---|---|---|
Language |
string |
ISO 639-1 nyelvi kód (például "en"). Javítja a pontosságot. |
Temperature |
float |
Mintavételi hőmérséklet (0,0–1,0). Az alacsonyabb értékek determinisztikusabbak. |
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);
}
Referenciák:
JavaScript SDK-referencia
Csomagok telepítése
Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.
npm install foundry-local-sdk-winml openai
gyorskonfigurálás
Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.
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}`);
}
Ez a példa a hardverhez elérhető modellek listáját adja ki.
Példák
- A Foundry Local JavaScript SDK használatát bemutató mintaalkalmazásokért lásd a Foundry Local JavaScript SDK-mintákat GitHub adattárat.
API-referencia
- A Foundry Local JavaScript SDK-val kapcsolatos további részletekért olvassa el a Foundry Local JavaScript SDK API-referenciaját.
Hivatkozások
Python SDK-referencia
Csomagok telepítése
Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.
pip install foundry-local-sdk-winml openai
gyorskonfigurálás
Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.
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())
Ez a példa a hardverhez elérhető modellek számát nyomtatja ki.
Példák
- A Foundry Local Python SDK használatát bemutató mintaalkalmazásokért lásd a Foundry Local SDK-mintákat GitHub adattárat.
Konfiguráció
Az Configuration osztály lehetővé teszi az SDK viselkedésének testreszabását:
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"},
)
| Paraméter | Típus | Leírás |
|---|---|---|
app_name |
str |
Az alkalmazás neve. |
log_level |
str |
Naplózási szint (például "info", "debug"). |
model_cache_dir |
str |
Gyorsítótárazott modellek könyvtára. |
web |
dict |
Webszolgáltatás konfigurálása kulccsal urls . |
Core API
| Módszer | Leírás |
|---|---|
FoundryLocalManager.initialize(config) |
Inicializálja a singleton managert egy Configuration. |
FoundryLocalManager.instance |
Hozzáférés az inicializált kezelőpéldányhoz. |
manager.catalog.list_models() |
Listázz minden elérhető modellt a katalógusban. |
manager.catalog.get_model(alias) |
Modell lekérése alias alapján. |
manager.catalog.get_cached_models() |
Modellek listázása a helyi gyorsítótárban. |
manager.catalog.get_loaded_models() |
A jelenleg betöltött modellek listázása. |
model.download(progress_callback) |
Töltse le a modellt (gyorsítótárazás esetén kihagyja). |
model.load() |
Töltse be a modellt a következtetéshez. |
model.unload() |
Távolítsa el a modellt. |
model.is_cached |
Ellenőrizze, hogy a modell helyileg van-e gyorsítótárazva. |
model.is_loaded |
Ellenőrizze, hogy a modell be van-e töltve. |
Natív csevegésvégzítési API
A modell betöltése után szerezze be a csevegőügyfélt:
client = model.get_chat_client()
| Módszer | Leírás |
|---|---|
client.complete_chat(messages) |
Teljes csevegési válasz létrehozása. |
client.complete_streaming_chat(messages) |
Csevegési választömbök streamelése. |
Natív hangátírási API
A Whisper-modell betöltése után kérje le az audio klienst:
audio_client = model.get_audio_client()
| Módszer | Leírás |
|---|---|
audio_client.transcribe(file_path) |
Hangfájl átírása. Tulajdonsággal rendelkező text objektumot ad vissza. |
Referenciák:
Rust SDK-referencia
Csomagok telepítése
Ha Windows fejleszt vagy szállít, válassza a Windows lapot. A Windows csomag integrálható a Windows ML futtatókörnyezettel – ugyanazt az API-felületet biztosítja a hardveres gyorsítás szélesebb körű használatával.
cargo add foundry-local-sdk --features winml
cargo add tokio --features full
cargo add tokio-stream anyhow
gyorskonfigurálás
Ezzel a kódrészletel ellenőrizheti, hogy az SDK képes-e inicializálni és elérni a helyi modellkatalógust.
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(())
}
Ez a példa a hardverhez elérhető modellek számát nyomtatja ki.
Példák
- A Foundry Local Rust SDK használatát bemutató mintaalkalmazásokért tekintse meg a Foundry Local SDK Samples GitHub adattárat.
Konfiguráció
A FoundryLocalConfig szerkezet lehetővé teszi az SDK viselkedésének testreszabását:
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");
Core API
| Módszer | Leírás |
|---|---|
FoundryLocalManager::create(config) |
Hozzon létre egy új kezelőt egy FoundryLocalConfig. |
manager.catalog().get_models().await |
Az összes elérhető modell listázása. |
manager.catalog().get_model(alias).await |
Modell lekérése alias alapján. |
manager.catalog().get_cached_models().await |
Modellek listázása a helyi gyorsítótárban. |
manager.catalog().get_loaded_models().await |
A jelenleg betöltött modellek listázása. |
model.download(callback).await |
Töltse le a modellt (gyorsítótárazás esetén kihagyja). |
model.load().await |
Töltse be a modellt a következtetéshez. |
model.unload().await |
Távolítsa el a modellt. |
Natív csevegésvégzítési API
A modell betöltése után hozzon létre egy csevegőügyfélt az opcionális beállításokkal:
let client = model.create_chat_client()
.temperature(0.7)
.max_tokens(256);
| Módszer | Leírás |
|---|---|
client.complete_chat(&messages, tools).await |
Teljes csevegési válasz létrehozása. |
client.complete_streaming_chat(&messages, tools).await |
Csevegési választömbök streamelése. |
Üzenettípusok: ChatCompletionRequestSystemMessage, ChatCompletionRequestUserMessage. ChatCompletionRequestMessage
Natív hangátírási API
A Whisper-modell betöltése után hozzon létre egy hangügyfélt:
let audio_client = model.create_audio_client();
| Módszer | Leírás |
|---|---|
audio_client.transcribe(file_path).await |
Hangfájl átírása. Mezővel rendelkező text objektumot ad vissza. |
Referenciák: