دو الگوی رابط کاربری برای LLM که چت نیستن
خلاصهٔ کاملتر
چت هنوز رابط پیشفرض کار با مدلهای زبانیه و برای خیلی موارد هم مشکلی نداره. ولی نویسنده میگه بعضی کارها وقتی بهجای یه رشته پیام، به شکل context ساختاریافته نشون داده بشن خیلی بهتر جواب میدن. اون دوتا الگو رو با اپهای نمونه معرفی میکنه: مقایسه به شکل جدول، و تجزیه به شکل درخت.
الگوی اول مقایسهست. وقتی توی چت از مدل میخوای چندتا چیز رو مقایسه کنه، اولش یه جدول قشنگ میده، ولی با هر سوال بعدی اطلاعات مفید پخش میشه لای چند تا جواب و مدل هی میخواد کل جدول رو از نو بکشه. نویسنده میگه خود جدول همون چیزیه که میخوای: آیتمها سطر، سوالها ستون، و جوابها سلول.
توی اپ نمونهش هر سوال جدید یه ستون به جدول اضافه میکنه و هر آیتم جدید یه سطر. حسش مثل چتکردن با یه spreadsheetـه. نکتهی جالب اینه که چون مدل داره سلولها رو پر میکنه، ستونها میتونن از مشخصات خشک فراتر برن؛ مثلاً ترجمه، یکسانکردن واحدها، یا حتی قضاوتهای نرم مثل «این برای یه تازهکار خوبه؟».
کلید فنی این الگو سادهست: فراخوانی مدل به شکل یه tool call تعریف میشه که برای هر سطر دقیقاً یه مقدار برمیگردونه. این شکل با نسل فعلی مدلها خوب جور درمیاد:
{
"name": "fill_column",
"description": "Answer a comparison question for each item in the table.",
"input_schema": {
"type": "object",
"properties": {
"answers": { "type": "array" }
},
"required": ["answers"]
}
}الگوی دوم تجزیهست. بعضی کارها لازمه شاخههای مختلف context رو جدا کاوش کنی. توی یه چت خطی این شاخهها قاطی هم میشن و context رو خراب میکنن. شکل طبیعی این کار یه درخته که هر شاخه context والدش رو به ارث میبره ولی از شاخههای همسطح خودش مستقله.
توی اپ نمونه، هر node یه دکمهی expand داره که سرفصل فعلی رو با کمی context اطراف به مدل میفرسته و مدل توی یکی از سه شکل جواب میده: breakdown برای چند زیرمورد مشخص، question وقتی یه جزئیات گمشده میتونه جواب رو عوض کنه، و options برای مسیرهای متقابل که انتخاب یکی، node رو جایگزین میکنه:
{"type": "breakdown", "items": ["..."]}
{"type": "question", "question": "...", "choices": ["..."]}
{"type": "options", "options": ["..."]}نکتهی مهم اینه که prompt محکم جلوی زبون کلیِ برنامهریزی رو میگیره؛ چیزهایی مثل «گزینهها رو بررسی کن» یا «محیط رو آماده کن» قبوله نیستن و بهجاش node های مشخص و عملپذیر میخواد. هر شاخه فقط context متمرکز خودش رو میبینه و همین scoping تمیزتر از یه transcript خطیه.
حرف آخر نویسنده اینه که کار مدل توی هردوتا این ابزارها عادیه؛ چیزی که مهمه خود contextـه: چطور ساخته میشه، چطور استفاده میشه، و آیا رابط کاربری شکلش رو پشتیبانی میکنه یا نه. بیشتر ابزارهای فعلی context رو مثل یه transcript که فقط یه طرف رشد میکنه رها میکنن، در حالی که ساختار دور فراخوانی مدل جاییه که بیشترِ کار طراحی جالب و کشفنشده اونجاست.
نکات کلیدی:
- چت برای همهی کارها بهترین رابط نیست؛ بعضی کارها context ساختاریافته میخوان
- مقایسهی چندتا چیز بهجای چت، بهتره به شکل جدولِ زنده باشه که سوالها ستون میسازن
- کارهای بزرگ بهتره به شکل درخت تجزیه بشن تا شاخهها context هم رو خراب نکنن
- فراخوانی مدل به شکل tool call ساختاریافته با نسل فعلی مدلها خوب جور درمیاد
- نکتهی واقعی، طراحیِ خود context و رابطیه که شکلش میده، نه پیچیدگیِ خود مدل




