Buckets:
| import{s as ot,a as _e,n as it,o as rt}from"../chunks/scheduler.893fe8c9.js";import{S as mt,i as ct,e as p,s as a,c as d,h as ut,a as o,d as l,b as n,f as O,g as w,j as r,k as i,l as dt,m as s,n as f,t as y,o as J,p as h}from"../chunks/index.2d09ebb4.js";import{C as wt,H as pt,E as ft}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.7bc0b9a5.js";import{C as A}from"../chunks/CodeBlock.347b4d52.js";import{C as yt}from"../chunks/CourseFloatingBanner.e3aeab73.js";function Jt(Ve){let M,ee,K,te,g,le,b,se,T,ae,x,We="Давайте начнем с установки Gradio! Поскольку это пакет для Python, просто выполните:",ne,j,Re="<code>$ pip install gradio</code>",pe,U,Xe=`Вы можете запускать Gradio где угодно, будь то ваша любимая IDE Python, Jupyter-блокнот или даже Google Colab 🤯! | |
| Так что установите Gradio везде, где вы используете Python!`,oe,$,Pe="Давайте начнем с простого примера “Hello World”, чтобы познакомиться с синтаксисом Gradio:",ie,G,re,I,Ee="Давайте пройдемся по приведенному выше коду:",me,k,qe="<li>Сначала мы определяем функцию <code>greet()</code>. В данном случае это простая функция, которая добавляет “Hello” перед вашим именем, но это может быть <em>любая</em> функция Python в целом. Например, в приложениях машинного обучения эта функция будет <em>вызывать модель для прогнозирования</em> на входных данных и возвращать вывод.</li> <li>Затем мы создаем интерфейс Gradio <code>Interface</code> с тремя аргументами, <code>fn</code>, <code>inputs</code> и <code>outputs</code>. Эти аргументы определяют функцию прогнозирования, а также <em>тип</em> входных и выходных компонентов, которые мы хотим получить. В нашем случае оба компонента представляют собой простые текстовые поля.</li> <li>Затем мы вызываем метод <code>launch()</code> для созданного нами <code>Interface</code>.</li>",ce,v,Se='Если вы запустите этот код, нижеприведенный интерфейс автоматически появится в блокноте Jupyter/Colab или откроется в браузере на <strong><a href="http://localhost:7860/" rel="nofollow">http://localhost:7860</a></strong> при запуске из скрипта.',ue,m,Ye,de,C,Le="Попробуйте использовать этот GUI прямо сейчас с собственным именем или другими данными!",we,B,ze=`Вы заметите, что в этом GUI Gradio автоматически определил имя входного параметра (<code>name</code>) | |
| и применил его в качестве метки поверх текстового поля. Что если вы захотите изменить это? | |
| Или если вы хотите настроить текстовое поле каким-то другим способом? В этом случае вы можете | |
| инстанцировать объект класса, представляющий компонент ввода.`,fe,Z,Ne="Посмотрите на пример ниже:",ye,Q,Je,c,Fe,he,H,Ae=`Здесь мы создали текстовое поле ввода с меткой, заполнителем и заданным количеством строк. | |
| То же самое можно сделать и для выходного текстового поля, но мы пока что остановимся на этом.`,Me,_,Ke=`Мы увидели, что с помощью всего нескольких строк кода Gradio позволяет создать простой интерфейс вокруг любой функции | |
| с любыми входами и выходами. В этом разделе мы начали с | |
| простого текстового поля, но в следующих разделах мы рассмотрим другие виды входов и выходов. Теперь давайте рассмотрим применение некоторого NLP в приложении Gradio.`,ge,V,be,W,De="Теперь давайте рассмотрим простой интерфейс, который позволит продемонстрировать демо модели <strong>генерации текста (text-generation)</strong>, такой как GPT-2.",Te,R,Oe=`Мы загрузим нашу модель с помощью функции <code>pipeline()</code> из 🤗 Transformers. | |
| Если вам нужно быстро освежить в памяти материал, вы можете вернуться к <a href="../chapter1/3#text-generation">этому разделу в Главе 1</a>.`,xe,X,et="Сначала мы определяем функцию прогнозирования, которая принимает текстовую подсказку (text prompt) и возвращает ее завершение текста:",je,P,Ue,E,tt="Эта функция завершает введенные вами подсказки, и вы можете запустить ее с вашими собственными подсказками, чтобы посмотреть, как она работает. Вот пример (вы можете получить другое завершение):",$e,q,Ge,S,Ie,Y,lt="Теперь, когда у нас есть функция для генерации прогнозов, мы можем создать и запустить <code>Interface</code> таким же образом, как мы делали это ранее:",ke,L,ve,z,st="Вот и все! Теперь вы можете использовать этот интерфейс для генерации текста с помощью модели GPT-2, как показано ниже 🤯.",Ce,u,at,Be,N,nt="Продолжайте читать, чтобы узнать, как создавать другие виды демо с помощью Gradio!",Ze,F,Qe,D,He;return g=new wt({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),b=new pt({props:{title:"Создание вашего первого демо",local:"building-your-first-demo",headingTag:"h1"}}),T=new yt({props:{chapter:9,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter9/section2.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter9/section2.ipynb"}]}}),G=new A({props:{code:"aW1wb3J0JTIwZ3JhZGlvJTIwYXMlMjBnciUwQSUwQSUwQWRlZiUyMGdyZWV0KG5hbWUpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTIySGVsbG8lMjAlMjIlMjAlMkIlMjBuYW1lJTBBJTBBJTBBZGVtbyUyMCUzRCUyMGdyLkludGVyZmFjZShmbiUzRGdyZWV0JTJDJTIwaW5wdXRzJTNEJTIydGV4dCUyMiUyQyUyMG91dHB1dHMlM0QlMjJ0ZXh0JTIyKSUwQSUwQWRlbW8ubGF1bmNoKCk=",highlighted:`<span class="hljs-keyword">import</span> gradio <span class="hljs-keyword">as</span> gr | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">greet</span>(<span class="hljs-params">name</span>): | |
| <span class="hljs-keyword">return</span> <span class="hljs-string">"Hello "</span> + name | |
| demo = gr.Interface(fn=greet, inputs=<span class="hljs-string">"text"</span>, outputs=<span class="hljs-string">"text"</span>) | |
| demo.launch()`,wrap:!1}}),Q=new A({props:{code:"aW1wb3J0JTIwZ3JhZGlvJTIwYXMlMjBnciUwQSUwQSUwQWRlZiUyMGdyZWV0KG5hbWUpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTIySGVsbG8lMjAlMjIlMjAlMkIlMjBuYW1lJTBBJTBBJTBBJTIzJTIwJUQwJTlDJUQxJThCJTIwJUQwJUI4JUQwJUJEJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQxJTg2JUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUJCJUQwJUIwJUQxJTgxJUQxJTgxJTIwVGV4dGJveCUwQXRleHRib3glMjAlM0QlMjBnci5UZXh0Ym94KGxhYmVsJTNEJTIyVHlwZSUyMHlvdXIlMjBuYW1lJTIwaGVyZSUzQSUyMiUyQyUyMHBsYWNlaG9sZGVyJTNEJTIySm9obiUyMERvZSUyMiUyQyUyMGxpbmVzJTNEMiklMEElMEFnci5JbnRlcmZhY2UoZm4lM0RncmVldCUyQyUyMGlucHV0cyUzRHRleHRib3glMkMlMjBvdXRwdXRzJTNEJTIydGV4dCUyMikubGF1bmNoKCk=",highlighted:`<span class="hljs-keyword">import</span> gradio <span class="hljs-keyword">as</span> gr | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">greet</span>(<span class="hljs-params">name</span>): | |
| <span class="hljs-keyword">return</span> <span class="hljs-string">"Hello "</span> + name | |
| <span class="hljs-comment"># Мы инстанцируем класс Textbox</span> | |
| textbox = gr.Textbox(label=<span class="hljs-string">"Type your name here:"</span>, placeholder=<span class="hljs-string">"John Doe"</span>, lines=<span class="hljs-number">2</span>) | |
| gr.Interface(fn=greet, inputs=textbox, outputs=<span class="hljs-string">"text"</span>).launch()`,wrap:!1}}),V=new pt({props:{title:"🤖 Добавление прогнозов модели",local:"including-model-predictions",headingTag:"h2"}}),P=new A({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMHBpcGVsaW5lJTBBJTBBbW9kZWwlMjAlM0QlMjBwaXBlbGluZSglMjJ0ZXh0LWdlbmVyYXRpb24lMjIpJTBBJTBBJTBBZGVmJTIwcHJlZGljdChwcm9tcHQpJTNBJTBBJTIwJTIwJTIwJTIwY29tcGxldGlvbiUyMCUzRCUyMG1vZGVsKHByb21wdCklNUIwJTVEJTVCJTIyZ2VuZXJhdGVkX3RleHQlMjIlNUQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjBjb21wbGV0aW9u",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> pipeline | |
| model = pipeline(<span class="hljs-string">"text-generation"</span>) | |
| <span class="hljs-keyword">def</span> <span class="hljs-title function_">predict</span>(<span class="hljs-params">prompt</span>): | |
| completion = model(prompt)[<span class="hljs-number">0</span>][<span class="hljs-string">"generated_text"</span>] | |
| <span class="hljs-keyword">return</span> completion`,wrap:!1}}),q=new A({props:{code:"cHJlZGljdCglMjJNeSUyMGZhdm9yaXRlJTIwcHJvZ3JhbW1pbmclMjBsYW5ndWFnZSUyMGlzJTIyKQ==",highlighted:'<span class="hljs-function"><span class="hljs-title">predict</span><span class="hljs-params">(<span class="hljs-string">"My favorite programming language is"</span>)</span></span>',wrap:!1}}),S=new A({props:{code:"JTNFJTNFJTIwTXklMjBmYXZvcml0ZSUyMHByb2dyYW1taW5nJTIwbGFuZ3VhZ2UlMjBpcyUyMEhhc2tlbGwuJTIwSSUyMHJlYWxseSUyMGVuam95ZWQlMjB0aGUlMjBIYXNrZWxsJTIwbGFuZ3VhZ2UlMkMlMjBidXQlMjBpdCUyMGRvZXNuJ3QlMjBoYXZlJTIwYWxsJTIwdGhlJTIwZmVhdHVyZXMlMjB0aGF0JTIwY2FuJTIwYmUlMjBhcHBsaWVkJTIwdG8lMjBhbnklMjBvdGhlciUyMGxhbmd1YWdlLiUyMEZvciUyMGV4YW1wbGUlMkMlMjBhbGwlMjBpdCUyMGRvZXMlMjBpcyUyMGNvbXBpbGUlMjB0byUyMGElMjBieXRlJTIwYXJyYXku",highlighted:'>> My favorite programming language <span class="hljs-keyword">is</span> Haskell. I really enjoyed <span class="hljs-keyword">the</span> Haskell language, <span class="hljs-keyword">but</span> <span class="hljs-keyword">it</span> doesn't have all <span class="hljs-keyword">the</span> features <span class="hljs-keyword">that</span> can be applied <span class="hljs-keyword">to</span> any other language. For example, all <span class="hljs-keyword">it</span> <span class="hljs-keyword">does</span> <span class="hljs-keyword">is</span> compile <span class="hljs-keyword">to</span> a byte array.',wrap:!1}}),L=new A({props:{code:"aW1wb3J0JTIwZ3JhZGlvJTIwYXMlMjBnciUwQSUwQWdyLkludGVyZmFjZShmbiUzRHByZWRpY3QlMkMlMjBpbnB1dHMlM0QlMjJ0ZXh0JTIyJTJDJTIwb3V0cHV0cyUzRCUyMnRleHQlMjIpLmxhdW5jaCgp",highlighted:`<span class="hljs-keyword">import</span> gradio <span class="hljs-keyword">as</span> gr | |
| gr.Interface(fn=predict, inputs=<span class="hljs-string">"text"</span>, outputs=<span class="hljs-string">"text"</span>).launch()`,wrap:!1}}),F=new ft({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ru/chapter9/2.mdx"}}),{c(){M=p("meta"),ee=a(),K=p("p"),te=a(),d(g.$$.fragment),le=a(),d(b.$$.fragment),se=a(),d(T.$$.fragment),ae=a(),x=p("p"),x.textContent=We,ne=a(),j=p("p"),j.innerHTML=Re,pe=a(),U=p("p"),U.textContent=Xe,oe=a(),$=p("p"),$.textContent=Pe,ie=a(),d(G.$$.fragment),re=a(),I=p("p"),I.textContent=Ee,me=a(),k=p("ul"),k.innerHTML=qe,ce=a(),v=p("p"),v.innerHTML=Se,ue=a(),m=p("iframe"),de=a(),C=p("p"),C.textContent=Le,we=a(),B=p("p"),B.innerHTML=ze,fe=a(),Z=p("p"),Z.textContent=Ne,ye=a(),d(Q.$$.fragment),Je=a(),c=p("iframe"),he=a(),H=p("p"),H.textContent=Ae,Me=a(),_=p("p"),_.textContent=Ke,ge=a(),d(V.$$.fragment),be=a(),W=p("p"),W.innerHTML=De,Te=a(),R=p("p"),R.innerHTML=Oe,xe=a(),X=p("p"),X.textContent=et,je=a(),d(P.$$.fragment),Ue=a(),E=p("p"),E.textContent=tt,$e=a(),d(q.$$.fragment),Ge=a(),d(S.$$.fragment),Ie=a(),Y=p("p"),Y.innerHTML=lt,ke=a(),d(L.$$.fragment),ve=a(),z=p("p"),z.textContent=st,Ce=a(),u=p("iframe"),Be=a(),N=p("p"),N.textContent=nt,Ze=a(),d(F.$$.fragment),Qe=a(),D=p("p"),this.h()},l(e){const t=ut("svelte-u9bgzb",document.head);M=o(t,"META",{name:!0,content:!0}),t.forEach(l),ee=n(e),K=o(e,"P",{}),O(K).forEach(l),te=n(e),w(g.$$.fragment,e),le=n(e),w(b.$$.fragment,e),se=n(e),w(T.$$.fragment,e),ae=n(e),x=o(e,"P",{"data-svelte-h":!0}),r(x)!=="svelte-10kx1vv"&&(x.textContent=We),ne=n(e),j=o(e,"P",{"data-svelte-h":!0}),r(j)!=="svelte-sv8g3f"&&(j.innerHTML=Re),pe=n(e),U=o(e,"P",{"data-svelte-h":!0}),r(U)!=="svelte-1jwkvk7"&&(U.textContent=Xe),oe=n(e),$=o(e,"P",{"data-svelte-h":!0}),r($)!=="svelte-14u676"&&($.textContent=Pe),ie=n(e),w(G.$$.fragment,e),re=n(e),I=o(e,"P",{"data-svelte-h":!0}),r(I)!=="svelte-j5kikz"&&(I.textContent=Ee),me=n(e),k=o(e,"UL",{"data-svelte-h":!0}),r(k)!=="svelte-1asstol"&&(k.innerHTML=qe),ce=n(e),v=o(e,"P",{"data-svelte-h":!0}),r(v)!=="svelte-1lwh1fi"&&(v.innerHTML=Se),ue=n(e),m=o(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),O(m).forEach(l),de=n(e),C=o(e,"P",{"data-svelte-h":!0}),r(C)!=="svelte-16n8sk7"&&(C.textContent=Le),we=n(e),B=o(e,"P",{"data-svelte-h":!0}),r(B)!=="svelte-yamvfk"&&(B.innerHTML=ze),fe=n(e),Z=o(e,"P",{"data-svelte-h":!0}),r(Z)!=="svelte-29t5h2"&&(Z.textContent=Ne),ye=n(e),w(Q.$$.fragment,e),Je=n(e),c=o(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),O(c).forEach(l),he=n(e),H=o(e,"P",{"data-svelte-h":!0}),r(H)!=="svelte-sx5a6l"&&(H.textContent=Ae),Me=n(e),_=o(e,"P",{"data-svelte-h":!0}),r(_)!=="svelte-1bpoqj8"&&(_.textContent=Ke),ge=n(e),w(V.$$.fragment,e),be=n(e),W=o(e,"P",{"data-svelte-h":!0}),r(W)!=="svelte-gh2gw6"&&(W.innerHTML=De),Te=n(e),R=o(e,"P",{"data-svelte-h":!0}),r(R)!=="svelte-14h2n7w"&&(R.innerHTML=Oe),xe=n(e),X=o(e,"P",{"data-svelte-h":!0}),r(X)!=="svelte-qhxtnw"&&(X.textContent=et),je=n(e),w(P.$$.fragment,e),Ue=n(e),E=o(e,"P",{"data-svelte-h":!0}),r(E)!=="svelte-1umr46d"&&(E.textContent=tt),$e=n(e),w(q.$$.fragment,e),Ge=n(e),w(S.$$.fragment,e),Ie=n(e),Y=o(e,"P",{"data-svelte-h":!0}),r(Y)!=="svelte-faqskh"&&(Y.innerHTML=lt),ke=n(e),w(L.$$.fragment,e),ve=n(e),z=o(e,"P",{"data-svelte-h":!0}),r(z)!=="svelte-mewgle"&&(z.textContent=st),Ce=n(e),u=o(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),O(u).forEach(l),Be=n(e),N=o(e,"P",{"data-svelte-h":!0}),r(N)!=="svelte-14lhtp2"&&(N.textContent=nt),Ze=n(e),w(F.$$.fragment,e),Qe=n(e),D=o(e,"P",{}),O(D).forEach(l),this.h()},h(){i(M,"name","hf:doc:metadata"),i(M,"content",ht),_e(m.src,Ye="https://course-demos-hello-world.hf.space")||i(m,"src",Ye),i(m,"frameborder","0"),i(m,"height","250"),i(m,"title","Gradio app"),i(m,"class","container p-0 flex-grow space-iframe"),i(m,"allow","accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"),i(m,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"),_e(c.src,Fe="https://course-demos-hello-world-custom.hf.space")||i(c,"src",Fe),i(c,"frameborder","0"),i(c,"height","300"),i(c,"title","Gradio app"),i(c,"class","container p-0 flex-grow space-iframe"),i(c,"allow","accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"),i(c,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"),_e(u.src,at="https://course-demos-gpt-2.hf.space")||i(u,"src",at),i(u,"frameborder","0"),i(u,"height","300"),i(u,"title","Gradio app"),i(u,"class","container p-0 flex-grow space-iframe"),i(u,"allow","accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"),i(u,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads")},m(e,t){dt(document.head,M),s(e,ee,t),s(e,K,t),s(e,te,t),f(g,e,t),s(e,le,t),f(b,e,t),s(e,se,t),f(T,e,t),s(e,ae,t),s(e,x,t),s(e,ne,t),s(e,j,t),s(e,pe,t),s(e,U,t),s(e,oe,t),s(e,$,t),s(e,ie,t),f(G,e,t),s(e,re,t),s(e,I,t),s(e,me,t),s(e,k,t),s(e,ce,t),s(e,v,t),s(e,ue,t),s(e,m,t),s(e,de,t),s(e,C,t),s(e,we,t),s(e,B,t),s(e,fe,t),s(e,Z,t),s(e,ye,t),f(Q,e,t),s(e,Je,t),s(e,c,t),s(e,he,t),s(e,H,t),s(e,Me,t),s(e,_,t),s(e,ge,t),f(V,e,t),s(e,be,t),s(e,W,t),s(e,Te,t),s(e,R,t),s(e,xe,t),s(e,X,t),s(e,je,t),f(P,e,t),s(e,Ue,t),s(e,E,t),s(e,$e,t),f(q,e,t),s(e,Ge,t),f(S,e,t),s(e,Ie,t),s(e,Y,t),s(e,ke,t),f(L,e,t),s(e,ve,t),s(e,z,t),s(e,Ce,t),s(e,u,t),s(e,Be,t),s(e,N,t),s(e,Ze,t),f(F,e,t),s(e,Qe,t),s(e,D,t),He=!0},p:it,i(e){He||(y(g.$$.fragment,e),y(b.$$.fragment,e),y(T.$$.fragment,e),y(G.$$.fragment,e),y(Q.$$.fragment,e),y(V.$$.fragment,e),y(P.$$.fragment,e),y(q.$$.fragment,e),y(S.$$.fragment,e),y(L.$$.fragment,e),y(F.$$.fragment,e),He=!0)},o(e){J(g.$$.fragment,e),J(b.$$.fragment,e),J(T.$$.fragment,e),J(G.$$.fragment,e),J(Q.$$.fragment,e),J(V.$$.fragment,e),J(P.$$.fragment,e),J(q.$$.fragment,e),J(S.$$.fragment,e),J(L.$$.fragment,e),J(F.$$.fragment,e),He=!1},d(e){e&&(l(ee),l(K),l(te),l(le),l(se),l(ae),l(x),l(ne),l(j),l(pe),l(U),l(oe),l($),l(ie),l(re),l(I),l(me),l(k),l(ce),l(v),l(ue),l(m),l(de),l(C),l(we),l(B),l(fe),l(Z),l(ye),l(Je),l(c),l(he),l(H),l(Me),l(_),l(ge),l(be),l(W),l(Te),l(R),l(xe),l(X),l(je),l(Ue),l(E),l($e),l(Ge),l(Ie),l(Y),l(ke),l(ve),l(z),l(Ce),l(u),l(Be),l(N),l(Ze),l(Qe),l(D)),l(M),h(g,e),h(b,e),h(T,e),h(G,e),h(Q,e),h(V,e),h(P,e),h(q,e),h(S,e),h(L,e),h(F,e)}}}const ht='{"title":"Создание вашего первого демо","local":"building-your-first-demo","sections":[{"title":"🤖 Добавление прогнозов модели","local":"including-model-predictions","sections":[],"depth":2}],"depth":1}';function Mt(Ve){return rt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ut extends mt{constructor(M){super(),ct(this,M,Mt,Jt,ot,{})}}export{Ut as component}; | |
Xet Storage Details
- Size:
- 20 kB
- Xet hash:
- 02ac49201c5f25387ff7d335b51515908fe9e2919cb148e712892f4f0927b724
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.