Buckets:

download
raw
16.1 kB
import{s as vl,n as Rl,o as _l}from"../chunks/scheduler.4048030c.js";import{S as Bl,i as bl,e as U,s as e,c as d,h as kl,a as T,d as J,b as n,f as hl,g as $,j as M,k as Ll,l as Hl,m as s,n as v,t as R,o as _,p as B}from"../chunks/index.b7616466.js";import{C as Sl,H as dl,E as Fl}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.8c8716c7.js";import{C as $l}from"../chunks/CodeBlock.f84443ec.js";function zl(ol){let w,H,b,S,i,F,a,z,I,jl='Вызов функций - это <strong>способ, с помощью которого LLM может выполнять действия в своем окружении</strong>. Впервые он был <a href="https://openai.com/index/function-calling-and-other-api-updates/" rel="nofollow">введен в GPT-4</a>, и затем был воспроизведен в других моделях.',O,o,ul="Как и инструменты агента, вызов функций дает модели возможность <strong>осуществлять действия в своем окружении</strong>. Однако способность к вызову функций <strong>приобретается моделью в процессе обучения</strong>, и она <strong>меньше зависит от подсказок, чем другие техники агентов</strong>.",V,j,Ql="В разделе 1 Агент <strong>не учился использовать инструменты</strong>, мы просто предоставили список, и мы полагались на то, что модель <strong>способна обобщить определение плана с помощью этих инструментов</strong>.",N,u,pl="В то время как здесь агент <strong>дообучается (тренируется) использовать инструменты с помощью вызова функций</strong>.",P,Q,Z,p,rl="В первом разделе мы рассмотрели общий процесс работы агента. После того как пользователь предоставит агенту некоторые инструменты и сформулирует запрос, модель выполнит следующий цикл:",G,r,Al="<li><em>Рассуждение</em> : Какое действие (действия) мне нужно предпринять, чтобы выполнить поставленную задачу.</li> <li><em>Действие</em> : Сформирует действие с нужным параметром и остановите генерацию.</li> <li><em>Наблюдение</em> : Получить результат выполнения.</li>",W,A,yl="В “типичном” диалоге с моделью через API, диалог будет чередоваться сообщениями пользователя и ассистента следующим образом:",Y,y,X,m,ml="Вызов функций привносит <strong>новые роли в диалог</strong>!",K,c,cl="<li>Одна новая роль для <strong>Действия</strong></li> <li>Одна новая роль для <strong>Наблюдения</strong></li>",ll,g,gl='Если мы возьмем <a href="https://docs.mistral.ai/capabilities/function_calling/" rel="nofollow">Mistral API</a> в качестве примера, это будет выглядеть так:',tl,q,Jl,f,ql="<p>… Но вы сказали, что есть новая роль для вызова функций?</p>",sl,C,fl="<strong>Да и нет</strong>, в этом случае, как и во многих других API, модель форматирует действие, которое нужно выполнить, как сообщение “ассистенту”. Затем шаблон чата представит это в виде <strong>специальных токенов</strong> для вызова функций.",el,E,Cl="<li><code>[AVAILABLE_TOOLS]</code> - начать список доступных инструментов</li> <li><code>[/AVAILABLE_TOOLS]</code> - завершить список доступных инструментов</li> <li><code>[TOOL_CALLS]</code> - Сделать вызов инструмента (т.е. выполнить “Действие”)</li> <li><code>[TOOL_RESULTS]</code> - “Наблюдать” результат действия</li> <li><code>[/TOOL_RESULTS]</code> - Завершение наблюдение (т.е. модель может снова декодировать)</li>",nl,x,El='Мы еще поговорим о вызовах функций в этом курсе, но если вы хотите погрузиться глубже, то можете ознакомиться с <a href="https://docs.mistral.ai/capabilities/function_calling/" rel="nofollow">этим отличным разделом документации</a>',Ul,Tl,Ml,D,xl="Теперь, когда мы узнали, что такое вызов функций и как он работает, давайте <strong>добавим некоторые возможности вызова функций к модели, которая еще не имеет таких возможностей</strong>: <strong>“google/gemma-2-2b-it”</strong>, добавив в модель несколько новых специальных токенов.",wl,h,Dl="Чтобы сделать это, <strong>нам нужно сначала понять, что такое дообучение и LoRA</strong>.",il,L,al,k,Il;return i=new Sl({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),a=new dl({props:{title:"Что такое вызов функции?",local:"что-такое-вызов-функции",headingTag:"h1"}}),Q=new dl({props:{title:"Как модель “учится” выполнять то или иное действие?",local:"как-модель-учится-выполнять-то-или-иное-действие",headingTag:"h2"}}),y=new $l({props:{code:"Y29udmVyc2F0aW9uJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUQwJTlDJUQwJUJEJUQwJUI1JTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUIwJTIwJUQwJUJGJUQwJUJFJUQwJUJDJUQwJUJFJUQxJTg5JUQxJThDJTIwJUQxJTgxJTIwJUQwJUJDJUQwJUJFJUQwJUI4JUQwJUJDJTIwJUQwJUI3JUQwJUIwJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUJDJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMmFzc2lzdGFudCUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRDAlQUYlMjAlRDAlQjElRDElODMlRDAlQjQlRDElODMlMjAlRDElODAlRDAlQjAlRDAlQjQlMjAlRDAlQkYlRDAlQkUlRDAlQkMlRDAlQkUlRDElODclRDElOEMuJTIwJUQwJTlEJUQwJUI1JTIwJUQwJUJDJUQwJUJFJUQwJUIzJUQwJUJCJUQwJUI4JTIwJUQwJUIxJUQxJThCJTIwJUQwJUIyJUQxJThCJTIwJUQxJTgxJUQwJUJFJUQwJUJFJUQwJUIxJUQxJTg5JUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUJEJUQwJUJFJUQwJUJDJUQwJUI1JUQxJTgwJTIwJUQwJUIyJUQwJUIwJUQxJTg4JUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJTNGJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUQwJUFEJUQxJTgyJUQwJUJFJTIwJUQwJTk3JUQwJTkwJUQwJTlBJUQwJTkwJUQwJTk3LTEyMyUyMiU3RCUyQyUwQSU1RA==",highlighted:`conversation = [
{<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Мне нужна помощь с моим заказом&quot;</span>},
{<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Я буду рад помочь. Не могли бы вы сообщить номер вашего заказа?&quot;</span>},
{<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Это ЗАКАЗ-123&quot;</span>},
]`,wrap:!1}}),q=new $l({props:{code:"Y29udmVyc2F0aW9uJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUQwJTlBJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgyJUQxJTgzJUQxJTgxJTIwJUQwJUJDJUQwJUJFJUQwJUI1JUQwJUI5JTIwJUQxJTgyJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI3JUQwJUIwJUQwJUJBJUQxJTg2JUQwJUI4JUQwJUI4JTIwVDEwMDElM0YlMjIlMEElMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJyb2xlJTIyJTNBJTIwJTIyYXNzaXN0YW50JTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmZ1bmN0aW9uX2NhbGwlMjIlM0ElMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIycmV0cmlldmVfcGF5bWVudF9zdGF0dXMlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJhcmd1bWVudHMlMjIlM0ElMjAlMjIlN0IlNUMlMjJ0cmFuc2FjdGlvbl9pZCU1QyUyMiUzQSUyMCU1QyUyMlQxMDAxJTVDJTIyJTdEJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycm9sZSUyMiUzQSUyMCUyMnRvb2wlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJuYW1lJTIyJTNBJTIwJTIycmV0cmlldmVfcGF5bWVudF9zdGF0dXMlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJTdCJTVDJTIyc3RhdHVzJTVDJTIyJTNBJTIwJTVDJTIyUGFpZCU1QyUyMiU3RCUyMiUwQSUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnJvbGUlMjIlM0ElMjAlMjJhc3Npc3RhbnQlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUQwJTkyJUQwJUIwJUQxJTg4JUQwJUIwJTIwJUQxJTgyJUQxJTgwJUQwJUIwJUQwJUJEJUQwJUI3JUQwJUIwJUQwJUJBJUQxJTg2JUQwJUI4JUQxJThGJTIwVDEwMDElMjAlRDAlQjElRDElOEIlRDAlQkIlRDAlQjAlMjAlRDElODMlRDElODElRDAlQkYlRDAlQjUlRDElODglRDAlQkQlRDAlQkUlMjAlRDAlQkUlRDAlQkYlRDAlQkIlRDAlQjAlRDElODclRDAlQjUlRDAlQkQlRDAlQjAuJTIyJTBBJTIwJTIwJTIwJTIwJTdEJTBBJTVE",highlighted:`conversation = [
{
<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>,
<span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Каков статус моей транзакции T1001?&quot;</span>
},
{
<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>,
<span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;&quot;</span>,
<span class="hljs-string">&quot;function_call&quot;</span>: {
<span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;retrieve_payment_status&quot;</span>,
<span class="hljs-string">&quot;arguments&quot;</span>: <span class="hljs-string">&quot;{\\&quot;transaction_id\\&quot;: \\&quot;T1001\\&quot;}&quot;</span>
}
},
{
<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;tool&quot;</span>,
<span class="hljs-string">&quot;name&quot;</span>: <span class="hljs-string">&quot;retrieve_payment_status&quot;</span>,
<span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;{\\&quot;status\\&quot;: \\&quot;Paid\\&quot;}&quot;</span>
},
{
<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>,
<span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Ваша транзакция T1001 была успешно оплачена.&quot;</span>
}
]`,wrap:!1}}),L=new Fl({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/ru-RU/bonus-unit1/what-is-function-calling.mdx"}}),{c(){w=U("meta"),H=e(),b=U("p"),S=e(),d(i.$$.fragment),F=e(),d(a.$$.fragment),z=e(),I=U("p"),I.innerHTML=jl,O=e(),o=U("p"),o.innerHTML=ul,V=e(),j=U("p"),j.innerHTML=Ql,N=e(),u=U("p"),u.innerHTML=pl,P=e(),d(Q.$$.fragment),Z=e(),p=U("p"),p.textContent=rl,G=e(),r=U("ol"),r.innerHTML=Al,W=e(),A=U("p"),A.textContent=yl,Y=e(),d(y.$$.fragment),X=e(),m=U("p"),m.innerHTML=ml,K=e(),c=U("ol"),c.innerHTML=cl,ll=e(),g=U("p"),g.innerHTML=gl,tl=e(),d(q.$$.fragment),Jl=e(),f=U("blockquote"),f.innerHTML=ql,sl=e(),C=U("p"),C.innerHTML=fl,el=e(),E=U("ul"),E.innerHTML=Cl,nl=e(),x=U("p"),x.innerHTML=El,Ul=e(),Tl=U("hr"),Ml=e(),D=U("p"),D.innerHTML=xl,wl=e(),h=U("p"),h.innerHTML=Dl,il=e(),d(L.$$.fragment),al=e(),k=U("p"),this.h()},l(l){const t=kl("svelte-u9bgzb",document.head);w=T(t,"META",{name:!0,content:!0}),t.forEach(J),H=n(l),b=T(l,"P",{}),hl(b).forEach(J),S=n(l),$(i.$$.fragment,l),F=n(l),$(a.$$.fragment,l),z=n(l),I=T(l,"P",{"data-svelte-h":!0}),M(I)!=="svelte-24t6yf"&&(I.innerHTML=jl),O=n(l),o=T(l,"P",{"data-svelte-h":!0}),M(o)!=="svelte-clvpnd"&&(o.innerHTML=ul),V=n(l),j=T(l,"P",{"data-svelte-h":!0}),M(j)!=="svelte-jccp7x"&&(j.innerHTML=Ql),N=n(l),u=T(l,"P",{"data-svelte-h":!0}),M(u)!=="svelte-coodwk"&&(u.innerHTML=pl),P=n(l),$(Q.$$.fragment,l),Z=n(l),p=T(l,"P",{"data-svelte-h":!0}),M(p)!=="svelte-acc3iz"&&(p.textContent=rl),G=n(l),r=T(l,"OL",{"data-svelte-h":!0}),M(r)!=="svelte-1oo8xlv"&&(r.innerHTML=Al),W=n(l),A=T(l,"P",{"data-svelte-h":!0}),M(A)!=="svelte-13iz9z0"&&(A.textContent=yl),Y=n(l),$(y.$$.fragment,l),X=n(l),m=T(l,"P",{"data-svelte-h":!0}),M(m)!=="svelte-1defcqq"&&(m.innerHTML=ml),K=n(l),c=T(l,"OL",{"data-svelte-h":!0}),M(c)!=="svelte-1vatoq6"&&(c.innerHTML=cl),ll=n(l),g=T(l,"P",{"data-svelte-h":!0}),M(g)!=="svelte-1t51oug"&&(g.innerHTML=gl),tl=n(l),$(q.$$.fragment,l),Jl=n(l),f=T(l,"BLOCKQUOTE",{"data-svelte-h":!0}),M(f)!=="svelte-olf8os"&&(f.innerHTML=ql),sl=n(l),C=T(l,"P",{"data-svelte-h":!0}),M(C)!=="svelte-xjquw8"&&(C.innerHTML=fl),el=n(l),E=T(l,"UL",{"data-svelte-h":!0}),M(E)!=="svelte-10jjt5f"&&(E.innerHTML=Cl),nl=n(l),x=T(l,"P",{"data-svelte-h":!0}),M(x)!=="svelte-1lw45k3"&&(x.innerHTML=El),Ul=n(l),Tl=T(l,"HR",{}),Ml=n(l),D=T(l,"P",{"data-svelte-h":!0}),M(D)!=="svelte-1rtc04t"&&(D.innerHTML=xl),wl=n(l),h=T(l,"P",{"data-svelte-h":!0}),M(h)!=="svelte-19989i5"&&(h.innerHTML=Dl),il=n(l),$(L.$$.fragment,l),al=n(l),k=T(l,"P",{}),hl(k).forEach(J),this.h()},h(){Ll(w,"name","hf:doc:metadata"),Ll(w,"content",Ol)},m(l,t){Hl(document.head,w),s(l,H,t),s(l,b,t),s(l,S,t),v(i,l,t),s(l,F,t),v(a,l,t),s(l,z,t),s(l,I,t),s(l,O,t),s(l,o,t),s(l,V,t),s(l,j,t),s(l,N,t),s(l,u,t),s(l,P,t),v(Q,l,t),s(l,Z,t),s(l,p,t),s(l,G,t),s(l,r,t),s(l,W,t),s(l,A,t),s(l,Y,t),v(y,l,t),s(l,X,t),s(l,m,t),s(l,K,t),s(l,c,t),s(l,ll,t),s(l,g,t),s(l,tl,t),v(q,l,t),s(l,Jl,t),s(l,f,t),s(l,sl,t),s(l,C,t),s(l,el,t),s(l,E,t),s(l,nl,t),s(l,x,t),s(l,Ul,t),s(l,Tl,t),s(l,Ml,t),s(l,D,t),s(l,wl,t),s(l,h,t),s(l,il,t),v(L,l,t),s(l,al,t),s(l,k,t),Il=!0},p:Rl,i(l){Il||(R(i.$$.fragment,l),R(a.$$.fragment,l),R(Q.$$.fragment,l),R(y.$$.fragment,l),R(q.$$.fragment,l),R(L.$$.fragment,l),Il=!0)},o(l){_(i.$$.fragment,l),_(a.$$.fragment,l),_(Q.$$.fragment,l),_(y.$$.fragment,l),_(q.$$.fragment,l),_(L.$$.fragment,l),Il=!1},d(l){l&&(J(H),J(b),J(S),J(F),J(z),J(I),J(O),J(o),J(V),J(j),J(N),J(u),J(P),J(Z),J(p),J(G),J(r),J(W),J(A),J(Y),J(X),J(m),J(K),J(c),J(ll),J(g),J(tl),J(Jl),J(f),J(sl),J(C),J(el),J(E),J(nl),J(x),J(Ul),J(Tl),J(Ml),J(D),J(wl),J(h),J(il),J(al),J(k)),J(w),B(i,l),B(a,l),B(Q,l),B(y,l),B(q,l),B(L,l)}}}const Ol='{"title":"Что такое вызов функции?","local":"что-такое-вызов-функции","sections":[{"title":"Как модель “учится” выполнять то или иное действие?","local":"как-модель-учится-выполнять-то-или-иное-действие","sections":[],"depth":2}],"depth":1}';function Vl(ol){return _l(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Wl extends Bl{constructor(w){super(),bl(this,w,Vl,zl,vl,{})}}export{Wl as component};

Xet Storage Details

Size:
16.1 kB
·
Xet hash:
71916f3744052300b0c720e208913b104e62ccf0cb33936b74bf67ee251cf264

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