مرجع SDK المحلي للمسبك

تمكنك SDK المحلية من شحن ميزات الذكاء الاصطناعي في تطبيقاتك التي تستخدم نماذج الذكاء الاصطناعي المحلية من خلال واجهة برمجة تطبيقات بسيطة وبديهية. تجريد مجموعة تطوير البرمجيات تعقيدات إدارة نماذج الذكاء الاصطناعي وتوفر تجربة سلسة لدمج قدرات الذكاء الاصطناعي المحلية في تطبيقاتك. يوثق هذا المرجع تطبيقات SDK ل C# وC++وJavaScript Python و Rust.

لا تتطلب حزمة تطوير البرمجيات تثبيت واجهة Foundry Local CLI على جهاز المستخدم النهائي، مما يتيح لك شحن تطبيقاتك دون خطوات إعداد إضافية للمستخدمين - تطبيقاتك مكتفية ذاتيا. تشمل المزايا الإضافية لمجموعة تطوير الموارد المحلية للمسبح:

  • اكتشاف الأجهزة وتحسينها: تقييم تلقائي للقدرات لوحدة معالجة الرسوميات، وحدة معالجة النقل، والمعالج.
  • إدارة مزودي التنفيذ (Windows): تحميل وتسجيل تلقائي لمزودي تنفيذ ONNX المناسبين (CUDA، Vitis، QNN، OpenVINO، TensorRT) بناء على قدرات الجهاز.
  • دعم Metal عبر WebGpu (macOS): دعم أصلي لتشغيل النماذج على Apple Silicon مع أداء محسن.
  • الحصول على النماذج: تحميل سلس من كتالوج نماذج Foundry مع الإصدارات، والتحديثات، واختيار النماذج المحسن تلقائيا مع دعم احتياطي.
  • وقت تشغيل فعال: يضيف حوالي 20 ميجابايت إلى حجم التطبيق، ويعمل على الأجهزة من الهواتف المحمولة إلى أجهزة سطح المكتب.
  • توافق OpenAI مع واجهة برمجة التطبيقات (API): تكامل سهل مع نماذج وأدوات OpenAI.
  • خادم REST اختياري: شغل Foundry Local كخدمة محلية يمكن الوصول إليها من قبل تطبيقات أخرى.

مرجع C# SDK

تثبيت الحزم

dotnet add package Microsoft.AI.Foundry.Local
dotnet add package OpenAI

عينات C# في مستودع GitHub هي مشاريع مهيأة مسبقا. إذا كنت تبني من الصفر، يجب عليك قراءة مرجع Foundry Local SDK لمزيد من التفاصيل حول كيفية إعداد مشروع C# الخاص بك مع Foundry Local.

تكوين Project

تتضمن مستودعات العينات ملفا .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.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>

الجدول التالي يشرح إعدادات المشروع الرئيسية:

الإعدادات الوصف
TargetFramework يستهدف الإصدار .NET المطلوب من قبل العينة.
RuntimeIdentifier يقيم افتراضيا معرف وقت التشغيل في مجموعة تطوير البرمجيات الحالية، مما يضمن اختيار الثنائية الصحيحة للمنصة.
Microsoft.AI.Foundry.Local حزمة Foundry Local SDK ل Windows وmacOS وLinux.

تشغيل سريع

استخدم هذا المقتطف للتحقق من أن مجموعة تطوير البرمجيات يمكنها تهيئة و access كتالوج النماذج المحلي.

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 Local C# SDK، راجع ><عينات SDK المحلية C# GitHub المستودع.

مرجع واجهة برمجة التطبيقات

واجهة برمجة التطبيقات الأصلية لنسخ الصوت

تتضمن مجموعة تطوير تطوير C# عميل صوتي أصلي لنسخ ملفات الصوت على الجهاز باستخدام نماذج Whisper. يقوم هذا بتشغيل الاستدلال أثناء العملية دون الحاجة إلى خادم ويب REST.

احصل على عميل صوتي

بعد تحميل نموذج Whisper، احصل على عميل صوتي:

var audioClient = await model.GetAudioClientAsync();

طرق النسخ الصوتي

الطريقة التوقيع الوصف
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);
}

مراجع:

مرجع JavaScript SDK

تثبيت الحزم

npm install foundry-local-sdk openai

تشغيل سريع

استخدم هذا المقتطف للتحقق من أن مجموعة تطوير البرمجيات يمكنها تهيئة و access كتالوج النماذج المحلي.

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}`);
}

هذا المثال يخرج قائمة النماذج المتاحة لأجهزتك.

العينات

  • للتطبيقات النموذجية التي توضح كيفية استخدام مجموعة تطوير تطوير جافاسكريبت المحلية للمسبح، راجع <عينات GitHub مستودع c0>Foundry Local SDK.

مرجع واجهة برمجة التطبيقات

المرَاجِع

مرجع Python SDK

تثبيت الحزم

pip install foundry-local-sdk openai

تشغيل سريع

استخدم هذا المقتطف للتحقق من أن مجموعة تطوير البرمجيات يمكنها تهيئة و access كتالوج النماذج المحلي.

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())

يطبع هذا المثال عدد النماذج المتاحة لأجهزتك.

العينات

الإعداد

تسمح لك الفئة 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 المفتاح.

واجهة برمجة التطبيقات الأساسية

الطريقة الوصف
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 تحقق مما إذا كان النموذج محملا.

واجهة برمجة تطبيقات إكمال المحادثات الأصلية

بعد تحميل نموذج، احصل على عميل دردشة:

client = model.get_chat_client()
الطريقة الوصف
client.complete_chat(messages) أنشئ ردا كاملا على الدردشة.
client.complete_streaming_chat(messages) استخدموا مقاطع الرد على الدردشة.

واجهة برمجة التطبيقات الأصلية لنسخ الصوت

بعد تحميل نموذج Whisper، احصل على عميل صوتي:

audio_client = model.get_audio_client()
الطريقة الوصف
audio_client.transcribe(file_path) قم بنسخ ملف صوتي. يعيد كائنا له text خاصية.

مراجع:

مرجع Rust SDK

تثبيت الحزم

cargo add foundry-local-sdk
cargo add tokio --features full
cargo add tokio-stream anyhow

تشغيل سريع

استخدم هذا المقتطف للتحقق من أن مجموعة تطوير البرمجيات يمكنها تهيئة و access كتالوج النماذج المحلي.

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(())
}

يطبع هذا المثال عدد النماذج المتاحة لأجهزتك.

العينات

  • للحصول على نماذج تطبيقات توضح كيفية استخدام حزمة تطوير SDK المحلية للصدأ في Foundry، راجع ><عينات SDK المحلية 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");

واجهة برمجة التطبيقات الأساسية

الطريقة الوصف
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 قم بفرغ النموذج.

واجهة برمجة تطبيقات إكمال المحادثات الأصلية

بعد تحميل نموذج، أنشئ عميل دردشة مع إعدادات اختيارية:

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

واجهة برمجة التطبيقات الأصلية لنسخ الصوت

بعد تحميل نموذج Whisper، أنشئ عميل صوتي:

let audio_client = model.create_audio_client();
الطريقة الوصف
audio_client.transcribe(file_path).await قم بنسخ ملف صوتي. يرجع كائنا بحقل text .

مراجع:

مرجع C++ SDK

المتطلبات المسبقه

يوفر C++ SDK برنامج تضمين عنوان فقط عبر وقت التشغيل المحلي الأصلي Foundry. لا يتطلب التطبيق المنشور CLI Local CLI أو وقت تشغيل .NET.

استنساخ نموذج الدردشة الأصلية للبدء بمشروع CMake مكون:

git clone https://github.com/microsoft-foundry/foundry-samples.git
cd foundry-samples/samples/cpp/foundry-local/native-chat-completions

تتطلب عينات C++ ما يلي:

  • CMake 3.20 أو أحدث.
  • محول برمجي C++20.
  • NuGet CLI على .PATH

تكوين وبناء العينة:

cmake -S . -B build
cmake --build build --config Release

أثناء التكوين، يستعيد النموذج الإصدار 2.2.1 من حزمة Microsoft.AI.Foundry.Local.Runtime NuGet إلى build/_packages. تحتوي الحزمة على رؤوس C++ والمكتبات الأصلية Windows وLinux وmacOS. لا تحتاج إلى حزمة WinML منفصلة.

يحدد تكوين CMake أصول وقت التشغيل لنظام التشغيل والهندسة المعمارية وينسخ المكتبات الأصلية المطلوبة بجانب الملف التنفيذي. على macOS وLinux، قم بتشغيل الملف القابل للتنفيذ من build. في Windows، قم بتشغيل .exe الملف من build.

حدد الأصول الأصلية التي تطابق نظام تشغيل التطبيق الخاص بك وهندسته:

نظام التشغيل Architecture معرف وقت التشغيل (RID)
Windows x64 أو ARM64 win-x64 او win-arm64
Linux x64 أو ARM64 linux-x64 او linux-arm64
ماك أو إس Apple silicon (ARM64) osx-arm64

إضافة build/_packages/Microsoft.AI.Foundry.Local.Runtime.2.2.1/build/native/include إلى مسار تضمين المحول البرمجي الخاص بك. ربط المكتبة الأصلية من الحزمة build/_packages/Microsoft.AI.Foundry.Local.Runtime.2.2.1/runtimes/<rid>/native الدليل:

  • foundry_local.libعلى Windows.
  • libfoundry_local.so على Linux.
  • libfoundry_local.dylib على macOS.

نشر وقت التشغيل الأصلي المطابق ومكتبات التبعية بجانب الملف التنفيذي أو في مسار البحث في مكتبة النظام الأساسي. احتفظ بإصدارات الحزمة المستعادة معا. لا تخلط بين الرؤوس والمكتبات الأصلية من إصدارات مختلفة.

تشغيل سريع

استبدل النموذج main.cpp بالتعليمات البرمجية التالية لتهيئة SDK واحسب النماذج في الكتالوج:

#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;
}

يطبع Models available: المثال متبوعا بعدد نماذج الكتالوج. لا يقوم بتنزيل نموذج أو تحميله. حافظ على بقاء المدير على قيد الحياة أثناء استخدام كائنات الكتالوج أو النموذج أو بيانات التعريف التي تم الحصول عليها منه.

المرجع: تعريفات برنامج تضمين C++ ل Configurationو Managerو Catalog.

واجهة برمجة التطبيقات الأساسية

يستخدم برنامج التضمين اكتساب الموارد هو التهيئة (RAII) لتحرير المقابض الأصلية عندما تترك الكائنات النطاق.

API الوصف
Manager{Configuration("app-name")} تهيئة مدير باسم تطبيق.
manager.GetCatalog() احصل على كتالوج النموذج.
catalog.GetModels() سرد النماذج في الكتالوج.
catalog.GetModel(alias) ابحث عن نموذج بالاسم المستعار. تحقق من المؤشر الذي تم إرجاعه قبل استخدامه.
model->Download() قم بتنزيل نموذج إلى ذاكرة التخزين المؤقت المحلية.
model->Load() تحميل نموذج للاستدلال.
model->Unload() إلغاء تحميل نموذج من الذاكرة.
ChatSession::ProcessRequest(request) تشغيل طلب دردشة وإرجاع استجابة.

مرجع وعينات واجهة برمجة التطبيقات

استخدم العنوان العام والأمثلة التي تم الاحتفاظ بها لواجهة برمجة التطبيقات الكاملة وسير عمل الاستدلال: