Tool UI: کامپوننتهای آماده برای نمایش Tool Callها در چتهای هوش مصنوعی
خلاصهٔ کاملتر
اگه تا حالا با مدلهای زبانی و tool calling کار کرده باشی، احتمالاً با این مشکل روبهرو شدی: وقتی مدل یه ابزار صدا میزنه، اکثر اپها همون JSON خام رو کپی میکنن توی مکالمه. نه خوانا، نه تعاملیه، نه کاربرپسند. Tool UI دقیقاً برای حل همین مشکل ساخته شده.
Tool UI یه مجموعه کامپوننت ریاکته که میتونی مستقیم کپی/پیست کنی توی پروژهات. مدل کارش دقیقاً مثل shadcn/uiه — کامپوننتها داخل کدبیس خودت مینشینن، نه توی یه پکیج خارجی. یعنی هیچ dependency lock-inی در کار نیست و هر وقت خواستی میتونی سفارشیشون کنی.
هر کامپوننت یه اسکیما Zod داره که پیلود خروجی ابزار رو validate میکنه. اگه داده معتبر بود، کامپوننت رندر میشه؛ اگه نبود، gracefully fail میکنه. این یعنی برنامهات crash نمیکنه حتی اگه مدل یه خروجی غیرمنتظره بده.
یه ویژگی جالب دیگه اینه که کامپوننتها فقط نمایشی نیستن — تعاملی هم هستن. مثلاً کاربر میتونه از بین چند گزینه انتخاب کنه یا یه فرم چندمرحلهای رو پر کنه، و این انتخابها به عنوان «receipt» ذخیره میشن و دوباره به دستیار برمیگردن.
پروژه روی shadcn/ui و Radix primitives با Tailwind ساخته شده، پس با تم موجود پروژهات سازگاره و نیازی به یاد گرفتن یه design system جدید نداری.
کامپوننتهای موجود طیف گستردهای رو پوشش میدن:
- Progress: Plan، Progress Tracker
- Input: Option List، Parameter Slider، Preferences Panel، Question Flow
- Display: Citation، Geo Map، Item Carousel، Link Preview، Stats Display، Terminal، Weather Widget
- Artifacts: Chart، Code Block، Code Diff، Data Table، پستهای شبکههای اجتماعی (Instagram، LinkedIn، X)، Message Draft
- Confirmation: Approval Card، Order Summary
- Media: Audio، Image، Image Gallery، Video
به عنوان مثال، کامپوننت Question Flow یه تجربه چندمرحلهای با branching logic داره، و Option List به کاربر اجازه میده از بین چند گزینهای که مدل پیشنهاد داده انتخاب کنه — همه اینا بدون اینکه کاربر از محیط چت خارج بشه.
مجوز پروژه MIT هست و توسط تیم assistant-ui نگهداری میشه.
نکات کلیدی:
- Tool UI پیلودهای JSON خام tool callها رو به UI تعاملی تبدیل میکنه
- مدل کپی/پیستیه (مثل shadcn/ui)، بدون dependency اضافه
- هر کامپوننت با Zod validate میشه و در صورت داده نامعتبر، بدون crash fail میکنه
- کامپوننتها تعاملیاند و انتخاب کاربر به عنوان receipt به مدل برمیگرده
- روی shadcn/ui و Tailwind ساخته شده و با تم موجود سازگاره
- بیش از ۳۰ کامپوننت در دستههای Progress، Input، Display، Artifacts، Confirmation و Media




