Buckets:

download
raw
45.7 kB
import{s as nU,a as iJ,n as DU,o as aU}from"../chunks/scheduler.4048030c.js";import{S as RU,i as CU,e,s,c as a,h as EU,a as M,d as U,b as Q,f as yJ,g as R,j as w,k as D,l as TU,m as t,n as C,t as E,o as T,p as j}from"../chunks/index.b7616466.js";import{C as jU,H as jl,E as AU}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.8c8716c7.js";import{C as pJ}from"../chunks/CodeBlock.f84443ec.js";function IU(VJ){let A,Al,El,Il,I,pl,p,il,i,oJ="В прошлом разделе мы узнали, как можно создавать агентов с нуля, используя код на Python, и <strong>увидели, насколько утомительным может быть этот процесс</strong>. К счастью, многие библиотеки Агентов упрощают эту работу, <strong>выполняя большую часть тяжелой работы за вас</strong>.",yl,y,mJ="В этом уроке <strong>вы создадите своего первого агента</strong>, способного выполнять такие действия, как генерация изображений, веб-поиск, проверка часового пояса и многое другое!",Vl,V,rJ="Вы также опубликуете своего агента <strong>в пространстве Hugging Face Space, чтобы вы могли поделиться им с друзьями и коллегами</strong>.",ol,o,cJ="Давайте начнем!",ml,m,rl,r,xJ,cl,c,gJ="Для создания этого агента мы будем использовать библиотеку <code>smolagents</code>, которая <strong>предоставляет основу для разработки агентов с легкостью</strong>.",xl,x,uJ="Эта легковесная библиотека создана для простоты, но она абстрагирует большую часть сложности создания агента, позволяя вам сосредоточиться на разработке поведения агента.",gl,g,kJ='В следующем разделе мы углубимся в изучение smolagents. А пока вы можете ознакомиться с этой <a href="https://huggingface.co/blog/smolagents" target="_blank">статьей в блоге</a> или с <a href="https://github.com/huggingface/smolagents" target="_blank">репозиторием библиотеки на GitHub</a>.',ul,u,hJ="Вкратце, <code>smolagents</code> - это библиотека, ориентированная на <strong>Агентов кода</strong>, вид агента, который выполняет <strong>“Действия”</strong> через блоки кода, а затем <strong>“Наблюдает”</strong> за результатами, выполняя код.",kl,k,bJ="Вот пример того, что мы будем создавать!",hl,h,SJ="Мы предоставили нашему агенту <strong>Инструмент генерации изображений</strong> и попросили его сгенерировать изображение кошки.",bl,b,dJ="Агент внутри <code>smolagents</code> будет иметь <strong>такое же поведение, как и пользовательский агент, который мы построили ранее</strong>: он будет <strong>думать, действовать и наблюдать в цикле</strong>, пока не придет к окончательному ответу:",Sl,n,fJ,dl,S,OJ="Захватывающе, правда?",fl,d,Ol,f,BJ='Для начала продублируйте это пространство (Space): <a href="https://huggingface.co/spaces/agents-course/First_agent_template" target="_blank">https://huggingface.co/spaces/agents-course/First_agent_template</a>',Bl,O,vJ='<p>Спасибо <a href="https://huggingface.co/m-ric" target="_blank">Aymeric</a> за этот шаблон! 🙌</p>',vl,B,_J="Дублирование этого пространства означает <strong>создание локальной копии в вашем собственном профиле</strong>:",_l,v,NJ,Nl,_,FJ='На протяжении всего этого урока единственным файлом, который вам придется изменить, будет (на данный момент неполный) <strong>“app.py »</strong>. Здесь вы можете увидеть <a href="https://huggingface.co/spaces/agents-course/First_agent_template/blob/main/app.py" rel="nofollow">оригинал в шаблоне</a>. Чтобы найти свой, зайдите в свою копию пространства, затем перейдите на вкладку <code>Files</code>, а затем на <code>app.py</code> в списке каталогов.',Fl,N,zJ="Давайте разберем код вместе:",zl,F,GJ="<li>Файл начинается с простого, но необходимого импорта библиотек</li>",Gl,z,Hl,G,HJ="Как уже говорилось ранее, мы будем напрямую использовать класс <strong>CodeAgent</strong> из <strong>smolagents</strong>.",Wl,H,Zl,W,WJ='Теперь перейдем к инструментам! Если вы хотите узнать больше об инструментах, не стесняйтесь вернуться к разделу курса <a href="tools">Инструменты</a>.',$l,Z,Xl,$,ZJ="Инструменты - это то, что мы призываем вас создать в этом разделе! Мы приводим два примера:",Yl,X,$J="<li><strong>нерабочий фиктивный инструмент</strong>, который вы можете модифицировать, чтобы сделать что-то полезное.</li> <li><strong>действительно работающий инструмент</strong>, который получает текущее время в любой точке мира.</li>",Ll,Y,XJ="Чтобы определить свой инструмент, необходимо:",ql,L,YJ="<li>Предоставить входной и выходной типы для вашей функции, как в <code>get_current_time_in_timezone(timezone: str) -&gt; str:</code></li> <li><strong>Написать хорошо отформатированную строку документации</strong>. <code>smolagents</code> ожидает, что все аргументы будут иметь <strong>текстовое описание в строке документации</strong>.</li>",Pl,q,Kl,P,LJ='Он использует <a href="https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct" rel="nofollow"><code>Qwen/Qwen2.5-Coder-32B-Instruct</code></a> в качестве движка LLM. Это очень способная модель, к которой мы будем обращаться через бессерверный API.',lJ,K,JJ,ll,qJ="Этот агент по-прежнему использует <code>InferenceClient</code>, который мы видели в предыдущем разделе за классом <strong>InferenceClientModel</strong>!",UJ,Jl,PJ="Мы приведем более подробные примеры, когда будем представлять фреймворк в разделе 2. Пока же вам нужно сосредоточиться на <strong>добавлении новых инструментов в список инструментов</strong> с помощью параметра <code>tools</code> вашего Агента.",tJ,Ul,KJ="Например, вы можете использовать <code>DuckDuckGoSearchTool</code>, который был импортирован в первой строке кода, или вы можете изучить <code>image_generation_tool</code>, который загружается из Hub позже в коде.",sJ,tl,lU="<strong>Добавление инструментов даст вашему агенту новые возможности</strong>, попробуйте проявить творческий подход!",QJ,sl,JU="Полная версия “app.py”:",eJ,Ql,MJ,el,UU="Ваша <strong>Цель</strong> - познакомиться с Пространством и Агентом.",wJ,Ml,tU="В настоящее время агент в шаблоне <strong>не использует никаких инструментов, поэтому постарайтесь снабдить его некоторыми из готовых инструментов или даже сделать новые инструменты самостоятельно!</strong>.",nJ,wl,sU="Мы с нетерпением ждем ваших потрясающих выводов агентов в канале discord <strong>#agents-course-showcase</strong>!",DJ,aJ,RJ,nl,QU="Поздравляем, вы создали своего первого агента! Не стесняйтесь поделиться им со своими друзьями и коллегами.",CJ,Dl,eU="Поскольку это ваша первая попытка, совершенно нормально, если он будет немного глючным или медленным. В следующих разделах мы узнаем, как создавать еще более совершенных агентов.",EJ,al,MU="Лучший способ научиться - это попробовать, поэтому не стесняйтесь обновлять его, добавлять новые инструменты, пробовать с другой моделью и т. д.",TJ,Rl,wU="В следующем разделе вы пройдете финальный тест и получите сертификат!",jJ,Cl,AJ,Tl,IJ;return I=new jU({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),p=new jl({props:{title:"Давайте создадим нашего первого агента с помощью smolagents",local:"давайте-создадим-нашего-первого-агента-с-помощью-smolagents",headingTag:"h1"}}),m=new jl({props:{title:"Что такое smolagents?",local:"что-такое-smolagents",headingTag:"h2"}}),d=new jl({props:{title:"Давайте создадим нашего агента!",local:"давайте-создадим-нашего-агента",headingTag:"h2"}}),z=new pJ({props:{code:"ZnJvbSUyMHNtb2xhZ2VudHMlMjBpbXBvcnQlMjBDb2RlQWdlbnQlMkMlMjBEdWNrRHVja0dvU2VhcmNoVG9vbCUyQyUyMEluZmVyZW5jZUNsaWVudE1vZGVsJTJDJTIwbG9hZF90b29sJTJDJTIwdG9vbCUwQWltcG9ydCUyMGRhdGV0aW1lJTBBaW1wb3J0JTIwcmVxdWVzdHMlMEFpbXBvcnQlMjBweXR6JTBBaW1wb3J0JTIweWFtbCUwQWZyb20lMjB0b29scy5maW5hbF9hbnN3ZXIlMjBpbXBvcnQlMjBGaW5hbEFuc3dlclRvb2w=",highlighted:`<span class="hljs-keyword">from</span> smolagents <span class="hljs-keyword">import</span> CodeAgent, DuckDuckGoSearchTool, InferenceClientModel, load_tool, tool
<span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">import</span> requests
<span class="hljs-keyword">import</span> pytz
<span class="hljs-keyword">import</span> yaml
<span class="hljs-keyword">from</span> tools.final_answer <span class="hljs-keyword">import</span> FinalAnswerTool`,wrap:!1}}),H=new jl({props:{title:"Инструменты",local:"инструменты",headingTag:"h3"}}),Z=new pJ({props:{code:"JTQwdG9vbCUwQWRlZiUyMG15X2N1c3RvbV90b29sKGFyZzElM0FzdHIlMkMlMjBhcmcyJTNBaW50KS0lM0UlMjBzdHIlM0ElMjAlMjMlMjAlRDAlQjIlRDAlQjAlRDAlQjYlRDAlQkQlRDAlQkUlMjAlRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDAlQjAlRDElODIlRDElOEMlMjAlRDAlQjIlRDAlQkUlRDAlQjclRDAlQjIlRDElODAlRDAlQjAlRDElODklRDAlQjAlRDAlQjUlRDAlQkMlRDElOEIlRDAlQjklMjAlRDElODIlRDAlQjglRDAlQkYlMEElMjAlMjAlMjAlMjAlMjMlMjAlRDAlQTElRDAlQkUlRDElODUlRDElODAlRDAlQjAlRDAlQkQlRDAlQjglRDElODIlRDAlQjUlMjAlRDElOEQlRDElODIlRDAlQkUlRDElODIlMjAlRDElODQlRDAlQkUlRDElODAlRDAlQkMlRDAlQjAlRDElODIlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDElOEYlMjAlRDAlQjglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQjAlMjAlMkYlMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQjglRDElOEYlMjAlRDAlQjAlRDElODAlRDAlQjMlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQkUlRDAlQjIlMkMlMjAlRDAlQkQlRDAlQkUlMjAlRDAlQkQlRDAlQjUlMjAlRDElODElRDElODIlRDAlQjUlRDElODElRDAlQkQlRDElOEYlRDAlQjklRDElODIlRDAlQjUlRDElODElRDElOEMlMjAlRDAlQkMlRDAlQkUlRDAlQjQlRDAlQjglRDElODQlRDAlQjglRDElODYlRDAlQjglRDElODAlRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlMjAlRDAlQjglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlRDAlOTglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlMkMlMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDElOEIlRDAlQjklMjAlRDAlQkYlRDAlQkUlRDAlQkElRDAlQjAlMjAlRDAlQkQlRDAlQjglRDElODclRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkQlRDAlQjUlMjAlRDAlQjQlRDAlQjUlRDAlQkIlRDAlQjAlRDAlQjUlRDElODIlMEElMjAlMjAlMjAlMjAlRDAlOTAlRDElODAlRDAlQjMlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDElOEIlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBhcmcxJTNBJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQwJUIwJUQxJTgwJUQwJUIzJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJnMiUzQSUyMCVEMCVCMiVEMSU4MiVEMCVCRSVEMSU4MCVEMCVCRSVEMCVCOSUyMCVEMCVCMCVEMSU4MCVEMCVCMyVEMSU4MyVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4MiUwQSUyMCUyMCUyMCUyMCUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMHJldHVybiUyMCUyMiVEMCU5QSVEMCVCMCVEMCVCQSVEMSU4MyVEMSU4RSUyMCVEMCVCQyVEMCVCMCVEMCVCMyVEMCVCOCVEMSU4RSUyMCVEMCVCMiVEMSU4QiUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMSU4MiVEMCVCNSUyMCVEMSU4MSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCMiVEMCVCMCVEMSU4MiVEMSU4QyUzRiUyMiUwQSUwQSU0MHRvb2wlMEFkZWYlMjBnZXRfY3VycmVudF90aW1lX2luX3RpbWV6b25lKHRpbWV6b25lJTNBJTIwc3RyKSUyMC0lM0UlMjBzdHIlM0ElMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlRDAlOTglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQkYlRDAlQkUlRDAlQkIlRDElODMlRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDElOEYlMjAlRDElODIlRDAlQjUlRDAlQkElRDElODMlRDElODklRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkMlRDAlQjUlRDElODElRDElODIlRDAlQkQlRDAlQkUlRDAlQjMlRDAlQkUlMjAlRDAlQjIlRDElODAlRDAlQjUlRDAlQkMlRDAlQjUlRDAlQkQlRDAlQjglMjAlRDAlQjIlMjAlRDElODMlRDAlQkElRDAlQjAlRDAlQjclRDAlQjAlRDAlQkQlRDAlQkQlRDAlQkUlRDAlQkMlMjAlRDElODclRDAlQjAlRDElODElRDAlQkUlRDAlQjIlRDAlQkUlRDAlQkMlMjAlRDAlQkYlRDAlQkUlRDElOEYlRDElODElRDAlQjUuJTBBJTIwJTIwJTIwJTIwJUQwJTkwJUQxJTgwJUQwJUIzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQxJThCJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdGltZXpvbmUlM0ElMjAlRDAlQTElRDElODIlRDElODAlRDAlQkUlRDAlQkElRDAlQjAlMkMlMjAlRDAlQkYlRDElODAlRDAlQjUlRDAlQjQlRDElODElRDElODIlRDAlQjAlRDAlQjIlRDAlQkIlRDElOEYlRDElOEUlRDElODklRDAlQjAlRDElOEYlMjAlRDAlQjQlRDAlQjUlRDAlQjklRDElODElRDElODIlRDAlQjIlRDAlQjglRDElODIlRDAlQjUlRDAlQkIlRDElOEMlRDAlQkQlRDElOEIlRDAlQjklMjAlRDElODclRDAlQjAlRDElODElRDAlQkUlRDAlQjIlRDAlQkUlRDAlQjklMjAlRDAlQkYlRDAlQkUlRDElOEYlRDElODElMjAoJUQwJUJEJUQwJUIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQxJTgwJTJDJTIwJ0FtZXJpY2ElMkZOZXdfWW9yaycpLiUwQSUyMCUyMCUyMCUyMCUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMHRyeSUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMCVEMCVBMSVEMCVCRSVEMCVCNyVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCRSVEMCVCMSVEMSU4QSVEMCVCNSVEMCVCQSVEMSU4MiVEMCVCMCUyMHRpbWV6b25lJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdHolMjAlM0QlMjBweXR6LnRpbWV6b25lKHRpbWV6b25lKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMyUyMCVEMCU5RiVEMCVCRSVEMCVCQiVEMSU4MyVEMSU4NyVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMSU4MiVEMCVCNSVEMCVCQSVEMSU4MyVEMSU4OSVEMCVCNSVEMCVCMyVEMCVCRSUyMCVEMCVCMiVEMSU4MCVEMCVCNSVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCOCUyMCVEMCVCMiUyMCVEMCVCNyVEMCVCMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMCVCRSVEMCVCQyUyMCVEMSU4NyVEMCVCMCVEMSU4MSVEMCVCRSVEMCVCMiVEMCVCRSVEMCVCQyUyMCVEMCVCRiVEMCVCRSVEMSU4RiVEMSU4MSVEMCVCNSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxvY2FsX3RpbWUlMjAlM0QlMjBkYXRldGltZS5kYXRldGltZS5ub3codHopLnN0cmZ0aW1lKCUyMiUyNVktJTI1bS0lMjVkJTIwJTI1SCUzQSUyNU0lM0ElMjVTJTIyKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMGYlMjIlRDAlQTIlRDAlQjUlRDAlQkElRDElODMlRDElODklRDAlQjUlRDAlQjUlMjAlRDAlQkMlRDAlQjUlRDElODElRDElODIlRDAlQkQlRDAlQkUlRDAlQjUlMjAlRDAlQjIlRDElODAlRDAlQjUlRDAlQkMlRDElOEYlMjAlRDAlQjIlMjAlN0J0aW1lem9uZSU3RCUyMCVEMSU4MSVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCMiVEMCVCQiVEMSU4RiVEMCVCNSVEMSU4MiUzQSUyMCU3QmxvY2FsX3RpbWUlN0QlMjIlMEElMjAlMjAlMjAlMjBleGNlcHQlMjBFeGNlcHRpb24lMjBhcyUyMGUlM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBmJTIyJUQwJTlFJUQxJTg4JUQwJUI4JUQwJUIxJUQwJUJBJUQwJUIwJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUIyJUQxJTgwJUQwJUI1JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI4JTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTg3JUQwJUIwJUQxJTgxJUQwJUJFJUQwJUIyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQxJThGJUQxJTgxJUQwJUIwJTIwJyU3QnRpbWV6b25lJTdEJyUzQSUyMCU3QnN0cihlKSU3RCUyMg==",highlighted:`<span class="hljs-meta">@tool</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">my_custom_tool</span>(<span class="hljs-params">arg1:<span class="hljs-built_in">str</span>, arg2:<span class="hljs-built_in">int</span></span>)-&gt; <span class="hljs-built_in">str</span>: <span class="hljs-comment"># важно указать возвращаемый тип</span>
<span class="hljs-comment"># Сохраните этот формат для описания инструмента / описания аргументов, но не стесняйтесь модифицировать инструмент</span>
<span class="hljs-string">&quot;&quot;&quot;Инструмент, который пока ничего не делает
Аргументы:
arg1: первый аргумент
arg2: второй аргумент
&quot;&quot;&quot;</span>
<span class="hljs-keyword">return</span> <span class="hljs-string">&quot;Какую магию вы будете создавать?&quot;</span>
<span class="hljs-meta">@tool</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_current_time_in_timezone</span>(<span class="hljs-params">timezone: <span class="hljs-built_in">str</span></span>) -&gt; <span class="hljs-built_in">str</span>:
<span class="hljs-string">&quot;&quot;&quot;Инструмент для получения текущего местного времени в указанном часовом поясе.
Аргменты:
timezone: Строка, представляющая действительный часовой пояс (например, &#x27;America/New_York&#x27;).
&quot;&quot;&quot;</span>
<span class="hljs-keyword">try</span>:
<span class="hljs-comment"># Создание объекта timezone</span>
tz = pytz.timezone(timezone)
<span class="hljs-comment"># Получение текущего времени в заданном часовом поясе</span>
local_time = datetime.datetime.now(tz).strftime(<span class="hljs-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
<span class="hljs-keyword">return</span> <span class="hljs-string">f&quot;Текущее местное время в <span class="hljs-subst">{timezone}</span> составляет: <span class="hljs-subst">{local_time}</span>&quot;</span>
<span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:
<span class="hljs-keyword">return</span> <span class="hljs-string">f&quot;Ошибка получения времени для часового пояса &#x27;<span class="hljs-subst">{timezone}</span>&#x27;: <span class="hljs-subst">{<span class="hljs-built_in">str</span>(e)}</span>&quot;</span>`,wrap:!1}}),q=new jl({props:{title:"Агент",local:"агент",headingTag:"h3"}}),K=new pJ({props:{code:"ZmluYWxfYW5zd2VyJTIwJTNEJTIwRmluYWxBbnN3ZXJUb29sKCklMEFtb2RlbCUyMCUzRCUyMEluZmVyZW5jZUNsaWVudE1vZGVsKCUwQSUyMCUyMCUyMCUyMG1heF90b2tlbnMlM0QyMDk2JTJDJTBBJTIwJTIwJTIwJTIwdGVtcGVyYXR1cmUlM0QwLjUlMkMlMEElMjAlMjAlMjAlMjBtb2RlbF9pZCUzRCdRd2VuJTJGUXdlbjIuNS1Db2Rlci0zMkItSW5zdHJ1Y3QnJTJDJTBBJTIwJTIwJTIwJTIwY3VzdG9tX3JvbGVfY29udmVyc2lvbnMlM0ROb25lJTJDJTBBKSUwQSUwQXdpdGglMjBvcGVuKCUyMnByb21wdHMueWFtbCUyMiUyQyUyMCdyJyklMjBhcyUyMHN0cmVhbSUzQSUwQSUyMCUyMCUyMCUyMHByb21wdF90ZW1wbGF0ZXMlMjAlM0QlMjB5YW1sLnNhZmVfbG9hZChzdHJlYW0pJTBBJTIwJTIwJTIwJTIwJTBBJTIzJTIwJUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJEJUQwJUIwJUQxJTg4JTIwJUQwJTlBJUQwJUJFJUQwJUI0JUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQwJTkwJUQwJUIzJUQwJUI1JUQwJUJEJUQxJTgyJTBBYWdlbnQlMjAlM0QlMjBDb2RlQWdlbnQoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMHRvb2xzJTNEJTVCZmluYWxfYW5zd2VyJTVEJTJDJTIwJTIzJTIwJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQxJThDJUQxJTgyJUQwJUI1JTIwJUQxJTgxJUQxJThFJUQwJUI0JUQwJUIwJTIwJUQxJTgxJUQwJUIyJUQwJUJFJUQwJUI4JTIwJUQwJUI4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQxJThCJTIwKCVEMCVCRCVEMCVCNSUyMCVEMSU4MyVEMCVCNCVEMCVCMCVEMCVCQiVEMSU4RiVEMCVCOSVEMSU4MiVEMCVCNSUyMGZpbmFsX2Fuc3dlciklMEElMjAlMjAlMjAlMjBtYXhfc3RlcHMlM0Q2JTJDJTBBJTIwJTIwJTIwJTIwdmVyYm9zaXR5X2xldmVsJTNEMSUyQyUwQSUyMCUyMCUyMCUyMGdyYW1tYXIlM0ROb25lJTJDJTBBJTIwJTIwJTIwJTIwcGxhbm5pbmdfaW50ZXJ2YWwlM0ROb25lJTJDJTBBJTIwJTIwJTIwJTIwbmFtZSUzRE5vbmUlMkMlMEElMjAlMjAlMjAlMjBkZXNjcmlwdGlvbiUzRE5vbmUlMkMlMEElMjAlMjAlMjAlMjBwcm9tcHRfdGVtcGxhdGVzJTNEcHJvbXB0X3RlbXBsYXRlcyUwQSklMEElMEFHcmFkaW9VSShhZ2VudCkubGF1bmNoKCk=",highlighted:`final_answer = FinalAnswerTool()
model = InferenceClientModel(
max_tokens=<span class="hljs-number">2096</span>,
temperature=<span class="hljs-number">0.5</span>,
model_id=<span class="hljs-string">&#x27;Qwen/Qwen2.5-Coder-32B-Instruct&#x27;</span>,
custom_role_conversions=<span class="hljs-literal">None</span>,
)
<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&quot;prompts.yaml&quot;</span>, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> stream:
prompt_templates = yaml.safe_load(stream)
<span class="hljs-comment"># Создаем наш Кодовый Агент</span>
agent = CodeAgent(
model=model,
tools=[final_answer], <span class="hljs-comment"># добавьте сюда свои инструменты (не удаляйте final_answer)</span>
max_steps=<span class="hljs-number">6</span>,
verbosity_level=<span class="hljs-number">1</span>,
grammar=<span class="hljs-literal">None</span>,
planning_interval=<span class="hljs-literal">None</span>,
name=<span class="hljs-literal">None</span>,
description=<span class="hljs-literal">None</span>,
prompt_templates=prompt_templates
)
GradioUI(agent).launch()`,wrap:!1}}),Ql=new pJ({props:{code:"ZnJvbSUyMHNtb2xhZ2VudHMlMjBpbXBvcnQlMjBDb2RlQWdlbnQlMkMlMjBEdWNrRHVja0dvU2VhcmNoVG9vbCUyQyUyMEluZmVyZW5jZUNsaWVudE1vZGVsJTJDJTIwbG9hZF90b29sJTJDJTIwdG9vbCUwQWltcG9ydCUyMGRhdGV0aW1lJTBBaW1wb3J0JTIwcmVxdWVzdHMlMEFpbXBvcnQlMjBweXR6JTBBaW1wb3J0JTIweWFtbCUwQWZyb20lMjB0b29scy5maW5hbF9hbnN3ZXIlMjBpbXBvcnQlMjBGaW5hbEFuc3dlclRvb2wlMEElMEFmcm9tJTIwR3JhZGlvX1VJJTIwaW1wb3J0JTIwR3JhZGlvVUklMEElMEElMjMlMjAlRDAlOUQlRDAlQjglRDAlQjYlRDAlQjUlMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQjIlRDAlQjUlRDAlQjQlRDAlQjUlRDAlQkQlMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQkMlRDAlQjUlRDElODAlMjAlRDAlQjglRDAlQkQlRDElODElRDElODIlRDElODAlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlRDAlQjAlMkMlMjAlRDAlQkElRDAlQkUlRDElODIlRDAlQkUlRDElODAlRDElOEIlRDAlQjklMjAlRDAlQkQlRDAlQjglRDElODclRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkQlRDAlQjUlMjAlRDAlQjQlRDAlQjUlRDAlQkIlRDAlQjAlRDAlQjUlRDElODIuJTIwJUQwJUEzJUQwJUI0JUQwJUI4JUQwJUIyJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQwJUJEJUQwJUIwJUQxJTgxJTIwJUQxJTgxJUQwJUIyJUQwJUJFJUQwJUI1JUQwJUI5JTIwJUQwJUJBJUQxJTgwJUQwJUI1JUQwJUIwJUQxJTgyJUQwJUI4JUQwJUIyJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQxJThDJUQxJThFISUwQSU0MHRvb2wlMEFkZWYlMjBteV9jdXN0b21fdG9vbChhcmcxJTNBc3RyJTJDJTIwYXJnMiUzQWludCktJTNFJTIwc3RyJTNBJTIwJTIzJTIwJUQwJUIyJUQwJUIwJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUIyJUQwJUJFJUQwJUI3JUQwJUIyJUQxJTgwJUQwJUIwJUQxJTg5JUQwJUIwJUQwJUI1JUQwJUJDJUQxJThCJUQwJUI5JTIwJUQxJTgyJUQwJUI4JUQwJUJGJTBBJTIwJTIwJTIwJTIwJTIzJTIwJUQwJUExJUQwJUJFJUQxJTg1JUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI4JUQxJTgyJUQwJUI1JTIwJUQxJThEJUQxJTgyJUQwJUJFJUQxJTgyJTIwJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTgyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUI4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQwJUIwJTIwJTJGJTIwJUQwJUJFJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTIwJUQwJUIwJUQxJTgwJUQwJUIzJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQwJUJFJUQwJUIyJTJDJTIwJUQwJUJEJUQwJUJFJTIwJUQwJUJEJUQwJUI1JTIwJUQxJTgxJUQxJTgyJUQwJUI1JUQxJTgxJUQwJUJEJUQxJThGJUQwJUI5JUQxJTgyJUQwJUI1JUQxJTgxJUQxJThDJTIwJUQwJUJDJUQwJUJFJUQwJUI0JUQwJUI4JUQxJTg0JUQwJUI4JUQxJTg2JUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUI4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyJUQwJTk4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUI5JTIwJUQwJUJGJUQwJUJFJUQwJUJBJUQwJUIwJTIwJUQwJUJEJUQwJUI4JUQxJTg3JUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUJEJUQwJUI1JTIwJUQwJUI0JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQxJTgyJTBBJTIwJTIwJTIwJTIwJUQwJTkwJUQxJTgwJUQwJUIzJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQxJThCJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwYXJnMSUzQSUyMCVEMCVCRiVEMCVCNSVEMSU4MCVEMCVCMiVEMSU4QiVEMCVCOSUyMCVEMCVCMCVEMSU4MCVEMCVCMyVEMSU4MyVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4MiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGFyZzIlM0ElMjAlRDAlQjIlRDElODIlRDAlQkUlRDElODAlRDAlQkUlRDAlQjklMjAlRDAlQjAlRDElODAlRDAlQjMlRDElODMlRDAlQkMlRDAlQjUlRDAlQkQlRDElODIlMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlMjIlRDAlOUElRDAlQjAlRDAlQkElRDElODMlRDElOEUlMjAlRDAlQkMlRDAlQjAlRDAlQjMlRDAlQjglRDElOEUlMjAlRDAlQjIlRDElOEIlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDElODIlRDAlQjUlMjAlRDElODElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQjIlRDAlQjAlRDElODIlRDElOEMlM0YlMjIlMEElMEElNDB0b29sJTBBZGVmJTIwZ2V0X2N1cnJlbnRfdGltZV9pbl90aW1lem9uZSh0aW1lem9uZSUzQSUyMHN0ciklMjAtJTNFJTIwc3RyJTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyJUQwJTk4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgyJUQwJUI1JUQwJUJBJUQxJTgzJUQxJTg5JUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUJDJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUIyJUQxJTgwJUQwJUI1JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI4JTIwJUQwJUIyJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUJDJTIwJUQxJTg3JUQwJUIwJUQxJTgxJUQwJUJFJUQwJUIyJUQwJUJFJUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQxJThGJUQxJTgxJUQwJUI1LiUwQSUyMCUyMCUyMCUyMCVEMCU5MCVEMSU4MCVEMCVCMyVEMCVCQyVEMCVCNSVEMCVCRCVEMSU4MiVEMSU4QiUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHRpbWV6b25lJTNBJTIwJUQwJUExJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUJBJUQwJUIwJTJDJTIwJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQxJThFJUQxJTg5JUQwJUIwJUQxJThGJTIwJUQwJUI0JUQwJUI1JUQwJUI5JUQxJTgxJUQxJTgyJUQwJUIyJUQwJUI4JUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg3JUQwJUIwJUQxJTgxJUQwJUJFJUQwJUIyJUQwJUJFJUQwJUI5JTIwJUQwJUJGJUQwJUJFJUQxJThGJUQxJTgxJTIwKCVEMCVCRCVEMCVCMCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCQyVEMCVCNSVEMSU4MCUyQyUyMCdBbWVyaWNhJTJGTmV3X1lvcmsnKS4lMEElMjAlMjAlMjAlMjAlMjIlMjIlMjIlMEElMjAlMjAlMjAlMjB0cnklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjAlRDAlQTElRDAlQkUlRDAlQjclRDAlQjQlRDAlQjAlRDAlQkQlRDAlQjglRDAlQjUlMjAlRDAlQkUlRDAlQjElRDElOEElRDAlQjUlRDAlQkElRDElODIlRDAlQjAlMjB0aW1lem9uZSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHR6JTIwJTNEJTIwcHl0ei50aW1lem9uZSh0aW1lem9uZSklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjAlRDAlOUYlRDAlQkUlRDAlQkIlRDElODMlRDElODclRDAlQjUlRDAlQkQlRDAlQjglRDAlQjUlMjAlRDElODIlRDAlQjUlRDAlQkElRDElODMlRDElODklRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQjIlRDElODAlRDAlQjUlRDAlQkMlRDAlQjUlRDAlQkQlRDAlQjglMjAlRDAlQjIlMjAlRDAlQjclRDAlQjAlRDAlQjQlRDAlQjAlRDAlQkQlRDAlQkQlRDAlQkUlRDAlQkMlMjAlRDElODclRDAlQjAlRDElODElRDAlQkUlRDAlQjIlRDAlQkUlRDAlQkMlMjAlRDAlQkYlRDAlQkUlRDElOEYlRDElODElRDAlQjUlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBsb2NhbF90aW1lJTIwJTNEJTIwZGF0ZXRpbWUuZGF0ZXRpbWUubm93KHR6KS5zdHJmdGltZSglMjIlMjVZLSUyNW0tJTI1ZCUyMCUyNUglM0ElMjVNJTNBJTI1UyUyMiklMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBmJTIyJUQwJUEyJUQwJUI1JUQwJUJBJUQxJTgzJUQxJTg5JUQwJUI1JUQwJUI1JTIwJUQwJUJDJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJEJUQwJUJFJUQwJUI1JTIwJUQwJUIyJUQxJTgwJUQwJUI1JUQwJUJDJUQxJThGJTIwJUQwJUIyJTIwJTdCdGltZXpvbmUlN0QlMjAlRDElODElRDAlQkUlRDElODElRDElODIlRDAlQjAlRDAlQjIlRDAlQkIlRDElOEYlRDAlQjUlRDElODIlM0ElMjAlN0Jsb2NhbF90aW1lJTdEJTIyJTBBJTIwJTIwJTIwJTIwZXhjZXB0JTIwRXhjZXB0aW9uJTIwYXMlMjBlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwZiUyMiVEMCU5RSVEMSU4OCVEMCVCOCVEMCVCMSVEMCVCQSVEMCVCMCUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4MyVEMSU4NyVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMCVCMiVEMSU4MCVEMCVCNSVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCOCUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMSU4NyVEMCVCMCVEMSU4MSVEMCVCRSVEMCVCMiVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMCVCRiVEMCVCRSVEMSU4RiVEMSU4MSVEMCVCMCUyMCclN0J0aW1lem9uZSU3RCclM0ElMjAlN0JzdHIoZSklN0QlMjIlMEElMEElMEFmaW5hbF9hbnN3ZXIlMjAlM0QlMjBGaW5hbEFuc3dlclRvb2woKSUwQW1vZGVsJTIwJTNEJTIwSW5mZXJlbmNlQ2xpZW50TW9kZWwoJTBBbWF4X3Rva2VucyUzRDIwOTYlMkMlMEF0ZW1wZXJhdHVyZSUzRDAuNSUyQyUwQW1vZGVsX2lkJTNEJ1F3ZW4lMkZRd2VuMi41LUNvZGVyLTMyQi1JbnN0cnVjdCclMkMlMEFjdXN0b21fcm9sZV9jb252ZXJzaW9ucyUzRE5vbmUlMkMlMEEpJTBBJTBBJTBBJTIzJTIwJUQwJTk4JUQwJUJDJUQwJUJGJUQwJUJFJUQxJTgwJUQxJTgyJTIwJUQwJUI4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQwJUIwJTIwJUQwJUI4JUQwJUI3JTIwSHViJTBBaW1hZ2VfZ2VuZXJhdGlvbl90b29sJTIwJTNEJTIwbG9hZF90b29sKCUyMmFnZW50cy1jb3Vyc2UlMkZ0ZXh0LXRvLWltYWdlJTIyJTJDJTIwdHJ1c3RfcmVtb3RlX2NvZGUlM0RUcnVlKSUwQSUwQXdpdGglMjBvcGVuKCUyMnByb21wdHMueWFtbCUyMiUyQyUyMCdyJyklMjBhcyUyMHN0cmVhbSUzQSUwQSUyMCUyMCUyMCUyMHByb21wdF90ZW1wbGF0ZXMlMjAlM0QlMjB5YW1sLnNhZmVfbG9hZChzdHJlYW0pJTBBJTIwJTIwJTIwJTIwJTBBYWdlbnQlMjAlM0QlMjBDb2RlQWdlbnQoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0Rtb2RlbCUyQyUwQSUyMCUyMCUyMCUyMHRvb2xzJTNEJTVCZmluYWxfYW5zd2VyJTVEJTJDJTIwJTIzJTIwJUQwJUI0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQxJThDJUQxJTgyJUQwJUI1JTIwJUQxJTgxJUQxJThFJUQwJUI0JUQwJUIwJTIwJUQxJTgxJUQwJUIyJUQwJUJFJUQwJUI4JTIwJUQwJUI4JUQwJUJEJUQxJTgxJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUJDJUQwJUI1JUQwJUJEJUQxJTgyJUQxJThCJTIwKCVEMCVCRCVEMCVCNSUyMCVEMSU4MyVEMCVCNCVEMCVCMCVEMCVCQiVEMSU4RiVEMCVCOSVEMSU4MiVEMCVCNSUyMGZpbmFsX2Fuc3dlciklMEElMjAlMjAlMjAlMjBtYXhfc3RlcHMlM0Q2JTJDJTBBJTIwJTIwJTIwJTIwdmVyYm9zaXR5X2xldmVsJTNEMSUyQyUwQSUyMCUyMCUyMCUyMGdyYW1tYXIlM0ROb25lJTJDJTBBJTIwJTIwJTIwJTIwcGxhbm5pbmdfaW50ZXJ2YWwlM0ROb25lJTJDJTBBJTIwJTIwJTIwJTIwbmFtZSUzRE5vbmUlMkMlMEElMjAlMjAlMjAlMjBkZXNjcmlwdGlvbiUzRE5vbmUlMkMlMEElMjAlMjAlMjAlMjBwcm9tcHRfdGVtcGxhdGVzJTNEcHJvbXB0X3RlbXBsYXRlcyUwQSklMEElMEElMEFHcmFkaW9VSShhZ2VudCkubGF1bmNoKCk=",highlighted:`<span class="hljs-keyword">from</span> smolagents <span class="hljs-keyword">import</span> CodeAgent, DuckDuckGoSearchTool, InferenceClientModel, load_tool, tool
<span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">import</span> requests
<span class="hljs-keyword">import</span> pytz
<span class="hljs-keyword">import</span> yaml
<span class="hljs-keyword">from</span> tools.final_answer <span class="hljs-keyword">import</span> FinalAnswerTool
<span class="hljs-keyword">from</span> Gradio_UI <span class="hljs-keyword">import</span> GradioUI
<span class="hljs-comment"># Ниже приведен пример инструмента, который ничего не делает. Удивите нас своей креативностью!</span>
<span class="hljs-meta">@tool</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">my_custom_tool</span>(<span class="hljs-params">arg1:<span class="hljs-built_in">str</span>, arg2:<span class="hljs-built_in">int</span></span>)-&gt; <span class="hljs-built_in">str</span>: <span class="hljs-comment"># важно указать возвращаемый тип</span>
<span class="hljs-comment"># Сохраните этот формат для описания инструмента / описания аргументов, но не стесняйтесь модифицировать инструмент</span>
<span class="hljs-string">&quot;&quot;&quot;Инструмент, который пока ничего не делает
Аргументы:
arg1: первый аргумент
arg2: второй аргумент
&quot;&quot;&quot;</span>
<span class="hljs-keyword">return</span> <span class="hljs-string">&quot;Какую магию вы будете создавать?&quot;</span>
<span class="hljs-meta">@tool</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_current_time_in_timezone</span>(<span class="hljs-params">timezone: <span class="hljs-built_in">str</span></span>) -&gt; <span class="hljs-built_in">str</span>:
<span class="hljs-string">&quot;&quot;&quot;Инструмент для получения текущего местного времени в указанном часовом поясе.
Аргменты:
timezone: Строка, представляющая действительный часовой пояс (например, &#x27;America/New_York&#x27;).
&quot;&quot;&quot;</span>
<span class="hljs-keyword">try</span>:
<span class="hljs-comment"># Создание объекта timezone</span>
tz = pytz.timezone(timezone)
<span class="hljs-comment"># Получение текущего времени в заданном часовом поясе</span>
local_time = datetime.datetime.now(tz).strftime(<span class="hljs-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
<span class="hljs-keyword">return</span> <span class="hljs-string">f&quot;Текущее местное время в <span class="hljs-subst">{timezone}</span> составляет: <span class="hljs-subst">{local_time}</span>&quot;</span>
<span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:
<span class="hljs-keyword">return</span> <span class="hljs-string">f&quot;Ошибка получения времени для часового пояса &#x27;<span class="hljs-subst">{timezone}</span>&#x27;: <span class="hljs-subst">{<span class="hljs-built_in">str</span>(e)}</span>&quot;</span>
final_answer = FinalAnswerTool()
model = InferenceClientModel(
max_tokens=<span class="hljs-number">2096</span>,
temperature=<span class="hljs-number">0.5</span>,
model_id=<span class="hljs-string">&#x27;Qwen/Qwen2.5-Coder-32B-Instruct&#x27;</span>,
custom_role_conversions=<span class="hljs-literal">None</span>,
)
<span class="hljs-comment"># Импорт инструмента из Hub</span>
image_generation_tool = load_tool(<span class="hljs-string">&quot;agents-course/text-to-image&quot;</span>, trust_remote_code=<span class="hljs-literal">True</span>)
<span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(<span class="hljs-string">&quot;prompts.yaml&quot;</span>, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[final_answer], <span class="hljs-comment"># добавьте сюда свои инструменты (не удаляйте final_answer)</span>
max_steps=<span class="hljs-number">6</span>,
verbosity_level=<span class="hljs-number">1</span>,
grammar=<span class="hljs-literal">None</span>,
planning_interval=<span class="hljs-literal">None</span>,
name=<span class="hljs-literal">None</span>,
description=<span class="hljs-literal">None</span>,
prompt_templates=prompt_templates
)
GradioUI(agent).launch()`,wrap:!1}}),Cl=new AU({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/ru-RU/unit1/tutorial.mdx"}}),{c(){A=e("meta"),Al=s(),El=e("p"),Il=s(),a(I.$$.fragment),pl=s(),a(p.$$.fragment),il=s(),i=e("p"),i.innerHTML=oJ,yl=s(),y=e("p"),y.innerHTML=mJ,Vl=s(),V=e("p"),V.innerHTML=rJ,ol=s(),o=e("p"),o.textContent=cJ,ml=s(),a(m.$$.fragment),rl=s(),r=e("img"),cl=s(),c=e("p"),c.innerHTML=gJ,xl=s(),x=e("p"),x.textContent=uJ,gl=s(),g=e("p"),g.innerHTML=kJ,ul=s(),u=e("p"),u.innerHTML=hJ,kl=s(),k=e("p"),k.textContent=bJ,hl=s(),h=e("p"),h.innerHTML=SJ,bl=s(),b=e("p"),b.innerHTML=dJ,Sl=s(),n=e("iframe"),dl=s(),S=e("p"),S.textContent=OJ,fl=s(),a(d.$$.fragment),Ol=s(),f=e("p"),f.innerHTML=BJ,Bl=s(),O=e("blockquote"),O.innerHTML=vJ,vl=s(),B=e("p"),B.innerHTML=_J,_l=s(),v=e("img"),Nl=s(),_=e("p"),_.innerHTML=FJ,Fl=s(),N=e("p"),N.textContent=zJ,zl=s(),F=e("ul"),F.innerHTML=GJ,Gl=s(),a(z.$$.fragment),Hl=s(),G=e("p"),G.innerHTML=HJ,Wl=s(),a(H.$$.fragment),Zl=s(),W=e("p"),W.innerHTML=WJ,$l=s(),a(Z.$$.fragment),Xl=s(),$=e("p"),$.textContent=ZJ,Yl=s(),X=e("ol"),X.innerHTML=$J,Ll=s(),Y=e("p"),Y.textContent=XJ,ql=s(),L=e("ol"),L.innerHTML=YJ,Pl=s(),a(q.$$.fragment),Kl=s(),P=e("p"),P.innerHTML=LJ,lJ=s(),a(K.$$.fragment),JJ=s(),ll=e("p"),ll.innerHTML=qJ,UJ=s(),Jl=e("p"),Jl.innerHTML=PJ,tJ=s(),Ul=e("p"),Ul.innerHTML=KJ,sJ=s(),tl=e("p"),tl.innerHTML=lU,QJ=s(),sl=e("p"),sl.textContent=JU,eJ=s(),a(Ql.$$.fragment),MJ=s(),el=e("p"),el.innerHTML=UU,wJ=s(),Ml=e("p"),Ml.innerHTML=tU,nJ=s(),wl=e("p"),wl.innerHTML=sU,DJ=s(),aJ=e("hr"),RJ=s(),nl=e("p"),nl.textContent=QU,CJ=s(),Dl=e("p"),Dl.textContent=eU,EJ=s(),al=e("p"),al.textContent=MU,TJ=s(),Rl=e("p"),Rl.textContent=wU,jJ=s(),a(Cl.$$.fragment),AJ=s(),Tl=e("p"),this.h()},l(l){const J=EU("svelte-u9bgzb",document.head);A=M(J,"META",{name:!0,content:!0}),J.forEach(U),Al=Q(l),El=M(l,"P",{}),yJ(El).forEach(U),Il=Q(l),R(I.$$.fragment,l),pl=Q(l),R(p.$$.fragment,l),il=Q(l),i=M(l,"P",{"data-svelte-h":!0}),w(i)!=="svelte-13cghrt"&&(i.innerHTML=oJ),yl=Q(l),y=M(l,"P",{"data-svelte-h":!0}),w(y)!=="svelte-5gu2f"&&(y.innerHTML=mJ),Vl=Q(l),V=M(l,"P",{"data-svelte-h":!0}),w(V)!=="svelte-y2uq6w"&&(V.innerHTML=rJ),ol=Q(l),o=M(l,"P",{"data-svelte-h":!0}),w(o)!=="svelte-1s3q477"&&(o.textContent=cJ),ml=Q(l),R(m.$$.fragment,l),rl=Q(l),r=M(l,"IMG",{src:!0,alt:!0}),cl=Q(l),c=M(l,"P",{"data-svelte-h":!0}),w(c)!=="svelte-1oe96a3"&&(c.innerHTML=gJ),xl=Q(l),x=M(l,"P",{"data-svelte-h":!0}),w(x)!=="svelte-xmzozo"&&(x.textContent=uJ),gl=Q(l),g=M(l,"P",{"data-svelte-h":!0}),w(g)!=="svelte-qkt2tx"&&(g.innerHTML=kJ),ul=Q(l),u=M(l,"P",{"data-svelte-h":!0}),w(u)!=="svelte-1c60q2l"&&(u.innerHTML=hJ),kl=Q(l),k=M(l,"P",{"data-svelte-h":!0}),w(k)!=="svelte-1yzzdiv"&&(k.textContent=bJ),hl=Q(l),h=M(l,"P",{"data-svelte-h":!0}),w(h)!=="svelte-1xhi54d"&&(h.innerHTML=SJ),bl=Q(l),b=M(l,"P",{"data-svelte-h":!0}),w(b)!=="svelte-1l9vn1"&&(b.innerHTML=dJ),Sl=Q(l),n=M(l,"IFRAME",{width:!0,height:!0,src:!0,title:!0,frameborder:!0,allow:!0,referrerpolicy:!0}),yJ(n).forEach(U),dl=Q(l),S=M(l,"P",{"data-svelte-h":!0}),w(S)!=="svelte-1l679en"&&(S.textContent=OJ),fl=Q(l),R(d.$$.fragment,l),Ol=Q(l),f=M(l,"P",{"data-svelte-h":!0}),w(f)!=="svelte-1x7ip0e"&&(f.innerHTML=BJ),Bl=Q(l),O=M(l,"BLOCKQUOTE",{"data-svelte-h":!0}),w(O)!=="svelte-vr0uy0"&&(O.innerHTML=vJ),vl=Q(l),B=M(l,"P",{"data-svelte-h":!0}),w(B)!=="svelte-8cez41"&&(B.innerHTML=_J),_l=Q(l),v=M(l,"IMG",{src:!0,alt:!0}),Nl=Q(l),_=M(l,"P",{"data-svelte-h":!0}),w(_)!=="svelte-1x9v6km"&&(_.innerHTML=FJ),Fl=Q(l),N=M(l,"P",{"data-svelte-h":!0}),w(N)!=="svelte-1r17c4f"&&(N.textContent=zJ),zl=Q(l),F=M(l,"UL",{"data-svelte-h":!0}),w(F)!=="svelte-1gloaak"&&(F.innerHTML=GJ),Gl=Q(l),R(z.$$.fragment,l),Hl=Q(l),G=M(l,"P",{"data-svelte-h":!0}),w(G)!=="svelte-ht95kn"&&(G.innerHTML=HJ),Wl=Q(l),R(H.$$.fragment,l),Zl=Q(l),W=M(l,"P",{"data-svelte-h":!0}),w(W)!=="svelte-1bmgy8u"&&(W.innerHTML=WJ),$l=Q(l),R(Z.$$.fragment,l),Xl=Q(l),$=M(l,"P",{"data-svelte-h":!0}),w($)!=="svelte-1904qqr"&&($.textContent=ZJ),Yl=Q(l),X=M(l,"OL",{"data-svelte-h":!0}),w(X)!=="svelte-w2qog7"&&(X.innerHTML=$J),Ll=Q(l),Y=M(l,"P",{"data-svelte-h":!0}),w(Y)!=="svelte-shhtj2"&&(Y.textContent=XJ),ql=Q(l),L=M(l,"OL",{"data-svelte-h":!0}),w(L)!=="svelte-fevusz"&&(L.innerHTML=YJ),Pl=Q(l),R(q.$$.fragment,l),Kl=Q(l),P=M(l,"P",{"data-svelte-h":!0}),w(P)!=="svelte-1bwakwg"&&(P.innerHTML=LJ),lJ=Q(l),R(K.$$.fragment,l),JJ=Q(l),ll=M(l,"P",{"data-svelte-h":!0}),w(ll)!=="svelte-12bxmzs"&&(ll.innerHTML=qJ),UJ=Q(l),Jl=M(l,"P",{"data-svelte-h":!0}),w(Jl)!=="svelte-15kq4xi"&&(Jl.innerHTML=PJ),tJ=Q(l),Ul=M(l,"P",{"data-svelte-h":!0}),w(Ul)!=="svelte-1ac67pm"&&(Ul.innerHTML=KJ),sJ=Q(l),tl=M(l,"P",{"data-svelte-h":!0}),w(tl)!=="svelte-1cgtb5z"&&(tl.innerHTML=lU),QJ=Q(l),sl=M(l,"P",{"data-svelte-h":!0}),w(sl)!=="svelte-1ads84"&&(sl.textContent=JU),eJ=Q(l),R(Ql.$$.fragment,l),MJ=Q(l),el=M(l,"P",{"data-svelte-h":!0}),w(el)!=="svelte-6hqmll"&&(el.innerHTML=UU),wJ=Q(l),Ml=M(l,"P",{"data-svelte-h":!0}),w(Ml)!=="svelte-ueil6z"&&(Ml.innerHTML=tU),nJ=Q(l),wl=M(l,"P",{"data-svelte-h":!0}),w(wl)!=="svelte-1ket0yy"&&(wl.innerHTML=sU),DJ=Q(l),aJ=M(l,"HR",{}),RJ=Q(l),nl=M(l,"P",{"data-svelte-h":!0}),w(nl)!=="svelte-10851b7"&&(nl.textContent=QU),CJ=Q(l),Dl=M(l,"P",{"data-svelte-h":!0}),w(Dl)!=="svelte-172vnxc"&&(Dl.textContent=eU),EJ=Q(l),al=M(l,"P",{"data-svelte-h":!0}),w(al)!=="svelte-bubc2z"&&(al.textContent=MU),TJ=Q(l),Rl=M(l,"P",{"data-svelte-h":!0}),w(Rl)!=="svelte-u6mr6m"&&(Rl.textContent=wU),jJ=Q(l),R(Cl.$$.fragment,l),AJ=Q(l),Tl=M(l,"P",{}),yJ(Tl).forEach(U),this.h()},h(){D(A,"name","hf:doc:metadata"),D(A,"content",pU),iJ(r.src,xJ="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/smolagents.png")||D(r,"src",xJ),D(r,"alt","smolagents"),D(n,"width","560"),D(n,"height","315"),iJ(n.src,fJ="https://www.youtube.com/embed/PQDKcWiuln4?si=ysSTDZoi8y55FVvA")||D(n,"src",fJ),D(n,"title","Видеоплеер YouTube"),D(n,"frameborder","0"),D(n,"allow","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"),D(n,"referrerpolicy","strict-origin-when-cross-origin"),n.allowFullscreen="",iJ(v.src,NJ="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/duplicate-space.gif")||D(v,"src",NJ),D(v,"alt","Дубликат")},m(l,J){TU(document.head,A),t(l,Al,J),t(l,El,J),t(l,Il,J),C(I,l,J),t(l,pl,J),C(p,l,J),t(l,il,J),t(l,i,J),t(l,yl,J),t(l,y,J),t(l,Vl,J),t(l,V,J),t(l,ol,J),t(l,o,J),t(l,ml,J),C(m,l,J),t(l,rl,J),t(l,r,J),t(l,cl,J),t(l,c,J),t(l,xl,J),t(l,x,J),t(l,gl,J),t(l,g,J),t(l,ul,J),t(l,u,J),t(l,kl,J),t(l,k,J),t(l,hl,J),t(l,h,J),t(l,bl,J),t(l,b,J),t(l,Sl,J),t(l,n,J),t(l,dl,J),t(l,S,J),t(l,fl,J),C(d,l,J),t(l,Ol,J),t(l,f,J),t(l,Bl,J),t(l,O,J),t(l,vl,J),t(l,B,J),t(l,_l,J),t(l,v,J),t(l,Nl,J),t(l,_,J),t(l,Fl,J),t(l,N,J),t(l,zl,J),t(l,F,J),t(l,Gl,J),C(z,l,J),t(l,Hl,J),t(l,G,J),t(l,Wl,J),C(H,l,J),t(l,Zl,J),t(l,W,J),t(l,$l,J),C(Z,l,J),t(l,Xl,J),t(l,$,J),t(l,Yl,J),t(l,X,J),t(l,Ll,J),t(l,Y,J),t(l,ql,J),t(l,L,J),t(l,Pl,J),C(q,l,J),t(l,Kl,J),t(l,P,J),t(l,lJ,J),C(K,l,J),t(l,JJ,J),t(l,ll,J),t(l,UJ,J),t(l,Jl,J),t(l,tJ,J),t(l,Ul,J),t(l,sJ,J),t(l,tl,J),t(l,QJ,J),t(l,sl,J),t(l,eJ,J),C(Ql,l,J),t(l,MJ,J),t(l,el,J),t(l,wJ,J),t(l,Ml,J),t(l,nJ,J),t(l,wl,J),t(l,DJ,J),t(l,aJ,J),t(l,RJ,J),t(l,nl,J),t(l,CJ,J),t(l,Dl,J),t(l,EJ,J),t(l,al,J),t(l,TJ,J),t(l,Rl,J),t(l,jJ,J),C(Cl,l,J),t(l,AJ,J),t(l,Tl,J),IJ=!0},p:DU,i(l){IJ||(E(I.$$.fragment,l),E(p.$$.fragment,l),E(m.$$.fragment,l),E(d.$$.fragment,l),E(z.$$.fragment,l),E(H.$$.fragment,l),E(Z.$$.fragment,l),E(q.$$.fragment,l),E(K.$$.fragment,l),E(Ql.$$.fragment,l),E(Cl.$$.fragment,l),IJ=!0)},o(l){T(I.$$.fragment,l),T(p.$$.fragment,l),T(m.$$.fragment,l),T(d.$$.fragment,l),T(z.$$.fragment,l),T(H.$$.fragment,l),T(Z.$$.fragment,l),T(q.$$.fragment,l),T(K.$$.fragment,l),T(Ql.$$.fragment,l),T(Cl.$$.fragment,l),IJ=!1},d(l){l&&(U(Al),U(El),U(Il),U(pl),U(il),U(i),U(yl),U(y),U(Vl),U(V),U(ol),U(o),U(ml),U(rl),U(r),U(cl),U(c),U(xl),U(x),U(gl),U(g),U(ul),U(u),U(kl),U(k),U(hl),U(h),U(bl),U(b),U(Sl),U(n),U(dl),U(S),U(fl),U(Ol),U(f),U(Bl),U(O),U(vl),U(B),U(_l),U(v),U(Nl),U(_),U(Fl),U(N),U(zl),U(F),U(Gl),U(Hl),U(G),U(Wl),U(Zl),U(W),U($l),U(Xl),U($),U(Yl),U(X),U(Ll),U(Y),U(ql),U(L),U(Pl),U(Kl),U(P),U(lJ),U(JJ),U(ll),U(UJ),U(Jl),U(tJ),U(Ul),U(sJ),U(tl),U(QJ),U(sl),U(eJ),U(MJ),U(el),U(wJ),U(Ml),U(nJ),U(wl),U(DJ),U(aJ),U(RJ),U(nl),U(CJ),U(Dl),U(EJ),U(al),U(TJ),U(Rl),U(jJ),U(AJ),U(Tl)),U(A),j(I,l),j(p,l),j(m,l),j(d,l),j(z,l),j(H,l),j(Z,l),j(q,l),j(K,l),j(Ql,l),j(Cl,l)}}}const pU='{"title":"Давайте создадим нашего первого агента с помощью smolagents","local":"давайте-создадим-нашего-первого-агента-с-помощью-smolagents","sections":[{"title":"Что такое smolagents?","local":"что-такое-smolagents","sections":[],"depth":2},{"title":"Давайте создадим нашего агента!","local":"давайте-создадим-нашего-агента","sections":[{"title":"Инструменты","local":"инструменты","sections":[],"depth":3},{"title":"Агент","local":"агент","sections":[],"depth":3}],"depth":2}],"depth":1}';function iU(VJ){return aU(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class rU extends RU{constructor(A){super(),CU(this,A,iU,IU,nU,{})}}export{rU as component};

Xet Storage Details

Size:
45.7 kB
·
Xet hash:
9e3eca4a4f459f82015c71662e45398329145616ba5eb3e8a6499c63c0f7acb2

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.