TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2369 2.85K
گزارش از دیتابیس لازم داری؟ فقط حرف بزن!

تصور کنید وارد یک پنل مدیریتی می‌شوید، فقط یک جمله ساده تایپ می‌کنید:
«نمایش مشتریانی که بیش از ۵ خرید داشته‌اند»
و بدون اینکه حتی یک خط 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

________
DZone Database Query Service With OpenAI and PostgreSQL in .NET This service simplifies database querying for users without SQL knowledge by retrieving schemas, converting NLQs to SQL, and ensuring secure execution.
  • 🔥 9
  • ❤ 8
  • 👍 5
  • 👎 3
  • 👏 1
  • 🤔 1
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →