ساخت برنامههای LLM مستقل از ارائهدهنده با Microsoft.Extensions.AI در C#
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۹ ۲۲:۱۸
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
Microsoft.Extensions.AI یک لایه انتزاعی یکپارچه برای سرویسهای هوش مصنوعی در .NET فراهم میکند. این کتابخانه مشابه ILogger برای ثبت وقایع یا IDistributedCache برای حافظه پنهان عمل میکند، اما برای هوش مصنوعی طراحی شده است. هسته اصلی این کتابخانه شامل دو رابط اصلی IChatClient برای هوش مصنوعی مکالمهای (تکمیل چت) و IEmbeddingGenerator برای تولید امبدینگها است.
این رابطها مستقل از ارائهدهنده هستند، به این معنی که کد برنامه شما به انتزاع وابسته است و پیادهسازی خاص میتواند در زمان پیکربندی تغییر کند. این امر به توسعهدهندگان کمک میکند تا از قفل شدن به یک ارائهدهنده خاص جلوگیری کنند و به راحتی بین ارائهدهندگانی مانند Azure OpenAI، OpenAI، Anthropic، Google و Ollama جابجا شوند.
بدون یک لایه انتزاعی، استفاده مستقیم از SDKهای خاص ارائهدهنده میتواند مشکلاتی را ایجاد کند. به عنوان مثال، تست کردن کد با AzureOpenAIClient دشوار است زیرا نیاز به مسخره کردن پاسخهای HTTP یا استفاده از تستهای یکپارچهسازی دارد. همچنین، توسعه محلی میتواند پرهزینه باشد زیرا هر اجرای تست یا اشکالزدایی، API Azure را فراخوانی میکند و هزینه دارد.
با استفاده از Microsoft.Extensions.AI، میتوان این مشکلات را حل کرد. به عنوان مثال، میتوان یک سرویس ContentService را با استفاده از رابط IChatClient پیادهسازی کرد، که امکان تعویض آسان پیادهسازیهای مختلف را فراهم میکند. این امر باعث میشود تست کردن آسانتر، توسعه محلی ارزانتر و تغییر ارائهدهنده آسانتر شود.
این کتابخانه در اوایل سال 2025 به صورت پایدار منتشر خواهد شد و میتواند به توسعهدهندگان .NET در ساخت برنامههای LLM انعطافپذیر و قابل نگهداری کمک کند.