Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
- Foundry Local доступен в предварительной версии. Общедоступные предварительные версии предоставляют ранний доступ к функциям, которые находятся в процессе активного развертывания.
- Функции, подходы и процессы могут изменяться или иметь ограниченные возможности до общедоступной доступности.
Локальный пакет SDK Foundry позволяет отправлять функции ИИ в приложениях, которые могут использовать локальные модели ИИ с помощью простого и интуитивно понятного API. Пакет SDK абстрагирует сложности управления моделями ИИ и обеспечивает простой интерфейс для интеграции локальных возможностей искусственного интеллекта в ваши приложения. В этом справочнике описаны реализации пакета SDK для JavaScript и C#. В будущем будут добавлены дополнительные языки.
Пакет SDK не требует установки локального интерфейса командной строки Foundry на компьютере конечных пользователей, что позволяет отправлять приложения без дополнительных действий по настройке для пользователей — ваши приложения являются автономными. Дополнительные преимущества локального пакета SDK для Foundry:
- Обнаружение оборудования и оптимизация: автоматическая оценка возможностей для GPU, NPU и ЦП.
- Управление поставщиком выполнения (Windows): автоматическая загрузка и регистрация соответствующих поставщиков выполнения ONNX (CUDA, Vitis, QNN, OpenVINO, TensorRT) на основе возможностей устройства.
- Поддержка металла с помощью WebGpu (macOS): встроенная поддержка запуска моделей в Apple Silicon с оптимизированной производительностью.
- Приобретение модели. Простое скачивание из каталога моделей Foundry с управлением версиями, обновлениями и автоматическим выбором оптимизированной для оборудования модели с резервной поддержкой.
- Эффективная среда выполнения: добавляет <20 МБ к размеру приложения, выполняется на устройствах с мобильных телефонов на настольные компьютеры.
- Совместимость API OpenAI: простая интеграция с моделями и инструментами OpenAI.
- Необязательный сервер REST: запуск Foundry Local в качестве локальной службы, доступной другими приложениями.
Справочник по пакету SDK для JavaScript
Настройка проекта
Высокоуровневая архитектура локального пакета SDK Foundry выглядит следующим образом:
Пакет SDK — это облегчающая оболочка для API Foundry Local Core C (.dll/.so/.dylib), которая предоставляет более удобный интерфейс для разработчиков JavaScript. Пакет SDK обрабатывает загрузку собственной библиотеки, управление памятью и преобразование типов данных между JavaScript и C. API Foundry Local Core C имеет два варианта, но одна и та же область API:
- WindowsML (WinML) — технология, специфичная для Windows, использующая WindowsML для получения необходимых драйверов и провайдеров выполнения для доступного оборудования. Это рекомендуемый вариант для пользователей Windows, так как он обеспечивает более высокую производительность и совместимость с широким спектром оборудования.
- Кроссплатформенный — можно использовать в Windows, macOS и Linux. Следует отметить, что на устройствах macOS с Apple Silicon кроссплатформенный пакет SDK будет использовать платформу Apple Metal для аппаратного ускорения с помощью поставщика выполнения WebGPU onNX.
При установке пакета Sdk для Foundry Local в проект можно установить версию WinML или кроссплатформенную версию.
Используйте Foundry Local в проекте JavaScript, выполнив следующие инструкции для Windows или кроссплатформенные (macOS/Linux/Windows):
- Создайте проект JavaScript:
mkdir app-name cd app-name npm init -y npm pkg set type=module - Установите пакет локального пакета SDK для Foundry:
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}`);
}
В этом примере выводится список доступных моделей для оборудования.
Образцы
- Примеры приложений, демонстрирующие использование локального пакета SDK JavaScript для Foundry, можно найти в репозитории GitHub с образцами локального SDK JavaScript для Foundry.
Справочник по API
- Дополнительные сведения о пакете Local JavaScript SDK для Foundry см. в справочнике по API Local JavaScript SDK для Foundry.
Ссылки
Справочник по пакету SDK для C#
Руководство по настройке проекта
Существует два пакета NuGet для локального SDK Foundry — пакет WinML и кроссплатформенный пакет, которые имеют один и тот же интерфейс API, но оптимизированы для разных платформ.
-
Windows: использует пакет
Microsoft.AI.Foundry.Local.WinML, относящийся к приложениям Windows, использующим платформу Windows Machine Learning (WinML). -
Кроссплатформенный
Microsoft.AI.Foundry.Local: использует пакет, который можно использовать для кроссплатформенных приложений (Windows, Linux, macOS).
В зависимости от целевой платформы выполните следующие инструкции, чтобы создать новое приложение C# и добавить необходимые зависимости:
Используйте Foundry Local в проекте C#, следуя инструкциям, специфичным для Windows, или кроссплатформенным (macOS/Linux/Windows).
- Создайте проект 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>
Замечание
Пакет NuGet Microsoft.AI.Foundry.Local предназначен для net8.0. Прямая совместимость .NET обеспечивает бесперебойную работу в проектах, предназначенных для .NET 9, .NET 10 и более поздних версий без необходимости дополнительной настройки. Пакет SDK использует только API .NET 8 и не содержит путей кода для конкретной платформы, поэтому поведение идентично независимо от целевой среды выполнения приложения. Мы нацелены на .NET 8, так как это текущий выпуск долгосрочной поддержки (LTS) с самой широкой базой установки.
Быстрый старт
Используйте этот фрагмент кода, чтобы убедиться, что пакет 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 Local C# SDK, см. GitHub-репозиторий с примерами Foundry Local C# SDK.
Справочник по API
- Для получения более подробной информации о Foundry Local C# SDK см. справочник по API Foundry Local C# SDK.
API транскрибирования собственного звука
Пакет SDK для C# включает собственный звуковой клиент для транскрибирования аудиофайлов на устройстве с помощью моделей Whisper. При этом выполняется вывод в процессе без необходимости веб-сервера REST.
Установите аудиоклиент
После загрузки модели Whisper получите звуковой клиент:
var audioClient = await model.GetAudioClientAsync();
Методы транскрибирования звука
| Метод | Signature | Описание |
|---|---|---|
TranscribeAudioStreamingAsync() |
(string audioFilePath, CancellationToken ct) => IAsyncEnumerable<TranscriptionChunk> |
Результаты транскрибирования передаются потоком пошагово. Каждый блок имеет Text свойство. |
Параметры AudioClient
| Недвижимость | Тип | Описание |
|---|---|---|
Language |
string |
Код языка ISO 639-1 (например, "en"). Улучшает точность. |
Temperature |
float |
Температура выборки (0,0–1.0). Более низкие значения являются более детерминированными. |
Пример
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);
}
Ссылки: