중요합니다
- Foundry Local은 미리 보기로 제공됩니다. 공개 미리 보기 릴리스는 활성 배포 중인 기능에 대한 초기 access 제공합니다.
- GA(일반 공급) 전에는 기능, 방식 및 프로세스가 변경되거나 기능이 제한될 수 있습니다.
Foundry 로컬 SDK를 사용하면 간단하고 직관적인 API를 통해 로컬 AI 모델을 활용할 수 있는 AI 기능을 애플리케이션에 제공할 수 있습니다. SDK는 AI 모델 관리의 복잡성을 추상화하고 로컬 AI 기능을 애플리케이션에 통합하기 위한 원활한 환경을 제공합니다. 이 참조는 JavaScript 및 C#에 대한 SDK 구현을 문서화합니다. 향후 추가 언어가 추가될 예정입니다.
SDK는 최종 사용자 컴퓨터에 Foundry 로컬 CLI를 설치할 필요가 없으므로 사용자에 대한 추가 설정 단계 없이 애플리케이션을 배송할 수 있습니다. 애플리케이션은 자체 포함됩니다. Foundry 로컬 SDK의 추가 이점은 다음과 같습니다.
- 하드웨어 검색 및 최적화: GPU, NPU 및 CPU에 대한 자동 기능 평가입니다.
- 실행 공급자 관리(Windows): 디바이스 기능에 따라 적절한 ONNX 런타임 실행 공급자(CUDA, Vitis, QNN, OpenVINO, TensorRT)의 자동 다운로드 및 등록
- WebGpu(macOS)을 통한 Metal 지원: 최적화된 성능으로 Apple Silicon에서 모델을 실행하는 기본 지원입니다.
- 모델 획득: Foundry 모델 카탈로그에서 버전 관리 및 업데이트와 함께 자동으로 하드웨어 최적화된 모델을 선택하여, 원활하게 다운로드하고 대체 지원을 제공합니다.
- 효율적인 런타임: 앱 크기에 20MB를 추가하고 <휴대폰에서 데스크톱에 이르는 디바이스에서 실행됩니다.
- OpenAI API 호환성: OpenAI 모델 및 도구와 쉽게 통합합니다.
- 선택적 REST 서버: 다른 애플리케이션에서 액세스할 수 있는 로컬 서비스로 Foundry Local을 실행합니다.
JavaScript SDK 참조
프로젝트 설정
Foundry 로컬 SDK의 상위 수준 아키텍처는 다음과 같습니다.
SDK는 JavaScript 개발자에게 보다 사용자에게 친숙한 인터페이스를 제공하는 Foundry Local Core C API(.dll/.so/.dylib)를 중심으로 하는 경량 래퍼입니다. SDK는 네이티브 라이브러리 로드, 메모리 관리 및 JavaScript와 C 간의 데이터 형식 변환을 처리합니다. Foundry Local Core C API에는 두 가지 버전이 있지만 API 표면은 동일합니다.
- WinML(WindowsML) - WindowsML을 사용하여 사용 가능한 하드웨어에 필요한 드라이버 및 실행 공급자를 획득하는 Windows 전용입니다. 이 옵션은 다양한 하드웨어와 더 나은 성능 및 호환성을 제공하기 때문에 Windows 사용자에게 권장되는 옵션입니다.
- 플랫폼 간 - Windows, macOS 및 Linux에서 사용할 수 있습니다. macOS 장치 중 Apple Silicon이 있는 경우, 크로스 플랫폼 SDK는 하드웨어 가속을 위해 ONNX 런타임 WebGPU 실행 제공자를 통해 Apple의 Metal 프레임워크를 사용합니다.
프로젝트에 Foundry 로컬 SDK 패키지를 설치할 때 WinML 또는 플랫폼 간 버전을 설치하도록 선택할 수 있습니다.
Windows별 또는 플랫폼 간(macOS/Linux/Windows) 지침에 따라 JavaScript 프로젝트에서 Foundry Local을 사용합니다.
- 새 JavaScript 프로젝트를 만듭니다.
mkdir app-name cd app-name npm init -y npm pkg set type=module - Foundry 로컬 SDK 패키지를 설치합니다.
npm install --winml foundry-local-sdk npm install openai
빠른 시작
이 코드 조각을 사용하여 SDK가 로컬 모델 카탈로그를 초기화하고 액세스할 수 있는지 확인합니다.
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}`);
}
이 예제에서는 하드웨어에 사용 가능한 모델 목록을 출력합니다.
견본
- Foundry 로컬 JavaScript SDK를 사용하는 방법을 보여 주는 샘플 애플리케이션은 Foundry 로컬 JavaScript SDK 샘플 GitHub 리포지토리를 참조하세요.
API 참조
- Foundry 로컬 JavaScript SDK에 대한 자세한 내용은 Foundry 로컬 JavaScript SDK API 참조를 참조하세요.
참조
C# SDK 참조
프로젝트 설정 가이드
Foundry 로컬 SDK에 대한 두 가지 NuGet 패키지(WinML 및 플랫폼 간 패키지)는 API 표면이 동일하지만 다른 플랫폼에 최적화되어 있습니다.
-
Windows: WinML(Windows Machine Learning) 프레임워크를 사용하는 Windows 애플리케이션과 관련된
Microsoft.AI.Foundry.Local.WinML패키지를 사용합니다. -
플랫폼 간: 플랫폼 간 애플리케이션(Windows, Linux, macOS)에 사용할 수 있는 패키지를 사용합니다
Microsoft.AI.Foundry.Local.
대상 플랫폼에 따라 다음 지침에 따라 새 C# 애플리케이션을 만들고 필요한 종속성을 추가합니다.
다음 Windows별 또는 플랫폼 간(macOS/Linux/Windows) 지침에 따라 C# 프로젝트에서 Foundry Local을 사용합니다.
- 새 C# 프로젝트를 만들고 그 안으로 이동합니다.
dotnet new console -n app-name cd app-name -
app-name.csproj파일을 열고 편집하여 다음을 수행합니다.<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net9.0-windows10.0.26100</TargetFramework> <RootNamespace>app-name</RootNamespace> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <WindowsAppSDKSelfContained>false</WindowsAppSDKSelfContained> <WindowsPackageType>None</WindowsPackageType> <EnableCoreMrtTooling>false</EnableCoreMrtTooling> </PropertyGroup> <PropertyGroup Condition="'$(RuntimeIdentifier)'==''"> <RuntimeIdentifier>$(NETCoreSdkRuntimeIdentifier)</RuntimeIdentifier> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AI.Foundry.Local.WinML" Version="0.9.0" /> <PackageReference Include="Microsoft.Extensions.Logging" Version="9.0.10" /> <PackageReference Include="OpenAI" Version="2.5.0" /> </ItemGroup> </Project> - 프로젝트 루트에 다음 내용을 포함하는
nuget.config파일을 만들어 패키지가 올바르게 복원되도록 하세요.<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> <add key="ORT" value="https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT/nuget/v3/index.json" /> </packageSources> <packageSourceMapping> <packageSource key="nuget.org"> <package pattern="*" /> </packageSource> <packageSource key="ORT"> <package pattern="*Foundry*" /> </packageSource> </packageSourceMapping> </configuration>
메모
Microsoft.AI.Foundry.Local NuGet 패키지는 net8.0을 대상으로 합니다. 와 함께. NET의 전방 호환성은 .NET 9, .NET 10 이상을 대상으로 하는 프로젝트에서 원활하게 작동하며 다른 구성은 필요하지 않습니다. SDK는 .NET 8 API만 사용하고 프레임워크별 코드 경로가 없으므로 앱이 대상으로 하는 런타임에 관계없이 동작이 동일합니다. 가장 광범위한 설치 기반이 있는 현재 LTS(장기 지원) 릴리스이므로 .NET 8을 대상으로 합니다.
빠른 시작
이 코드 조각을 사용하여 SDK가 로컬 모델 카탈로그를 초기화하고 액세스할 수 있는지 확인합니다.
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()}");
다음은 하드웨어에 사용할 수 있는 모델 수를 인쇄하는 예제입니다.
견본
- Foundry 로컬 C# SDK를 사용하는 방법을 보여 주는 샘플 애플리케이션은 Foundry 로컬 C# SDK 샘플 GitHub 리포지토리를 참조하세요.
API 참조
- Foundry 로컬 C# SDK에 대한 자세한 내용은 Foundry 로컬 C# SDK API 참조를 참조하세요.