CodeShot
Juniorسختی 3 از ۵· در 60٪ مصاحبه‌های این حوزه پرسیده شده

چرا به‌جای فراخوانی مستقیم SDK یک Provider، باید از Microsoft.Extensions.AI استفاده کرد؟

نشان کردن

پاسخ کوتاه

چون کد شما به هیچ Provider خاصی وابسته نمی‌شود و تغییر بعدی (مثلاً از OpenAI به Azure OpenAI) فقط یک تغییر تنظیمات DI است، نه بازنویسی کد.

پاسخ کامل

Microsoft.Extensions.AI با تعریف Interfaceهایی مثل IChatClient یک لایه انتزاعی مستقل از Provider می‌سازد. کد Business Logic فقط با این Interface کار می‌کند و هیچ‌جا مستقیم به SDK اختصاصی OpenAI/Azure وابسته نیست.

اشتباه رایج

❌ تزریق مستقیم کلاینت اختصاصی یک Provider (مثل OpenAIClient) در سرویس‌های Business Logic به‌جای IChatClient.