Buckets:
| import{s as rt,a as He,n as ot,o as pt}from"../chunks/scheduler.893fe8c9.js";import{S as ut,i as ct,e as n,s,c as d,h as mt,a as r,d as a,b as i,f as O,g as f,j as p,k as o,l as dt,m as l,n as w,t as h,o as y,p as b}from"../chunks/index.6ee278c6.js";import{C as ft,H as nt,E as wt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.be950914.js";import{C as F}from"../chunks/CodeBlock.6dfbf045.js";import{C as ht}from"../chunks/CourseFloatingBanner.b902b8d5.js";function yt(Ve){let M,ee,D,te,g,ae,x,le,J,se,j,Se="Să începem prin instalarea Gradio! Întrucât este un pachet Python, pur și simplu rulează:",ie,T,ze="<code>$ pip install gradio</code>",ne,v,Pe=`Puteți rula Gradio oriunde, fie din IDE-ul tău Python preferat, în notebook-urile Jupyter sau chiar în Google Colab 🤯! | |
| Deci instalați Gradio oriunde rulați Python!`,re,$,Xe="Să începem cu un exemplu simplu “Hello World” pentru a ne familiariza cu sintaxa Gradio:",oe,G,pe,C,Qe="Să parcurgem codul de mai sus:",ue,I,Re="<li>Mai întâi, definim o funcție numită <code>greet()</code>. În acest caz, este o funcție simplă care adaugă “Hello” înaintea numelui tău, dar poate fi <em>orice</em> funcție Python în general. De exemplu, în aplicațiile de machine learning, această funcție ar <em>apela un model pentru a face o predicție</em> pe o intrare și ar returna ieșirea.</li> <li>Apoi, creăm o <code>Interface</code> Gradio cu trei argumente, <code>fn</code>, <code>inputs</code>, și <code>outputs</code>. Aceste argumente definesc funcția de predicție, precum și <em>tipul</em> componentelor de intrare și ieșire pe care le-am dori. În cazul nostru, ambele componente sunt cutii de text simple.</li> <li>Apoi apelăm metoda <code>launch()</code> pe <code>Interface</code>-ul pe care l-am creat.</li>",ce,B,Ye='Dacă rulați acest cod, interfața de mai jos va apărea automat într-un notebook Jupyter/Colab, sau va apărea într-un browser la <strong><a href="http://localhost:7860/" rel="nofollow">http://localhost:7860</a></strong> dacă rulează dintr-un script.',me,u,qe,de,k,Le="Încercați să folosiți această interfață grafică chiar acum cu numele vostru sau cu alte intrări!",fe,U,Ae=`Veți observa că în această interfață grafică, Gradio a dedus automat numele parametrului de intrare (<code>name</code>) | |
| și l-a aplicat ca etichetă deasupra cutiei de text. Ce se întâmplă dacă doriți să schimbați asta? | |
| Sau dacă doriți să personalizați cutia de text în alt fel? În acest caz, puteți | |
| instanția un obiect de clasă care reprezintă componenta de intrare.`,we,Z,Ee="Priviți exemplul de mai jos:",he,_,ye,c,Ne,be,W,Fe=`Aici, am creat o cutie de text de intrare cu o etichetă, un placeholder și un număr setat de linii. | |
| Ați putea face același lucru pentru cutia de text de ieșire, dar o vom lăsa pentru mai târziu.`,Me,H,De=`Am văzut că cu doar câteva linii de cod, Gradio vă permite să creați o interfață simplă în jurul oricărei funcții | |
| cu orice tip de intrări sau ieșiri. În această secțiune, am început cu o | |
| cutie de text simplă, dar în următoarele secțiuni, vom acoperi alte tipuri de intrări și ieșiri. Să aruncăm acum o privire la includerea unor NLP într-o aplicație Gradio.`,ge,V,xe,S,Ke="Să construim acum o interfață simplă care vă permite să demonstrați un model de <strong>generare de text</strong> ca GPT-2.",Je,z,Oe=`Vom încărca modelul nostru folosind funcția <code>pipeline()</code> din 🤗 Transformers. | |
| Dacă aveți nevoie de o reîmprospătare rapidă, puteți să vă întoarceți la <a href="/course/chapter1/3#text-generation">acea secțiune din Capitolul 1</a>.`,je,P,et="Primul, definim o funcție de predicție care primește un prompt de text și returnează completarea textului:",Te,X,ve,Q,tt="Această funcție completează prompt-urile pe care le furnizați, și puteți să o rulați cu propriile prompt-uri de intrare pentru a vedea cum funcționează. Iată un exemplu (este posibil să obțineți o completare diferită):",$e,R,Ge,Y,Ce,q,at="Acum că avem o funcție pentru generarea predicțiilor, putem crea și lansa o <code>Interface</code> în același mod în care am făcut mai devreme:",Ie,L,Be,A,lt="Asta e! Acum puteți folosi această interfață pentru a genera text folosind modelul GPT-2 așa cum se arată mai jos 🤯.",ke,m,st,Ue,E,it="Continuați să citiți pentru a vedea cum să construiți alte tipuri de demo-uri cu Gradio!",Ze,N,_e,K,We;return g=new ft({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),x=new nt({props:{title:"Construirea primului tău demo",local:"building-your-first-demo",headingTag:"h1"}}),J=new ht({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 F({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}}),_=new F({props:{code:"aW1wb3J0JTIwZ3JhZGlvJTIwYXMlMjBnciUwQSUwQSUwQWRlZiUyMGdyZWV0KG5hbWUpJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTIySGVsbG8lMjAlMjIlMjAlMkIlMjBuYW1lJTBBJTBBJTBBJTIzJTIwSW5zdGFuJUM4JTlCaWVtJTIwY2xhc2ElMjBUZXh0Ym94JTBBdGV4dGJveCUyMCUzRCUyMGdyLlRleHRib3gobGFiZWwlM0QlMjJUYXN0YSVDOCU5QmklMjBudW1lbGUlMjBhaWNpJTNBJTIyJTJDJTIwcGxhY2Vob2xkZXIlM0QlMjJKb2huJTIwRG9lJTIyJTJDJTIwbGluZXMlM0QyKSUwQSUwQWdyLkludGVyZmFjZShmbiUzRGdyZWV0JTJDJTIwaW5wdXRzJTNEdGV4dGJveCUyQyUyMG91dHB1dHMlM0QlMjJ0ZXh0JTIyKS5sYXVuY2goKQ==",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"># Instanțiem clasa Textbox</span> | |
| textbox = gr.Textbox(label=<span class="hljs-string">"Tastați numele aici:"</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 nt({props:{title:"🤖 Includerea predicțiilor modelului",local:"including-model-predictions",headingTag:"h2"}}),X=new F({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}}),R=new F({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}}),Y=new F({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 F({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}}),N=new wt({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ro/chapter9/2.mdx"}}),{c(){M=n("meta"),ee=s(),D=n("p"),te=s(),d(g.$$.fragment),ae=s(),d(x.$$.fragment),le=s(),d(J.$$.fragment),se=s(),j=n("p"),j.textContent=Se,ie=s(),T=n("p"),T.innerHTML=ze,ne=s(),v=n("p"),v.textContent=Pe,re=s(),$=n("p"),$.textContent=Xe,oe=s(),d(G.$$.fragment),pe=s(),C=n("p"),C.textContent=Qe,ue=s(),I=n("ul"),I.innerHTML=Re,ce=s(),B=n("p"),B.innerHTML=Ye,me=s(),u=n("iframe"),de=s(),k=n("p"),k.textContent=Le,fe=s(),U=n("p"),U.innerHTML=Ae,we=s(),Z=n("p"),Z.textContent=Ee,he=s(),d(_.$$.fragment),ye=s(),c=n("iframe"),be=s(),W=n("p"),W.textContent=Fe,Me=s(),H=n("p"),H.textContent=De,ge=s(),d(V.$$.fragment),xe=s(),S=n("p"),S.innerHTML=Ke,Je=s(),z=n("p"),z.innerHTML=Oe,je=s(),P=n("p"),P.textContent=et,Te=s(),d(X.$$.fragment),ve=s(),Q=n("p"),Q.textContent=tt,$e=s(),d(R.$$.fragment),Ge=s(),d(Y.$$.fragment),Ce=s(),q=n("p"),q.innerHTML=at,Ie=s(),d(L.$$.fragment),Be=s(),A=n("p"),A.textContent=lt,ke=s(),m=n("iframe"),Ue=s(),E=n("p"),E.textContent=it,Ze=s(),d(N.$$.fragment),_e=s(),K=n("p"),this.h()},l(e){const t=mt("svelte-u9bgzb",document.head);M=r(t,"META",{name:!0,content:!0}),t.forEach(a),ee=i(e),D=r(e,"P",{}),O(D).forEach(a),te=i(e),f(g.$$.fragment,e),ae=i(e),f(x.$$.fragment,e),le=i(e),f(J.$$.fragment,e),se=i(e),j=r(e,"P",{"data-svelte-h":!0}),p(j)!=="svelte-1mpeo5m"&&(j.textContent=Se),ie=i(e),T=r(e,"P",{"data-svelte-h":!0}),p(T)!=="svelte-sv8g3f"&&(T.innerHTML=ze),ne=i(e),v=r(e,"P",{"data-svelte-h":!0}),p(v)!=="svelte-520pa4"&&(v.textContent=Pe),re=i(e),$=r(e,"P",{"data-svelte-h":!0}),p($)!=="svelte-4jn981"&&($.textContent=Xe),oe=i(e),f(G.$$.fragment,e),pe=i(e),C=r(e,"P",{"data-svelte-h":!0}),p(C)!=="svelte-1xbc56o"&&(C.textContent=Qe),ue=i(e),I=r(e,"UL",{"data-svelte-h":!0}),p(I)!=="svelte-15fxna1"&&(I.innerHTML=Re),ce=i(e),B=r(e,"P",{"data-svelte-h":!0}),p(B)!=="svelte-16bxfe1"&&(B.innerHTML=Ye),me=i(e),u=r(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),O(u).forEach(a),de=i(e),k=r(e,"P",{"data-svelte-h":!0}),p(k)!=="svelte-1alr80z"&&(k.textContent=Le),fe=i(e),U=r(e,"P",{"data-svelte-h":!0}),p(U)!=="svelte-n6ssxj"&&(U.innerHTML=Ae),we=i(e),Z=r(e,"P",{"data-svelte-h":!0}),p(Z)!=="svelte-c38i6u"&&(Z.textContent=Ee),he=i(e),f(_.$$.fragment,e),ye=i(e),c=r(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),O(c).forEach(a),be=i(e),W=r(e,"P",{"data-svelte-h":!0}),p(W)!=="svelte-1owvoh1"&&(W.textContent=Fe),Me=i(e),H=r(e,"P",{"data-svelte-h":!0}),p(H)!=="svelte-1iwn3vl"&&(H.textContent=De),ge=i(e),f(V.$$.fragment,e),xe=i(e),S=r(e,"P",{"data-svelte-h":!0}),p(S)!=="svelte-jnkv4s"&&(S.innerHTML=Ke),Je=i(e),z=r(e,"P",{"data-svelte-h":!0}),p(z)!=="svelte-1nba4r4"&&(z.innerHTML=Oe),je=i(e),P=r(e,"P",{"data-svelte-h":!0}),p(P)!=="svelte-1b21s7l"&&(P.textContent=et),Te=i(e),f(X.$$.fragment,e),ve=i(e),Q=r(e,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-fypnda"&&(Q.textContent=tt),$e=i(e),f(R.$$.fragment,e),Ge=i(e),f(Y.$$.fragment,e),Ce=i(e),q=r(e,"P",{"data-svelte-h":!0}),p(q)!=="svelte-1xbnsa1"&&(q.innerHTML=at),Ie=i(e),f(L.$$.fragment,e),Be=i(e),A=r(e,"P",{"data-svelte-h":!0}),p(A)!=="svelte-1t7r68r"&&(A.textContent=lt),ke=i(e),m=r(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),O(m).forEach(a),Ue=i(e),E=r(e,"P",{"data-svelte-h":!0}),p(E)!=="svelte-7qxizh"&&(E.textContent=it),Ze=i(e),f(N.$$.fragment,e),_e=i(e),K=r(e,"P",{}),O(K).forEach(a),this.h()},h(){o(M,"name","hf:doc:metadata"),o(M,"content",bt),He(u.src,qe="https://course-demos-hello-world.hf.space")||o(u,"src",qe),o(u,"frameborder","0"),o(u,"height","250"),o(u,"title","Gradio app"),o(u,"class","container p-0 flex-grow space-iframe"),o(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"),o(u,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"),He(c.src,Ne="https://course-demos-hello-world-custom.hf.space")||o(c,"src",Ne),o(c,"frameborder","0"),o(c,"height","300"),o(c,"title","Gradio app"),o(c,"class","container p-0 flex-grow space-iframe"),o(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"),o(c,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"),He(m.src,st="https://course-demos-gpt-2.hf.space")||o(m,"src",st),o(m,"frameborder","0"),o(m,"height","300"),o(m,"title","Gradio app"),o(m,"class","container p-0 flex-grow space-iframe"),o(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"),o(m,"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),l(e,ee,t),l(e,D,t),l(e,te,t),w(g,e,t),l(e,ae,t),w(x,e,t),l(e,le,t),w(J,e,t),l(e,se,t),l(e,j,t),l(e,ie,t),l(e,T,t),l(e,ne,t),l(e,v,t),l(e,re,t),l(e,$,t),l(e,oe,t),w(G,e,t),l(e,pe,t),l(e,C,t),l(e,ue,t),l(e,I,t),l(e,ce,t),l(e,B,t),l(e,me,t),l(e,u,t),l(e,de,t),l(e,k,t),l(e,fe,t),l(e,U,t),l(e,we,t),l(e,Z,t),l(e,he,t),w(_,e,t),l(e,ye,t),l(e,c,t),l(e,be,t),l(e,W,t),l(e,Me,t),l(e,H,t),l(e,ge,t),w(V,e,t),l(e,xe,t),l(e,S,t),l(e,Je,t),l(e,z,t),l(e,je,t),l(e,P,t),l(e,Te,t),w(X,e,t),l(e,ve,t),l(e,Q,t),l(e,$e,t),w(R,e,t),l(e,Ge,t),w(Y,e,t),l(e,Ce,t),l(e,q,t),l(e,Ie,t),w(L,e,t),l(e,Be,t),l(e,A,t),l(e,ke,t),l(e,m,t),l(e,Ue,t),l(e,E,t),l(e,Ze,t),w(N,e,t),l(e,_e,t),l(e,K,t),We=!0},p:ot,i(e){We||(h(g.$$.fragment,e),h(x.$$.fragment,e),h(J.$$.fragment,e),h(G.$$.fragment,e),h(_.$$.fragment,e),h(V.$$.fragment,e),h(X.$$.fragment,e),h(R.$$.fragment,e),h(Y.$$.fragment,e),h(L.$$.fragment,e),h(N.$$.fragment,e),We=!0)},o(e){y(g.$$.fragment,e),y(x.$$.fragment,e),y(J.$$.fragment,e),y(G.$$.fragment,e),y(_.$$.fragment,e),y(V.$$.fragment,e),y(X.$$.fragment,e),y(R.$$.fragment,e),y(Y.$$.fragment,e),y(L.$$.fragment,e),y(N.$$.fragment,e),We=!1},d(e){e&&(a(ee),a(D),a(te),a(ae),a(le),a(se),a(j),a(ie),a(T),a(ne),a(v),a(re),a($),a(oe),a(pe),a(C),a(ue),a(I),a(ce),a(B),a(me),a(u),a(de),a(k),a(fe),a(U),a(we),a(Z),a(he),a(ye),a(c),a(be),a(W),a(Me),a(H),a(ge),a(xe),a(S),a(Je),a(z),a(je),a(P),a(Te),a(ve),a(Q),a($e),a(Ge),a(Ce),a(q),a(Ie),a(Be),a(A),a(ke),a(m),a(Ue),a(E),a(Ze),a(_e),a(K)),a(M),b(g,e),b(x,e),b(J,e),b(G,e),b(_,e),b(V,e),b(X,e),b(R,e),b(Y,e),b(L,e),b(N,e)}}}const bt='{"title":"Construirea primului tău demo","local":"building-your-first-demo","sections":[{"title":"🤖 Includerea predicțiilor modelului","local":"including-model-predictions","sections":[],"depth":2}],"depth":1}';function Mt(Ve){return pt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class vt extends ut{constructor(M){super(),ct(this,M,Mt,yt,rt,{})}}export{vt as component}; | |
Xet Storage Details
- Size:
- 17.5 kB
- Xet hash:
- ad1cd2f2289383368e336f612f1df8be06f81d3e16aaa8b34ee9433d75148f8a
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.