إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تمكنك 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 المستودع.
مرجع واجهة برمجة التطبيقات
- لمزيد من التفاصيل حول مجموعة تطوير Foundry Local C# SDK، اقرأ Foundry Local C# SDK API المرجعي.
واجهة برمجة التطبيقات الأصلية لنسخ الصوت
تتضمن مجموعة تطوير تطوير 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.
مرجع واجهة برمجة التطبيقات
- لمزيد من التفاصيل حول مجموعة تطوير جافاسكريبت المحلية للمفاوندري، اقرأ مرجع واجهة برمجة التطبيقات الخاصة ب Foundry Local JavaScript 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())
يطبع هذا المثال عدد النماذج المتاحة لأجهزتك.
العينات
- للحصول على تطبيقات نموذجية توضح كيفية استخدام مجموعة تطوير SDK المحلية Python Foundry، راجع Foundry Local SDK عينات GitHub المستودع.
الإعداد
تسمح لك الفئة 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 -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) |
تشغيل طلب دردشة وإرجاع استجابة. |
مرجع وعينات واجهة برمجة التطبيقات
استخدم العنوان العام والأمثلة التي تم الاحتفاظ بها لواجهة برمجة التطبيقات الكاملة وسير عمل الاستدلال: