Software Philosophy
описание
چکیدهای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرمافزار. معماری نوین نرمافزار، تکنولوژیهای برنامه نویسی جدید
3 454
подписчиков
Охват к подписчикам
47,5%
ERR
Реакции к просмотрам
0,84%
501 на 29 постов
Пересылки к просмотрам
1,45%
859
Постов в день
0,0
всего 29
Где отзываются чаще
доля реакций к просмотрам- 7 авг.ما اخیراً سیستمهای AI خودمون رو به MAF منتقل کردیم و واقعاً فوقالعاده بوده! این جمله واسه من نیست. کامنت @CrystaCode تویOn .NET Live بود :) البته من ترجمش رو گذاشتم اینجا... در این ویدیو Daniel Costea، در مورد ساختار Middleware ها در Microsoft Agentic Framework صحبت میکند. او Middlewareها را به سه نوع تقسیم میکند و با مدل ذهنی prepare → handle → invoke توضیح میدهد؛ مدلی که برای هر کسی که قبلاً با Middleware در ASP.NET Core کار کرده، کاملاً آشناست: اولین مورد Shared Function Middleware نزدیکترین لایه به Request است. این Middleware از یک pipeline استفاده میکند و میتواند پیامهای ورودی را بررسی و فیلتر کند، اما Response را نمیبیند. به همین دلیل جای مناسبی برای Guardrailهای ورودی محسوب میشود؛ مثلاً حذف اطلاعات شخصی (PII) یا آدرس ایمیل قبل از اینکه اصلاً به مدل ارسال شوند. دومین Response Middleware یک قدم فراتر میرود. در حالی که همچنان مثل یک pipeline عمل میکند، میتواند Response کامل را هم ببیند و حتی تغییرش دهد. اینجا جایی است که میشود مشکلاتی مثل مصرف بیشازحد Token را تشخیص داد و قبل از اینکه یک Call هزینه غیرضروری ایجاد کند، جلوی ادامه آن را گرفت. مثلا میشه Token Usage را هم بررسی و ذخیره کرد. و در آخر Function Calling Middleware هم Tool Callها را با دسترسی کامل به Conversation History بررسی میکند. در نتیجه، قبل از اجرای یک Tool میتواند یک Invocation پرریسک را Block کند، محدود کند یا حتی تغییر دهد. در Demo همین قابلیت باعث شد Agent مربوط به یک ماشین رباتیک، مستقیم با دنده عقب به دیوار برخورد نکند! هرکدام از این Middlewareها میتوانند در دو لایه مختلف اجرا شوند: در ChatClient که Identity ندارد و میتواند بین چند Agent به اشتراک گذاشته شود و Agent که Session و Identity خود را دارد. در مجموع یعنی ۶ نقطه مختلف برای Hook کردن Middleware. ترتیب Middlewareها هم اهمیت زیادی دارد. اگر ترتیب درست نباشد، ممکن است یک Middleware بیشتر از چیزی که انتظار دارید اجرا شود. ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید. #حامد_حاجیلو (لینکدین) کانال تلگرام: @SoftwarePhilosophy ______1,71%
- 17 мая 2025 г.без подписи1,42%
- 3 нояб.без подписи1,33%
- 29 июл.🚀 @CrystaCode is officially open to everyone! 🔗 https://crystacode.ai1,22%
- 6 окт. 2025 г.без подписи1,19%
- 9 июн.آینده هوش مصنوعی و مهندسی کامپیوتر هوش مصنوعی مهندسی را نابود نمیکند، اما در سکوت در حال از بین بردن چیزی بسیار مهمتر است: مسیر رشد نیروهای جونیور! اخیرا که ویدئوی کنفرانس BUILD و صحبتهای اسکات هنسلمن و مارک روسینوویچ را دیدم یکی از مهمترین واقعیتها دربارهی هوش مصنوعی در مهندسی را مطرح کردند؛ حقیقتی که باید بلندتر گفته شود، واقعیتی که بیشتر شرکتها الان دیگر فهمیدهاند: هوش مصنوعی بهترین نتایجش را زمانی ارائه میدهد که مهندسان ارشد با آن کار میکنند. اما در عین حال، هوش مصنوعی تقریبا تمام وظایف سطح جونیور را جایگزین کرده است: ایجاد ساختار اولیه، دیباگ، نوشتن کدهای تکراری (boilerplate)، تست کردن و غیره. در نتیجه امروز بسیاری از تیمها عملاً استخدام جونیورها را متوقف کردهاند. و این همان خطر واقعی است. 🔥 اگر امروز جونیورها حذف شوند، فردا سنیوری وجود نخواهد داشت. بدون جونیور ⬅️ بدون نیروهای میانی ⬅️ بدون سنیور ⬅️ بدون آرشیتکت ⬅️ و در نهایت کسی نمیماند که بتواند هوش مصنوعی را به درستی هدایت کند. ما هم این موضوع را از نزدیک دیدهایم. به همین دلیل در CrystaCode بهطور جدی روز برنامهی #cs_internship سرمایهگذاری میکنیم تا جریان پایداری از استعدادهای جونیور حفظ شود و مسیر واقعی رشد آنها به نسل بعدی مهندسان ارشد فراهم گردد. چون آیندهی مهندسی به کسانی بستگی دارد که هنوز سنیور نشدهاند. 🔗 صحبتهای اسکات هنسلمن و مارک روسینوویچ را در یوتیوب ببینید. #مهران_داودی (لینکدین - بلاگ) ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید. کانال تلگرام: @SoftwarePhilosophy ______1,18%
- 17 дек. 2024 г.без подписи1,06%
- 31 дек. 2024 г.без подписи1,03%
- 7 янв.گزارش از دیتابیس لازم داری؟ فقط حرف بزن! تصور کنید وارد یک پنل مدیریتی میشوید، فقط یک جمله ساده تایپ میکنید: «نمایش مشتریانی که بیش از ۵ خرید داشتهاند» و بدون اینکه حتی یک خط SQL بنویسید، جدول دقیق با تمام اطلاعات جلو روی شما ظاهر میشود. نه نیاز به دانش دیتابیس دارید، نه وقت گذاشتن برای نوشتن کوئریهای پیچیده. این آینده نیست. این حال حاضر توسعه نرمافزار با هوش مصنوعیست. با ظهور مدلهای زبانی قدرتمند مثل GPT-4، تعامل با دادهها وارد مرحلهای جدید شده است. حال میتوانیم با زبان طبیعی، مثل حرف زدن با یک همکار، از دیتابیس اطلاعات بگیریم. مرحله اول: دریافت ساختار دیتابیس برای اینکه GPT-4 بتواند کوئری دقیق تولید کند، ابتدا باید ساختار جدولها و ستونها را بشناسد. با استفاده از EF Core، میتوان لیستی از جدولها و فیلدها را استخراج کرد و به مدل ارسال کرد. public async Task<string> GetAllTableSchemas() { // دریافت اطلاعات جدولها از دیتابیس } مرحله دوم: تبدیل زبان طبیعی به SQL در این مرحله، جملهای مانند "نمایش مشتریانی که بیش از ۵ خرید داشتهاند" به GPT-4 ارسال میشود. مدل با توجه به ساختار دیتابیس، کوئری SQL مناسب تولید میکند. public async Task<string> GenerateSQLQuery(string userPrompt) { var prompt = $"Given the following database schema: {schema}, write a SELECT SQL query for: {userPrompt}"; var response = await openAiClient.GetCompletionAsync(prompt); return response.Text; } مرحله سوم: اجرای کوئری و نمایش نتیجه کوئری تولیدشده روی دیتابیس اجرا میشود و نتیجه به کاربر نمایش داده میشود. این بخش میتواند بهصورت جدول، نمودار یا حتی فایل خروجی طراحی شود. public async Task<DataTable> ExecuteQuery(string sql) { using var connection = new NpgsqlConnection(connectionString); var command = new NpgsqlCommand(sql, connection); var reader = await command.ExecuteReaderAsync(); // تبدیل نتیجه به DataTable } ⚠️ نکتهای که باید در نظر بگیرید این است که فقط کوئریهای SELECT مجاز هستند تا از تغییر یا حذف دادهها جلوگیری شود. برای دیدن نمونه عملی این پروژه، مقاله اصلی در DZone را ببینید. ___________ ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید. #نگار_قاسمی (لینکدین) کانال تلگرام: @SoftwarePhilosophy ________1,01%
- 12 апр. 2025 г.без подписи1,00%
- 11 маяهوش مصنوعی، آمادهی آزمون؟ با skUnit بررسیاش کن! تصور کنید در حال ساختن یک اپلیکیشن هوش مصنوعی هستید که قرار است با کاربرها گفتوگو کند، تصمیم بگیرد، و حتی گاهی شوخی کند! همه چیز عالی است... تا وقتی که باید مطمئن شوید مدل واقعاً همان کاری را میکند که انتظار دارید. اینجاست که skUnit مثل یک قهرمان وارد صحنه میشود! 🎬 داستان از کجا شروع شد؟ در دنیای داتنت، تستنویسی همیشه بخشی جدی و خشک بوده. اما وقتی پای هوش مصنوعی وسط میآیدد، دیگر نمیتوانید فقط بگویید "این تابع درست کار کرد یا نه؟" باید بپرسید: ❓ آیا مدل واقعاً فهمید کاربر چه گفت؟ ❓ آیا جوابش منطقی بود؟ ❓ آیا توانست با ظرافت تابعی خاص را صدا بزند؟ حساسیت جایی بالاتر میرود که وقتی تغییری ایجاد میکنید و عمرا به سادگی بفهمدی تمام تغییرات قبلی درست کار میکند یا نه! و اینجاست که skUnit با رویکردی خلاقانه، تستها را به شکل سناریوهای مکالمهای در قالب Markdown تعریف میکند. ساده، خوانا و درست مانند گفتوگویی واقعی. 🔍 ویژگیهایی که skUnit را خاص میکنند - تست معنایی پاسخها: بررسی میکند که مدل واقعاً مفهوم را فهمیده است، نه فقط کلمات را. - تست فراخوانی توابع: مطمئن میشود که مدل دقیقاً همان تابعی را صدا زده که باید. - مکالمات چندمرحلهای: میتوانید سناریویی کامل از گفتوگوی کاربر با مدل را تست کنید. - خروجیهای قابل فهم: نتایج تستها به شکل واضح و قابل تحلیل نمایش داده میشوند. - پشتیبانی از چندین اجرا: چون مدلهای زبانی گاهی نوسان دارند، میتوانید چند بار تست را اجرا کنید و نرخ موفقیت تعیین کنید. 🔗 پیشنهاد میکنم سری به گیتهاب skUnit بزنین. ___________ ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید. #نگار_قاسمی (لینکدین) کانال تلگرام: @SoftwarePhilosophy ________0,95%
- 27 июн.هوش مصنوعی در داتنت بدون پیچیدگی وقتی تصمیم میگیرید یک چتبات هوشمند بسازید، اولین سوالات خیلی زود ظاهر میشوند: - دادهها از کجا باید بیایند؟ - چطور باید پردازش شوند؟ - اگر چند ایجنت مختلف داشته باشم، چطور باید با هم هماهنگ کار کنند؟ در اکوسیستم داتنت مجموعهای از ابزارها و کتابخانههای آماده وجود دارد که دقیقاً برای پاسخدادن به همین نیازها طراحی شدهاند. از ابزارهای پایه برای اتصال به مدلهای هوش مصنوعی گرفته تا اجزای RAG برای مدیریت داده، فریمورک ایجنتها برای تعریف نقشهای مختلف، و استانداردهایی مثل MCP و A2A برای اینکه ایجنتها بتوانند با سرویسها و حتی با یکدیگر تعامل داشته باشند. برای شروع کافی است Microsoft.Extensions.AI را به پروژه اضافه کنید و یک چتبات ساده بسازید. خیلی زود متوجه میشوید که برای مدیریت بهتر وظایف، Microsoft.Agents.AI را هم نصب کردهاید و چند MCP مختلف برای هندلکردن فعالیتها اضافه شدهاند. ما در crystacode.ai از این امکانات بهصورت حرفهای استفاده کردهایم، از ساخت چتباتها تا طراحی ایجنتهای تخصصی و اتصال آنها به سرویسهای مختلف. در این ویدیو میتوانید ببینید که این مجموعه ابزارها به شما اجازه میدهد بدون پیچیدگیهای اضافی، از چت و RAG گرفته تا Agentها، MCP و حتی تولید تصویر، اپلیکیشنهایی هوشمند، قابلگسترش و کارآمد بسازید. 🔗 https://www.youtube.com/watch?v=LB64QnwhLZM _____ ⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنتها به اشتراک بگذارید. #نگار_قاسمی (لینکدین) کانال تلگرام: @SoftwarePhilosophy ______0,95%