Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Локальный пакет SDK Foundry позволяет отправлять функции искусственного интеллекта в приложениях, которые могут использовать локальные модели ИИ с помощью простого и интуитивно понятного API. Пакет SDK абстрагирует сложности управления моделями ИИ и обеспечивает простой интерфейс для интеграции локальных возможностей искусственного интеллекта в ваши приложения. В этом справочнике описаны реализации пакета SDK для C#, JavaScript, Python и Rust.
Пакет SDK не требует установки локального интерфейса командной строки Foundry на компьютере конечных пользователей, что позволяет отправлять приложения без дополнительных действий по настройке для пользователей — ваши приложения являются автономными. Дополнительные преимущества локального пакета SDK для Foundry:
- Обнаружение оборудования и оптимизация: автоматическая оценка возможностей для GPU, NPU и ЦП.
- Execution provider management (Windows): автоматическое скачивание и регистрация соответствующих поставщиков выполнения ONNX (CUDA, Vitis, QNN, OpenVINO, TensorRT) на основе возможностей устройств.
- Поддержка металла с помощью WebGpu (macOS): встроенная поддержка запуска моделей в Apple Silicon с оптимизированной производительностью.
- Приобретение модели: Беспрепятственная загрузка из каталога моделей Foundry с учетом версий, обновлений и автоматизированным подбором моделей, оптимизированным для оборудования, с поддержкой резервных вариантов.
- Эффективная среда выполнения: добавляет примерно 20 МБ к размеру приложения, выполняется на устройствах от мобильных телефонов до настольных компьютеров.
- Совместимость API OpenAI: простая интеграция с моделями и инструментами OpenAI.
- Необязательный сервер REST: запуск Foundry Local в качестве локальной службы, доступной другими приложениями.
Справочник по пакету SDK для C#
Установка пакетов
Если вы разрабатываете или поставляете на Windows, выберите вкладку Windows. Пакет Windows интегрируется со средой выполнения Windows ML — обеспечивает тот же интерфейс API с более широким спектром аппаратного ускорения.
dotnet add package Microsoft.AI.Foundry.Local.WinML
dotnet add package OpenAI
Примеры C# в репозитории GitHub предварительно настроены. Если вы создаете с нуля, ознакомьтесь со справочником по локальному пакету SDK Foundry для получения дополнительных сведений о настройке проекта C# с помощью Foundry Local.
конфигурация проекта
Примеры репозиториев включают .csproj файл, который автоматически обнаруживает платформу. Если вы создаете проект с нуля, используйте эту конфигурацию в качестве ссылки:
<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>
В следующей таблице описываются ключевые параметры проекта:
| Setting | Описание |
|---|---|
TargetFramework |
На Windows целевые объекты net9.0-windows10.0.26100 для аппаратного ускорения WinML. На других платформах целевые объекты net9.0. |
WindowsAppSDKSelfContained |
Установите значение false, чтобы использовать Windows App SDK, установленный в системе, вместо включения его в комплект. |
WindowsPackageType |
Установите для None сборки как приложение для рабочего стола без упаковки (без упаковки MSIX). |
EnableCoreMrtTooling |
Установите false чтобы отключить средства управления ресурсами MRT Core, которые не нужны для консольных приложений. |
RuntimeIdentifier |
По умолчанию используется идентификатор среды выполнения текущего SDK, что обеспечивает выбор правильных бинарных файлов платформы. |
Microsoft.AI.Foundry.Local.WinML |
Пакет для Windows, который использует WinML для аппаратного ускорения и автоматического управления поставщиком служб выполнения. |
Microsoft.AI.Foundry.Local |
Кроссплатформенный пакет для macOS, Linux и Windows без WinML. |
Microsoft.ML.OnnxRuntime.Gpu / OnnxRuntimeGenAI.Cuda |
Пакеты поддержки GPU Linux для оборудования с поддержкой CUDA. |
Быстрый старт
Используйте этот фрагмент кода, чтобы убедиться, что пакет 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()}");
В этом примере выводится количество моделей, доступных для вашего оборудования.
Образцы
- Для примеров приложений, демонстрирующих использование локального SDK Foundry C#, см. GitHub-репозиторий с примерами SDK Foundry Local C#.
Справочник по 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);
}
Ссылки:
Справочник по пакету SDK для JavaScript
Установка пакетов
Если вы разрабатываете или поставляете на Windows, выберите вкладку Windows. Пакет Windows интегрируется со средой выполнения Windows ML — обеспечивает тот же интерфейс API с более широким спектром аппаратного ускорения.
npm install foundry-local-sdk-winml 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}`);
}
В этом примере выводится список доступных моделей для оборудования.
Образцы
- Примеры приложений, демонстрирующие использование Local JavaScript SDK для Foundry, см. в репозитории образцов на GitHub для Local JavaScript SDK Foundry.
Справочник по API
- Дополнительные сведения о пакете Local JavaScript SDK для Foundry см. в справочнике по API Local JavaScript SDK для Foundry.
Ссылки
Справочник по пакету SDK Python
Установка пакетов
Если вы разрабатываете или поставляете на Windows, выберите вкладку Windows. Пакет Windows интегрируется со средой выполнения Windows ML — обеспечивает тот же интерфейс API с более широким спектром аппаратного ускорения.
pip install foundry-local-sdk-winml openai
Быстрый старт
Используйте этот фрагмент кода, чтобы убедиться, что пакет SDK может инициализировать и получить доступ к локальному каталогу моделей.
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())
В этом примере выводится количество моделей, доступных для вашего оборудования.
Образцы
- Для примеров приложений, демонстрирующих использование Foundry Local Python SDK, см. репозиторий GitHub Foundry Local SDK Samples.
Конфигурация
Класс Configuration позволяет настроить поведение пакета SDK:
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"},
)
| Параметр | Тип | Описание |
|---|---|---|
app_name |
str |
Имя приложения. |
log_level |
str |
Уровень ведения журнала (например, "info", "debug"). |
model_cache_dir |
str |
Каталог для кэшированных моделей. |
web |
dict |
Конфигурация веб-службы с ключом urls . |
Основной API
| Метод | Описание |
|---|---|
FoundryLocalManager.initialize(config) |
Инициализируйте синглтон-менеджер с помощью Configuration. |
FoundryLocalManager.instance |
Получите доступ к инициализированному экземпляру диспетчера. |
manager.catalog.list_models() |
Список всех доступных моделей в каталоге. |
manager.catalog.get_model(alias) |
Получение модели по псевдониму. |
manager.catalog.get_cached_models() |
Перечисление моделей в локальном кэше. |
manager.catalog.get_loaded_models() |
Список моделей, загруженных в данный момент. |
model.download(progress_callback) |
Загрузите модель (будет пропущено, если уже кэшировано). |
model.load() |
Загрузите модель для вывода. |
model.unload() |
Выгрузите модель. |
model.is_cached |
Проверьте, кэшируется ли модель локально. |
model.is_loaded |
Проверьте, загружена ли модель. |
API собственных завершений чата
После загрузки модели получите клиент чата:
client = model.get_chat_client()
| Метод | Описание |
|---|---|
client.complete_chat(messages) |
Создайте полный чат-ответ. |
client.complete_streaming_chat(messages) |
Потоки блоков ответа в чате. |
API транскрибирования собственного звука
После загрузки модели Whisper получите звуковой клиент:
audio_client = model.get_audio_client()
| Метод | Описание |
|---|---|
audio_client.transcribe(file_path) |
Транскрибирование звукового файла. Возвращает объект со свойством text . |
Ссылки:
Справочник по пакету SDK Rust
Установка пакетов
Если вы разрабатываете или поставляете на Windows, выберите вкладку Windows. Пакет Windows интегрируется со средой выполнения Windows ML — обеспечивает тот же интерфейс API с более широким спектром аппаратного ускорения.
cargo add foundry-local-sdk --features winml
cargo add tokio --features full
cargo add tokio-stream anyhow
Быстрый старт
Используйте этот фрагмент кода, чтобы убедиться, что пакет SDK может инициализировать и получить доступ к локальному каталогу моделей.
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(())
}
В этом примере выводится количество моделей, доступных для вашего оборудования.
Образцы
- Примеры приложений, демонстрирующих, как использовать Foundry Local Rust SDK, можно найти в репозитории образцов SDK Foundry Local на GitHub.
Конфигурация
Структура FoundryLocalConfig позволяет настроить поведение пакета SDK.
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");
Основной API
| Метод | Описание |
|---|---|
FoundryLocalManager::create(config) |
Создайте новый менеджер с помощью FoundryLocalConfig. |
manager.catalog().get_models().await |
Список всех доступных моделей. |
manager.catalog().get_model(alias).await |
Получение модели по псевдониму. |
manager.catalog().get_cached_models().await |
Перечисление моделей в локальном кэше. |
manager.catalog().get_loaded_models().await |
Список моделей, загруженных в данный момент. |
model.download(callback).await |
Загрузите модель (будет пропущено, если уже кэшировано). |
model.load().await |
Загрузите модель для вывода. |
model.unload().await |
Выгрузите модель. |
API собственных завершений чата
После загрузки модели создайте клиент чата с дополнительными параметрами:
let client = model.create_chat_client()
.temperature(0.7)
.max_tokens(256);
| Метод | Описание |
|---|---|
client.complete_chat(&messages, tools).await |
Создайте полный чат-ответ. |
client.complete_streaming_chat(&messages, tools).await |
Части ответа чата в потоке. |
Типы сообщений: ChatCompletionRequestSystemMessage, ChatCompletionRequestUserMessage, ChatCompletionRequestMessage.
API транскрибирования собственного звука
После загрузки модели Whisper создайте звуковой клиент:
let audio_client = model.create_audio_client();
| Метод | Описание |
|---|---|
audio_client.transcribe(file_path).await |
Транскрибирование звукового файла. Возвращает объект с полем text . |
Ссылки: