TondTech – Telegram
TondTech
2.65K subscribers
1.48K photos
169 videos
133 files
1.16K links
کالای ما دانش است


تبلیغات نداریم
Download Telegram
Forwarded from tech-afternoon (Amin Mesbahi)
🚀 🤑 مثال عملی پیاده‌سازی RAG (قسمت ۱)
پاسخ به پرسش‌های ارزی! با دیتای لحظه‌ای... 😎🤑

گفتیم برای اینکه مدل‌های زبانی دیتای به‌روز یا دلخواه ما رو داشته باشن، باید با استفاده از روش‌هایی مثل RAG داده‌های دلخواهمون رو بهشون ارائه کنیم. برای ارائه دیتا از وکتور دیتابیس یا ساختارهای دیگه‌ی حافظه‌ای استفاده می‌کنیم. حالا برای اینکه دست‌به‌کد شیم، تصمیم گرفتم قبل از توضیح دقیق‌تر وکتور دیتابیس، یه مثال بنویسیم تا با ساختارهای ساده و فرایند کلی آشنا شیم. البته توی این مثال اول از memory store استفاده می‌کنم، و در ادامه می‌ریم سراغ وکتور دیتابیس.

سناریو:
هر مدل هوش‌مصنوعی هر چقدر کامل یا باهوش باشه، ۲ چیز در جهان رو نمی‌تونه پیش‌بینی کنه: اولیش قیمت ارز در ایرانه. دومیش هم فعلا بماند 😉؛ حالا می‌خواهیم توی این مثال بریم از یکی از سایت‌های اعلام نرخ ارز، قیمت ارزها رو بگیریم ولی با RAG به مدلمون دیتا بدیم. بعدش که از مدل سوال بپرسیم دیگه می‌دونه مثلا دلار چنده. دقت کنید که اینجا منظورم چپوندن «متن» در قالب پرامپت نیست. بلکه استفاده از ساختار RAG است.

روی کامپیوتر خودمون ollama نصب می‌کنیم و از مدل Phi استفاده می‌کنیم که کوچیک باشه و سخت‌افزار خاصی نیاز نداشته باشه.

موافقید با این مثال پیش بریم؟
اگر موافقید
اول: ollama رو نصب کنید
دوم: بعد از نصب، دستور زیر رو برای دریافت مدل phi3 mini که حدود ۲.۲ گیگابایت است توی ترمینالتون اجرا کنید

ollama pull phi3:mini


بعدش برگردید به همین پست یک عدد ⚙️ بکارید اینجا تا بریم سراغ قسمت بعدی یعنی کد #C که با استفاده از semantic kernel دیتا رو RAG می‌کنیم. البته قبلش هم با HtmlAgilityPack دیتا رو از bonbast.org کرال می‌کنیم.

* دلیل انتخاب سی‌شارپ این بود که حس کردم اعضا کانال عموما به سمت سی‌شارپ گرایش دارن (اگر هر کدوم از پایتون یا گو به حدنصاب برسه، با اون هم می‌نویسم)

* ادامه مثال، و اینکه تا چه حدی عمیق شیم بسته به بازخوردها داره.

💬 نظر؟ سوال؟
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
https://403.online/ به فنا رفته :)
👍4
Forwarded from tech-afternoon (Amin Mesbahi)
🚀 🤑 مثال عملی پیاده‌سازی RAG (قسمت ۲)
پاسخ به پرسش‌های ارزی! با دیتای لحظه‌ای... 😎🤑

توجه!
قرار بود از مدل Phi-3 mini استفاده کنیم که ۲ گیگ باشه و روی لپ‌تاپ راحت اجرا شه، اینقدر احمق بود که رفتم سراغ llama3.2 که اونم ۲ گیگ است، ولی بسی باشعورتر!

نکته: مدل‌ها نیاز به سنجش و انتخاب دارن (چه در مثال ساده چه در کارهای بزرگ که خودش بخشی از فرایند AIOps است. Phi3 برای این کار مناسب نبود. گرچه صرفا بر اساس سایز کوچک برای مثال انتخاب کرده بودم ولی خیلی بی‌شعور بود!


کد آماده است و قابل دسترس رو گیت‌هاب، ولی باید توضیحات رو به فایل read me اضافه کنم و «شاید، اگر فرصت شه» ویدیو ضبط کنم براش.
🤓 می‌بینید که برعکس چیزی که انتظار می‌رفت، RAG اصلا خوب نیست!!! چرا؟ چون بدون RAG، یورو ۶۹۰۰ تومنه، ولی بعد از RAG می‌شه ۱۰۶هزار تومن. نتیجه می‌گیریم عامل گرونی ارز RAG است، و شایسته است که سریع‌تر به دار آویخته شود ☠️☠️



*️⃣اپلیکیشن یک console app است که کل کد در program.cs قرار دارد.

*️⃣کتابخونه‌های مورد استفاده:

HtmlAgilityPack
برای استخراج نرخ ارز از دل html دریافت شده از سایت اعلام نرخ.
(توی یک تگ table قرار دارد). تمام فرایند دریافت صفحه و استخراج مقادیر، در متد GetExchangeRatesAsync است.


Microsoft.SemanticKernel
Microsoft.SemanticKernel.Connectors.Ollama
برای استفاده از قابلیت‌های Semantic Kernel و همچنین اتصال به ollama برای استفاده از مدل‌هایی که روی ollama داریم. کرنل در حقیقت قلب و رابط بین کد ما و مدل‌های هوش مصنوعی است، کانکتورهای مختلف داره که به مدل‌های لوکال یا ابری متصل شه و کار متن (مثل چت) یا کارهای تولید عکس، صدا، و... رو با مدل‌ها انجام بده. استفاده ازش هم ساده است و اول کرنل رو تعریف، بعد هم پلاگین‌های مورد نیازمون رو بهش متصل و شروع به کار می‌کنیم. مثلا اینجا با دو خط کد به راحتی به ollama متصل می‌شه و از مدل llama3.2 با ۳ میلیارد پارامتر استفاده می‌شه کرد (مثلا چت کرد باهاش).
هم‌زمان با سی‌شارپ، semantic kernel برای پایتون و جاوا هم به‌صورت رسمی توسعه و منتشر می‌شه.
var builder = Kernel.CreateBuilder();
builder.AddOllamaChatCompletion(
modelId: "llama3.2:3b",
endpoint: new Uri("http://127.0.0.1:11434"));



Microsoft.KernelMemory
Microsoft.SemanticKernel.Plugins.Memory
برای افزودن قابلیت «حافظه» به semantic kernel یعنی دیتای خودمون رو داخل حافظه قرار بدیم و کرنل از اون دیتا در کنار دیتای مدل استفاده کنه. اینجا memory رو استفاده کردیم. ولی می‌تونیم از وکتور دیتابیس هم استفاده کنیم. البته این ساختارها (مموری یا وکتور دیتابیس) اینقدر عادی شدند که نیازی ندارید تا جزئیات فنی داخلی‌شون رو الزاما یاد بگیرید و مهم نحوه استفاده ازشون است. به بیان خیلی ساده شده، دیتا توی یک ماتریس قرار می‌گیره که مشابهت/قرابت سطر و ستون که هر کدوم یک کلمه می‌تونیم در نظر بگیریم با یک عدد مشخص می‌شه.

ایجاد مموری:
var embeddingGenerator = kernel.Services.GetRequiredService<ITextEmbeddingGenerationService>();

var memory = new SemanticTextMemory(new VolatileMemoryStore(), embeddingGenerator);


حالا ذخیره داده‌ها داخل مموری:
const string MemoryCollectionName = "exchangeRates";

string url = "https://bonbast.org";
var exchangeRates = await GetExchangeRatesAsync(url);

foreach (var rate in exchangeRates)
{
string memoryKey = $"{rate.Key} to Iranian Rial";
await memory.SaveInformationAsync(MemoryCollectionName, id: memoryKey, text: $"1 {rate.Key} equals {rate.Value.AverageRate} Iranian Tomans...");
}

TextMemoryPlugin memoryPlugin = new(memory);

kernel.ImportPluginFromObject(memoryPlugin);


فایل راهنما و توضیحات بیشتر در پست بعدی... لطفا اجرا کنید و یه مقدار باهاش سر و کله بزنید که پست‌های بعدی مفید باشن 😉 اگر مفید بود و کاربردی، بگید تا بریم سراغ وکتور یا دریافت ورودی خروجی ساختار یافته به جای متن...

💬 سوال؟ پیشنهاد؟
البته Memory Store قابلیت‌های کمتری نسبت به Vector Store داره و خیلی ابتدایی‌تره. توی اولین مثال از مموری استفاده کردم فقط تا حداکثر سادگی رو داشته باشه.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Forwarded from Software Philosophy
درک انواع داده‌ها در سی‌شارپ

#csharp_for_beginners

در دنیای C#، درک تفاوت‌های بین انواع داده‌ها برای برنامه‌نویسی مؤثر بسیار مهم است. این مقاله به بررسی تفاوت‌های بین انواع داده‌های decimal، double و float می‌پردازد و بر دقت، صحت و تأثیرات عملکردی آن‌ها تمرکز می‌کند.

دقت (Precision): به نزدیکی اندازه‌گیری‌ها اشاره دارد. به عنوان مثال، اگر یک مقدار را چندین بار اندازه‌گیری کنیم و نتیجه یکسانی بگیریم، نشان‌دهنده دقت بالا است.

صحت (Accuracy): نشان‌دهنده نزدیکی یک اندازه‌گیری به یک استاندارد شناخته شده است. یک اندازه‌گیری که از مقدار واقعی دور است، نادرست تلقی می‌شود.

دقت حسابی (Arithmetic Precision): به تعداد ارقام استفاده شده برای نمایش یک عدد اشاره دارد. ارقام بیشتر به معنای دقت بالاتر است.

تایپ decimal
دقت: دقت بالا (28-29 رقم معنادار).
موارد استفاده: ایده‌آل برای محاسبات مالی که در آن دقت بسیار مهم است.
عملکرد: به دلیل نمایندگی پایه 10، کندتر از double و float است.

تایپ double
دقت: دقت متوسط (15-16 رقم معنادار).
موارد استفاده: مناسب برای محاسبات علمی که در آن عملکرد مهم‌تر از دقت است.
عملکرد: به دلیل نمایندگی پایه 2، سریع‌تر از decimal است.

تایپ float
دقت: دقت پایین (7 رقم معنادار).
موارد استفاده: در برنامه‌هایی که صرفه‌جویی در حافظه مهم‌تر از دقت است، مانند گرافیک، استفاده می‌شود.
عملکرد: مشابه double است اما با دقت کمتر.

مقایسه عملکرد
هنگام مقایسه عملکرد این انواع داده، مشخص می‌شود که:

تایپ Double سریع‌ترین است و برای برنامه‌هایی که به محاسبات سریع نیاز دارند، مناسب است.
تایپ Decimal کندترین است اما بالاترین دقت را ارائه می‌دهد و برای برنامه‌های مالی ایده‌آل است.
تایپ Float تعادلی بین سرعت و استفاده از حافظه ارائه می‌دهد اما دقت را فدای آن می‌کند.

🔗 ویدئو را از اینجا می‌توانید ببیند.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

کانال تلگرام:
@SoftwarePhilosophy

______
👍31🔥1👏1
Forwarded from thisisnabi.dev [Farsi]
سلام دوستان

ما برای یک استارت آپ در حوزه فین تک در حال جذب نیروی Backend در 2 سطح Senior و Mid هستیم.
اگر دوست داشتید می تونید برام رزومه بفرستید که من معرفیتون کنم.

دارن کارشون رو from scratch بالا میارن.

1. Senior .NET Developer
2. .NET Developer

🪖 امکان ریموت ندارند

@thisisnabi
برای یکی از چند تا شرکت بزرگ اکوسیستم، دوستانم در حال تیم سازی هستند. اگر در حوزه دات نت مید (d3 به بالا) تا تک لید هستید و دوست دارید این فرصت رو بررسی کنید، رزومه تون رو برام بفرستین

برای سنجش خودتون نگاهی به این فریم ورک بندازید:
https://github.com/jorgef/engineeringladders
@Merkousha
👍2
ایمان بیاورید...
12👎1
Forwarded from Code With HSN
سلام عزیزان 👋🏻، عیدی داریم از جنس طلب دانوش 📚
رفهاب (refhub) اسپانسرمون شده و قراره برای پلی لیست Pro .NET Memory Management یه سری حرکت خیلی خفن بزنیم باهم
اولین حرکت زیبامون کد تخفیف 25 درصدی هست به مدت 10 عدد تا 16 فروردین (5 April) ساعت 11:20 دقیقه
میتونید از این کد تخفیف استفاده کنید و هر کتابی که دوست دارین رو بخرین همچنین میتونید نسخه فیزیکی کتاب Pro .NET Memory Management روهم تهیه کنید

کد تخفیف:
HSNYoutube

وبسایت: https://refhub.ir
کانال تلگرام: t.me/refhubOfficial
👏3
Forwarded from DLeX: AI Python (NaviD DariYa)
This media is not supported in your browser
VIEW IN TELEGRAM
@ai_python

حالا که همه با ChatGPT انیمه خودتون رو ساختید، بدینش به Hydra که تبدیلش کنه به ویدیو 😂

لینک گروه پرسش و پاسخ علوم کامپیوتر
Please open Telegram to view this post
VIEW IN TELEGRAM
4
تف به نژاد پرست، در هر شکل و در هر جا.
👍11👎1
مرورگرر #Firefox در آخرین بروز رسانی خودش، هم تب ها رو برد به سمت چپ و هم AI Agent رو اضافه کرد به browser، حالا با انتخاب یه بخش از صفحه، میتونید با یه کلیک راست در مورد اون بخش از AI تون سوال بپرسید.
برای ما جامعه ی خودآزار طرفدار فایرفاکس این دو اقدام، یک پیشرفت روبه جلو بود واقعا.
🔥6🤩21
Forwarded from thisisnabi.dev [Farsi]
خب بریم که اولین کتاب امسال رو از من بگیرید.

برای شرکت در قرعه کشیش می تونید تا شنبه داخل این گروه جوین بشید.
بعد از قرعه کشی گروه حذف خواهد شد.

این سومین قرعه کشی هست و تا الان 7 جلد کتاب هدیه دادیم.
هر 21 روز یک کتاب.

AI Engineering: Building Applications with Foundation Models


لینک گروه: https://news.1rj.ru/str/+BqrUnBxS0qEyYTM0
3
Forwarded from refhub
رکورد فروشمون توسط یک خانم عزیز از بندرعباس با رقم 4926800 تومان شکست
🤩141👍1
https://www.instagram.com/reel/DIBy7HmozFW/?igsh=N3plZWtlM2Jmc3I=
اینو ببینید حتما بچه هامون عالین 💪
Forwarded from .NET Fun
خیلی بحث داره داغ میشه😁 چنتا نکته رو بگم:

۱- اتومپر و mediatr که هزارجور جایگزین دارن( نداشته باشن هم میشه نوشتتشون)

۲- یکی میاد ازشون فورک میگیره تحت عنوان Awesome- چیزی پکیجش میکنه. ( مثل اتفاقی که برای Fluent Assertion افتاد)

۳- این لایبرری ها به بلوغ کامل رسیدن و دیگه اپدیتی به اون صورت براشون نمیاد. پس رو یه ورژن اخری که رایگان بوده لاک میکنیم و تو پروژه هامون نگه میداریم

در اخر هم این نکته رو در نظر داشته باشید که هیچ کدوم از اینا به کامیونیتی دات نت ربطی نداره. همه اینا پروژه های شخصی بودن که صاحبشون تصمیم گرفته پولیشون کنه. فردا پسفردا همین اتفاق ممکنه برای سایر زبان های برنامه نویسی و فریم ورک ها هم بیوفته( مثلا Gin پولی شه)

در اینده هم یک ویدیو در مورد الگوی Mediator داخل کانال قرار میگیره و خودمون یه MediatR مینویسیم.

پنیک نکنید

@DotNetIsFun
👍8
Forwarded from iCodeNext
🎉🎉 تو یه جمع آنلاین دوستانه و باحال می‌خوایم راجب الگوهای معماری Event -Driven چیزایی یاد بگیریم!

این جلسه رایگانه
ظرفیت : 99 نفر (اگر حضور دارید، ثبت نام کنید)
زمان: 5 شنبه - 21 فروردین - ساعت 9.30 صبح


. توی این دورهمی آنلاین، می‌خوایم دنیای جذاب طراحی بر اساس رویدادها رو بررسی کنیم و چند تا الگو رو باهم یاد بگیریم.

جلسه تو گوگل میت برگزار می‌شه و دو لینک جداگانه برای دو ساعت مختلف برات ایمیل می‌شه.

🚀 منتظرت هستیم!

لینک ثبت نام برای دریافت لینک ورود و یادآوری.

https://lu.ma/43uky7t6
Forwarded from refhub
Book-Story.apk
52.9 MB
تا چند ساعت دیگه به 10.000 کاربر میرسیم، تمام تمرکز ماه های گذشته ی ما این بوده که کدام مشکل شما کتابخوان های عزیز رو حل کنیم.
در حال ساخت اپلیکیشن کتابخوان رفهاب هستیم و از این ریپازیتوری برای شروع استفاده کردیم، نسخه ی ما هنوز در حد انتظار نیست پس یک بیلد از خود اپ اصلی براتون میگذاریم به عنوان هدیه که احتمالا برای کتابخوانی در موبایل و تبلت معتادش خواهید شد.
بسیار ممنون خواهیم شد اگر هر فیدبک یا پیشنهادی داشتید با ما درمیان بگذارید.

باعشق
رفهاب
@refhub
👍31
Forwarded from Pasta Engineer (erfin)
پستگرس الگوریتمهای مختلفی برای ایندکس کردن داره که میتونید تو دایکیومنت خودش ببینید. من بیشتر B-Tree و GIN رو دیدم که استفاده میشه:
https://www.postgresql.org/docs/current/indexes-types.html
👍1
سرویس SlideCloud خروجی یکی از پروژه های جنبی بوتکمپ استخدامی #دانشکار هست که با بچه ها از انتخاب اسم تا دیپلوی و ... رو با هم جلو رفتیم و هنوز هم خیلی کار داره، ولی صرفا چون یک سری بخش های اصلی آماده استفاده هستن دوست داشتم این اسلاید رو باهاتون به اشتراک بگذارم :
https://slidecloud.ir/Slide/Detail/60
💯4
یا متمایز باش، یا بمیر
برای بیزنس هاست 😁
4👍1
اگه هنوز توی بیزنس تون برای جنگ احتمالی مملکت برنامه ریزی نکردین، بکنید، پلن داشتن و نیاز به اجرا نشدنش خیلی بهتر از نیاز به اجرا شدنش و پلن نداشتن هست.
👍8😢2