Knaph

عمق ۱ · ۱۷۷ ثانیه

سؤالِ چتر

مدل فقط متن می‌نویسد، پس عامل چطور کاری انجام می‌دهد؟ با ابزار. مدل یک فراخوانیِ ابزار می‌نویسد و می‌ایستد، برنامه آن را اجرا می‌کند و نتیجه را برمی‌گرداند. قدم به قدم، با یک مثالِ واقعی.

درباره‌ی این ویدیو

مدلِ زبانی فقط متن می‌خواند و متن می‌نویسد. نمی‌تواند فایلی باز کند، دستوری اجرا کند یا هوا را نگاه کند. ولی عامل همه‌ی این کارها را می‌کند. راهش کوچک و دقیق است، و وقتی آن را ببینید، خیلی چیزها درباره‌ی عامل‌ها دیگر مرموز نیست.

برنامه‌ی دورِ مدل در هر درخواست فهرستی از ابزارها می‌فرستد. هر ابزار سه بخش دارد: یک نام، مثلِ get_weather؛ یک شرح به زبانِ ساده که می‌گوید چه می‌کند و کی باید به کار برود؛ و ورودی‌هایی که لازم دارد، مثلاً نامِ یک شهر به شکلِ متن. مدل این‌ها را مثلِ بقیه‌ی زمینه‌اش می‌خواند. وقتی تصمیم می‌گیرد ابزاری کمک می‌کند، با کلمه جواب نمی‌دهد. یک فراخوانیِ ابزار با قالبی ثابت می‌نویسد، یعنی نامِ ابزار و ورودی‌هایش، و می‌ایستد.

این کلِ گفت‌وگوست وقتی لیلا می‌پرسد امروز در تبریز چتر ببرد یا نه. برنامه پرامپت سیستمی، ابزارها و سؤالِ او را می‌فرستد. مدل یک فراخوانیِ get_weather با شهرِ تبریز می‌نویسد و می‌ایستد. برنامه کدِ واقعیِ پشتِ ابزار را اجرا می‌کند، شاید از یک سرویسِ هواشناسی می‌پرسد، و جواب را به شکلِ نتیجه‌ی ابزار به گفت‌وگو اضافه می‌کند: باران سبک، ۹ درجه. دوباره همه‌چیز را می‌فرستد، و مدل نتیجه را می‌خواند و جواب می‌دهد: بله، ببر. مدل هرگز به اینترنت دست نزد. درخواستی نوشت و بعد نتیجه‌ای خواند. به این کار فراخوانیِ تابع هم می‌گویند.

شرحِ ابزار تنها چیزی است که مدل از آن می‌داند، پس ابزاری با شرحِ مبهم سرِ وقتِ نادرست به کار می‌رود، و شرحِ هر ابزار در هر درخواست توکن خرج می‌کند. عامل‌های برنامه‌نویسی چند ابزار دارند که تقریباً همه‌چیز را می‌پوشاند: خواندن، ویرایش، جست‌وجو، اجرای دستور در شل، و گرفتنِ صفحه‌ی وب. فراخوانی‌های ابزارِ عامل را بخوانید، نه فقط جوابِ آخرش را: نشان می‌دهند واقعاً چه کرده.

این ویدیو عمق ۱ از «استفاده از ابزار» را نشان می‌دهد.

یادگیری استفاده از ابزار

متن گفتار

  1. ۰:۰۰مدلِ زبانی فقط متن می‌نویسد. نمی‌تواند فایل‌هایتان را باز کند، در وب بگردد یا دستوری اجرا کند. پس عامل اصلاً چطور کاری انجام می‌دهد؟
  2. ۰:۲۰برنامه در هر درخواست فهرستی از ابزارها برای مدل می‌فرستد. هر ابزار یک نام دارد، مثلِ گت ودر. یک شرح به زبانِ ساده. و ورودی‌هایی که لازم دارد، این‌جا نامِ یک شهر، به شکلِ متن.
  3. ۰:۴۵وقتی ابزاری کمک می‌کند، مدل با کلمه جواب نمی‌دهد. یک فراخوانیِ ابزار با قالبی ثابت می‌نویسد. کدام ابزار، و ورودی‌ها، درست به شکلی که شرح خواسته. بعد می‌ایستد و منتظر می‌ماند. هنوز جوابی نیست.
  4. ۱:۱۵لیلا می‌پرسد امروز در تبریز چتر ببرم؟ برنامه سؤالش را همراهِ ابزارها می‌فرستد. مدل یک فراخوانیِ ابزار می‌نویسد، گت ودر، تبریز. برنامه کدِ واقعی را اجرا می‌کند و از سرویسِ هواشناسی می‌پرسد. باران سبک، نُه درجه. این به شکلِ نتیجه‌ی ابزار برمی‌گردد. حالا مدل جواب می‌دهد. بله، ببر. مدل هرگز به اینترنت دست نزد.
  5. ۱:۵۵شرحِ ابزار تنها چیزی است که مدل از آن می‌داند. اگر فقط بگوید هوا، برای هفته‌ی بعد هم به کار می‌رود، که جوابی برایش ندارد. بگویید چه می‌کند و کی به کار برود. و یادتان باشد هر شرح در هر درخواست هست.
  6. ۲:۱۸عاملِ برنامه‌نویسی چند ابزار دارد که تقریباً همه‌چیز را می‌پوشاند. خواندن، ویرایش، جست‌وجو، اجرای دستور، گرفتنِ صفحه‌ی وب. دستورِ شل ابزارِ قدرتمند است.
  7. ۲:۳۵پس فراخوانی‌های ابزار را بخوانید، نه فقط جوابِ آخر را. منتظر باشید ابزارها گاهی خطا بدهند و خطا به شکلِ نتیجه برگردد. و اگر ابزار می‌نویسید، با دقت شرحش بدهید.
  8. ۲:۵۰مدل می‌خواهد. برنامه انجام می‌دهد.