TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.6K subscribers
Post #11650 6.93K
یه SQL agent ساختم که متن معمولی رو به کوئری‌های امن و دقیق دیتابیس تبدیل می‌کنه. این چیزیه که باعث میشه واقعاً توی پروداکشن کار کنه:

روش ساده‌لوحانه: یه بار صدا زدن LLM، دادن اسکیما، گرفتن SQL — همون لحظه‌ای که کاربر واقعی میاد سراغش می‌شکنه. سوال‌های مبهم، جدول اشتباه، بدون ریکاوری از خطا.

راه‌حل: تجزیه‌اش کردم به ۸ نود تخصصی داخل یه گراف LangGraph:
Router
Rewriter
Table Selector
SQL Generator
Validator
Executor
Synthesizer
Visualization
هر کدوم فقط یه کار انجام میدن. edgeهای شرطی هم مسئول routing و retry خودکار هستن.

نکتهٔ طلایی: حلقهٔ retry
اگه SQL یا توی validation رد بشه یا موقع اجرا fail بده، گراف برمی‌گرده به generator و خطا رو داخل کانتکست مکالمه تزریق می‌کنه. LLM می‌بینه چی نوشته بوده و چرا fail شده، و خودش اصلاحش می‌کنه.

۷ تا چیزی که فرق بین دمو و محصول واقعی رو مشخص می‌کنه:
- برای تصمیم‌های دسته‌بندی از function calling استفاده کن، نه parsing متن آزاد
- همیشه خروجی LLM رو با ground truth چک کن — مدل‌ها اسم جدول hallucinate می‌کنن
- روی retry دما رو ببر بالا که همون کوئری خراب رو دوباره نده
- کانتکست خطا رو تزریق کن — «تو X نوشتی، با Y fail شد، درستش کن»
- قبل از اجرا SQL رو validate کن — مثلاً regex برای DROP/DELETE با word boundary
- همه‌چیز رو streaming کن — کاربر نباید ۵ ثانیه به صفحه خالی نگاه کنه
- استفاده از Thread ID برای ایزوله بودن sessionها — چند کاربر، یه deployment، بدون تداخل state

سیستم خودش Vega-Lite chart هم می‌سازه. هیچ chart type ای هاردکد نشده — LLM از روی شکل داده encoding درست رو انتخاب می‌کنه.

کل کد (بک‌اند + فرانت React):
http://github.com/mallahyari/langgraph-sql-agent

توضیح معماری کامل هم داخل newsletter هست.
https://mlnotes.substack.com/p/building-a-production-ready-sql-agent

@DevTwitter | <Mehdi Allahyari/>
  • ❤ 30
  • 👍 6
  • 👎 5
More from @devtwitter
  1. Oct 14, 2026پروژه dbBackup_manager؛ ابزاری برای بکاپ و بازیابی دیتابیس PostgreSQL به‌تازگی اولین نسخه…
  2. Oct 14, 2026چرا Update در SQL Server سریع‌تر از Delete + Insert است؟ مدتی پیش در پروژه‌ی "بهای تمام شد…
  3. Oct 14, 2026یه API که برای ۱۰۰ کاربر خوب کار می‌کنه، لزوماً برای ۱۰ هزار کاربر آماده نیست. فرض کن یه A…
  4. Oct 14, 2026اگر بین انتخاب مسیر و ارزش یادگیری برنامه‌نویسی در عصر هوش مصنوعی شک دارید، پیشنهاد می‌کنم…
  5. Oct 14, 2026دوره جامع پایتون: مقدماتی تا پیشرفته 🗓شروع دوره:2 آبان 🎁 تخفیف ویژه برای دانشجویان، فرصت…
  6. Oct 14, 2026چین یه OCR اوپن سورس منتشر کرده که می‌تونه ده‌ها صفحه PDF رو یک‌جا بخونه! اسمش Unlimited-O…
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 →