import{s as ea,f as Oe,n as aa,o as ta}from"../chunks/scheduler.37c15a92.js";import{S as la,i as sa,g as n,s,r as m,A as ia,h as r,f as t,c as i,j as Re,u as d,x as o,k as p,y as na,a as l,v as M,d as y,t as J,w as h}from"../chunks/index.2bf4358c.js";import{Y as ra}from"../chunks/Youtube.1e50a667.js";import{C as $e}from"../chunks/CodeBlock.4e987730.js";import{C as oa}from"../chunks/CourseFloatingBanner.6add7356.js";import{H as D,E as pa}from"../chunks/getInferenceSnippets.80a69898.js";function ca(xe){let T,P,q,K,U,O,g,ee,b,Se=`Acum că ați construit un demo, probabil doriți să îl partajați cu alții. Demo-urile Gradio
pot fi partajate în două moduri: folosind un <strong><em>link de partajare temporar</em></strong> sau <strong><em>găzduire permanentă pe Spaces</em></strong>.`,ae,w,We="Vom acoperi ambele abordări în curând. Dar înainte să vă partajați demo-ul, este posibil să doriți să îl înfrumusețați 💅.",te,j,le,f,Ze='<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter9/gradio-demo-overview.png" alt="Overview of a gradio interface"/> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface-course/documentation-images/resolve/main/en/chapter9/gradio-demo-overview-dark.png" alt="Overview of a gradio interface"/>',se,v,ze="Pentru a adăuga conținut suplimentar la demo-ul dvs., clasa <code>Interface</code> suportă câțiva parametri opționali:",ie,C,Qe=`<li><code>title</code>: puteți da un titlu demo-ului dvs., care apare <em>deasupra</em> componentelor de intrare și ieșire.</li> <li><code>description</code>: puteți da o descriere (în text, Markdown sau HTML) pentru interfață, care apare deasupra componentelor de intrare și ieșire și sub titlu.</li> <li><code>article</code>: puteți scrie și un articol extins (în text, Markdown sau HTML) explicând interfața. Dacă este furnizat, apare <em>sub</em> componentele de intrare și ieșire.</li> <li><code>theme</code>: nu vă plac culorile implicite? Setați tema să folosească una dintre <code>default</code>, <code>huggingface</code>, <code>grass</code>, <code>peach</code>. Puteți adăuga și prefixul <code>dark-</code>, de ex. <code>dark-peach</code> pentru tema întunecată (sau doar <code>dark</code> pentru tema întunecată implicită).</li> <li><code>examples</code>: pentru a face demo-ul <em>mult mai ușor de folosit</em>, puteți furniza exemple de intrări pentru funcție. Acestea apar sub componentele UI și pot fi folosite pentru a popula interfața. Acestea ar trebui furnizate ca o listă imbricată, în care lista exterioară constă din exemple și fiecare listă interioară constă dintr-o intrare corespunzătoare fiecărei componente de intrare.</li> <li><code>live</code>: dacă doriți să faceți demo-ul “live”, adică modelul să ruleze din nou de fiecare dată când intrarea se schimbă, puteți seta <code>live=True</code>. Acest lucru are sens să se folosească cu modele rapide (vom vedea un exemplu la sfârșitul acestei secțiuni)
Folosind opțiunile de mai sus, ajungem la o interfață mai completă. Rulați codul de mai jos pentru a putea conversa cu Rick și Morty:</li>`,ne,k,re,I,He="Folosind opțiunile de mai sus, ajungem la o interfață mai completă. Încercați interfața de mai jos:",oe,c,Ye,pe,B,ce,G,Fe=`Acum că avem un demo funcțional al modelului nostru de machine learning, să învățăm cum să partajăm cu ușurință un link către interfața noastră.
Interfețele pot fi partajate public cu ușurință prin setarea <code>share=True</code> în metoda <code>launch()</code>:`,ue,R,me,$,_e="Aceasta generează un link public, partajabil pe care îl puteți trimite oricui! Când trimiteți acest link, utilizatorul din cealaltă parte poate încerca modelul în browserul lor timp de până la 72 de ore. Deoarece procesarea se întâmplă pe dispozitivul dvs. (atâta timp cât dispozitivul dvs. rămâne pornit!), nu trebuie să vă faceți griji cu privire la împachetarea dependențelor. Dacă lucrați dintr-un notebook Google Colab, un link de partajare este întotdeauna creat automat. De obicei arată cam așa: <strong>XXXXX.gradio.app</strong>. Deși link-ul este servit printr-un link Gradio, suntem doar un proxy pentru serverul dvs. local și nu stocăm datele trimise prin interfețe.",de,x,Ee="Rețineți totuși că aceste link-uri sunt accesibile public, ceea ce înseamnă că oricine poate folosi modelul dvs. pentru predicție! Prin urmare, asigurați-vă să nu expuneți informații sensibile prin funcțiile pe care le scrieți sau să permiteți modificări critice pe dispozitivul dvs. Dacă setați <code>share=False</code> (implicit), doar un link local este creat.",Me,S,ye,W,Le="Un link de partajare pe care îl puteți transmite colegilor este cool, dar cum puteți găzdui permanent demo-ul și să îl faceți să existe în propriul său “spațiu” pe internet?",Je,Z,Ve=`Hugging Face Spaces oferă infrastructura pentru a găzdui permanent modelul dvs. Gradio pe internet, <strong>gratuit</strong>! Spaces vă permite să creați și să împingeți într-un repo (public sau privat),
unde codul interfața dvs. Gradio
va exista într-un fișier <code>app.py</code>. <a href="https://huggingface.co/blog/gradio-spaces" rel="nofollow">Citiți un tutorial pas cu pas</a> pentru a începe, sau urmăriți un videoclip exemplu mai jos.`,he,z,Te,Q,fe,H,Ne='Folosind ceea ce tocmai am învățat în secțiunile de până acum, să creăm demo-ul de recunoaștere a schițelor pe care l-am văzut în <a href="/course/chapter9/1">secțiunea unu din acest capitol</a>. Să adăugăm câteva personalizări la interfața noastră și să setăm <code>share=True</code> pentru a crea un link public pe care îl putem transmite.',Ue,Y,Ae='Putem încărca etichetele din <a href="https://huggingface.co/spaces/dawood/Sketch-Recognition/blob/main/class_names.txt" rel="nofollow">class_names.txt</a> și să încărcăm modelul pytorch pre-antrenat din <a href="https://huggingface.co/spaces/dawood/Sketch-Recognition/blob/main/pytorch_model.bin" rel="nofollow">pytorch_model.bin</a>. Descărcați aceste fișiere urmărind link-ul și făcând clic pe download în colțul din stânga sus al previzualizării fișierului. Să aruncăm o privire la codul de mai jos pentru a vedea cum folosim aceste fișiere pentru a încărca modelul nostru și a crea o funcție <code>predict()</code>:',ge,F,be,_,qe="Acum că avem o funcție <code>predict()</code>. Următorul pas este să definim și să lansăm interfața noastră gradio:",we,E,je,u,Xe,ve,L,De=`Observați parametrul <code>live=True</code> în <code>Interface</code>, care înseamnă că demo-ul cu schițe face
o predicție de fiecare dată când cineva desenează pe sketchpad (fără buton de submit!).`,Ce,V,Pe=`În plus, am setat și argumentul <code>share=True</code> în metoda <code>launch()</code>.
Aceasta va crea un link public pe care îl puteți
trimite oricui! Când trimiteți acest link, utilizatorul din cealaltă parte poate încerca
modelul de recunoaștere a schițelor. Pentru a reitera, ați putea găzdui și modelul pe Hugging Face Spaces,
care este modul în care reușim să încorporăm demo-ul de mai sus.`,ke,N,Ke="Următorul, vom acoperi alte moduri în care Gradio poate fi folosit cu ecosistemul Hugging Face!",Ie,A,Be,X,Ge;return U=new D({props:{title:"Partajarea demo-urilor cu alții",local:"sharing-demos-with-others",headingTag:"h1"}}),g=new oa({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/section4.ipynb"},{label:"Aws Studio",value:"https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter9/section4.ipynb"}]}}),j=new D({props:{title:"Înfrumusețarea demo-ului Gradio:",local:"polishing-your-gradio-demo",headingTag:"h3"}}),k=new $e({props:{code:"dGl0bGUlMjAlM0QlMjAlMjJBc2slMjBSaWNrJTIwYSUyMFF1ZXN0aW9uJTIyJTBBZGVzY3JpcHRpb24lMjAlM0QlMjAlMjIlMjIlMjIlMEFUaGUlMjBib3QlMjB3YXMlMjB0cmFpbmVkJTIwdG8lMjBhbnN3ZXIlMjBxdWVzdGlvbnMlMjBiYXNlZCUyMG9uJTIwUmljayUyMGFuZCUyME1vcnR5JTIwZGlhbG9ndWVzLiUyMEFzayUyMFJpY2slMjBhbnl0aGluZyElMEElM0NpbWclMjBzcmMlM0QlMjJodHRwcyUzQSUyRiUyRmh1Z2dpbmdmYWNlLmNvJTJGc3BhY2VzJTJGY291cnNlLWRlbW9zJTJGUmlja19hbmRfTW9ydHlfUUElMkZyZXNvbHZlJTJGbWFpbiUyRnJpY2sucG5nJTIyJTIwd2lkdGglM0QyMDBweCUzRSUwQSUyMiUyMiUyMiUwQSUwQWFydGljbGUlMjAlM0QlMjAlMjJDaGVjayUyMG91dCUyMCU1QnRoZSUyMG9yaWdpbmFsJTIwUmljayUyMGFuZCUyME1vcnR5JTIwQm90JTVEKGh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZzcGFjZXMlMkZraW5nYWJ6cHJvJTJGUmlja19hbmRfTW9ydHlfQm90KSUyMHRoYXQlMjB0aGlzJTIwZGVtbyUyMGlzJTIwYmFzZWQlMjBvZmYlMjBvZi4lMjIlMEElMEFnci5JbnRlcmZhY2UoJTBBJTIwJTIwJTIwJTIwZm4lM0RwcmVkaWN0JTJDJTBBJTIwJTIwJTIwJTIwaW5wdXRzJTNEJTIydGV4dGJveCUyMiUyQyUwQSUyMCUyMCUyMCUyMG91dHB1dHMlM0QlMjJ0ZXh0JTIyJTJDJTBBJTIwJTIwJTIwJTIwdGl0bGUlM0R0aXRsZSUyQyUwQSUyMCUyMCUyMCUyMGRlc2NyaXB0aW9uJTNEZGVzY3JpcHRpb24lMkMlMEElMjAlMjAlMjAlMjBhcnRpY2xlJTNEYXJ0aWNsZSUyQyUwQSUyMCUyMCUyMCUyMGV4YW1wbGVzJTNEJTVCJTVCJTIyV2hhdCUyMGFyZSUyMHlvdSUyMGRvaW5nJTNGJTIyJTVEJTJDJTIwJTVCJTIyV2hlcmUlMjBzaG91bGQlMjB3ZSUyMHRpbWUlMjB0cmF2ZWwlMjB0byUzRiUyMiU1RCU1RCUyQyUwQSkubGF1bmNoKCk=",highlighted:`title = <span class="hljs-string">&quot;Ask Rick a Question&quot;</span>
description = <span class="hljs-string">&quot;&quot;&quot;
The bot was trained to answer questions based on Rick and Morty dialogues. Ask Rick anything!
&lt;img src=&quot;https://huggingface.co/spaces/course-demos/Rick_and_Morty_QA/resolve/main/rick.png&quot; width=200px&gt;
&quot;&quot;&quot;</span>

article = <span class="hljs-string">&quot;Check out [the original Rick and Morty Bot](https://huggingface.co/spaces/kingabzpro/Rick_and_Morty_Bot) that this demo is based off of.&quot;</span>

gr.Interface(
    fn=predict,
    inputs=<span class="hljs-string">&quot;textbox&quot;</span>,
    outputs=<span class="hljs-string">&quot;text&quot;</span>,
    title=title,
    description=description,
    article=article,
    examples=[[<span class="hljs-string">&quot;What are you doing?&quot;</span>], [<span class="hljs-string">&quot;Where should we time travel to?&quot;</span>]],
).launch()`,wrap:!1}}),B=new D({props:{title:"Partajarea demo-ului cu link-uri temporare",local:"sharing-your-demo-with-temporary-links",headingTag:"h3"}}),R=new $e({props:{code:"Z3IuSW50ZXJmYWNlKGNsYXNzaWZ5X2ltYWdlJTJDJTIwJTIyaW1hZ2UlMjIlMkMlMjAlMjJsYWJlbCUyMikubGF1bmNoKHNoYXJlJTNEVHJ1ZSk=",highlighted:'gr.Interface(classify_image, <span class="hljs-string">&quot;image&quot;</span>, <span class="hljs-string">&quot;label&quot;</span>).launch(share=<span class="hljs-literal">True</span>)',wrap:!1}}),S=new D({props:{title:"Găzduirea demo-ului pe Hugging Face Spaces",local:"hosting-your-demo-on-hugging-face-spaces",headingTag:"h3"}}),z=new ra({props:{id:"LS9Y2wDVI0k"}}),Q=new D({props:{title:"✏️ Să aplicăm!",local:"lets-apply-it",headingTag:"h2"}}),F=new $e({props:{code:"ZnJvbSUyMHBhdGhsaWIlMjBpbXBvcnQlMjBQYXRoJTBBaW1wb3J0JTIwdG9yY2glMEFpbXBvcnQlMjBncmFkaW8lMjBhcyUyMGdyJTBBZnJvbSUyMHRvcmNoJTIwaW1wb3J0JTIwbm4lMEElMEFMQUJFTFMlMjAlM0QlMjBQYXRoKCUyMmNsYXNzX25hbWVzLnR4dCUyMikucmVhZF90ZXh0KCkuc3BsaXRsaW5lcygpJTBBJTBBbW9kZWwlMjAlM0QlMjBubi5TZXF1ZW50aWFsKCUwQSUyMCUyMCUyMCUyMG5uLkNvbnYyZCgxJTJDJTIwMzIlMkMlMjAzJTJDJTIwcGFkZGluZyUzRCUyMnNhbWUlMjIpJTJDJTBBJTIwJTIwJTIwJTIwbm4uUmVMVSgpJTJDJTBBJTIwJTIwJTIwJTIwbm4uTWF4UG9vbDJkKDIpJTJDJTBBJTIwJTIwJTIwJTIwbm4uQ29udjJkKDMyJTJDJTIwNjQlMkMlMjAzJTJDJTIwcGFkZGluZyUzRCUyMnNhbWUlMjIpJTJDJTBBJTIwJTIwJTIwJTIwbm4uUmVMVSgpJTJDJTBBJTIwJTIwJTIwJTIwbm4uTWF4UG9vbDJkKDIpJTJDJTBBJTIwJTIwJTIwJTIwbm4uQ29udjJkKDY0JTJDJTIwMTI4JTJDJTIwMyUyQyUyMHBhZGRpbmclM0QlMjJzYW1lJTIyKSUyQyUwQSUyMCUyMCUyMCUyMG5uLlJlTFUoKSUyQyUwQSUyMCUyMCUyMCUyMG5uLk1heFBvb2wyZCgyKSUyQyUwQSUyMCUyMCUyMCUyMG5uLkZsYXR0ZW4oKSUyQyUwQSUyMCUyMCUyMCUyMG5uLkxpbmVhcigxMTUyJTJDJTIwMjU2KSUyQyUwQSUyMCUyMCUyMCUyMG5uLlJlTFUoKSUyQyUwQSUyMCUyMCUyMCUyMG5uLkxpbmVhcigyNTYlMkMlMjBsZW4oTEFCRUxTKSklMkMlMEEpJTBBc3RhdGVfZGljdCUyMCUzRCUyMHRvcmNoLmxvYWQoJTIycHl0b3JjaF9tb2RlbC5iaW4lMjIlMkMlMjBtYXBfbG9jYXRpb24lM0QlMjJjcHUlMjIpJTBBbW9kZWwubG9hZF9zdGF0ZV9kaWN0KHN0YXRlX2RpY3QlMkMlMjBzdHJpY3QlM0RGYWxzZSklMEFtb2RlbC5ldmFsKCklMEElMEElMEFkZWYlMjBwcmVkaWN0KGltKSUzQSUwQSUyMCUyMCUyMCUyMHglMjAlM0QlMjB0b3JjaC50ZW5zb3IoaW0lMkMlMjBkdHlwZSUzRHRvcmNoLmZsb2F0MzIpLnVuc3F1ZWV6ZSgwKS51bnNxdWVlemUoMCklMjAlMkYlMjAyNTUuMCUwQSUyMCUyMCUyMCUyMHdpdGglMjB0b3JjaC5ub19ncmFkKCklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBvdXQlMjAlM0QlMjBtb2RlbCh4KSUwQSUyMCUyMCUyMCUyMHByb2JhYmlsaXRpZXMlMjAlM0QlMjB0b3JjaC5ubi5mdW5jdGlvbmFsLnNvZnRtYXgob3V0JTVCMCU1RCUyQyUyMGRpbSUzRDApJTBBJTIwJTIwJTIwJTIwdmFsdWVzJTJDJTIwaW5kaWNlcyUyMCUzRCUyMHRvcmNoLnRvcGsocHJvYmFiaWxpdGllcyUyQyUyMDUpJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCTEFCRUxTJTVCaSU1RCUzQSUyMHYuaXRlbSgpJTIwZm9yJTIwaSUyQyUyMHYlMjBpbiUyMHppcChpbmRpY2VzJTJDJTIwdmFsdWVzKSU3RA==",highlighted:`<span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
<span class="hljs-keyword">import</span> torch
<span class="hljs-keyword">import</span> gradio <span class="hljs-keyword">as</span> gr
<span class="hljs-keyword">from</span> torch <span class="hljs-keyword">import</span> nn

LABELS = Path(<span class="hljs-string">&quot;class_names.txt&quot;</span>).read_text().splitlines()

model = nn.Sequential(
    nn.Conv2d(<span class="hljs-number">1</span>, <span class="hljs-number">32</span>, <span class="hljs-number">3</span>, padding=<span class="hljs-string">&quot;same&quot;</span>),
    nn.ReLU(),
    nn.MaxPool2d(<span class="hljs-number">2</span>),
    nn.Conv2d(<span class="hljs-number">32</span>, <span class="hljs-number">64</span>, <span class="hljs-number">3</span>, padding=<span class="hljs-string">&quot;same&quot;</span>),
    nn.ReLU(),
    nn.MaxPool2d(<span class="hljs-number">2</span>),
    nn.Conv2d(<span class="hljs-number">64</span>, <span class="hljs-number">128</span>, <span class="hljs-number">3</span>, padding=<span class="hljs-string">&quot;same&quot;</span>),
    nn.ReLU(),
    nn.MaxPool2d(<span class="hljs-number">2</span>),
    nn.Flatten(),
    nn.Linear(<span class="hljs-number">1152</span>, <span class="hljs-number">256</span>),
    nn.ReLU(),
    nn.Linear(<span class="hljs-number">256</span>, <span class="hljs-built_in">len</span>(LABELS)),
)
state_dict = torch.load(<span class="hljs-string">&quot;pytorch_model.bin&quot;</span>, map_location=<span class="hljs-string">&quot;cpu&quot;</span>)
model.load_state_dict(state_dict, strict=<span class="hljs-literal">False</span>)
model.<span class="hljs-built_in">eval</span>()


<span class="hljs-keyword">def</span> <span class="hljs-title function_">predict</span>(<span class="hljs-params">im</span>):
    x = torch.tensor(im, dtype=torch.float32).unsqueeze(<span class="hljs-number">0</span>).unsqueeze(<span class="hljs-number">0</span>) / <span class="hljs-number">255.0</span>
    <span class="hljs-keyword">with</span> torch.no_grad():
        out = model(x)
    probabilities = torch.nn.functional.softmax(out[<span class="hljs-number">0</span>], dim=<span class="hljs-number">0</span>)
    values, indices = torch.topk(probabilities, <span class="hljs-number">5</span>)
    <span class="hljs-keyword">return</span> {LABELS[i]: v.item() <span class="hljs-keyword">for</span> i, v <span class="hljs-keyword">in</span> <span class="hljs-built_in">zip</span>(indices, values)}`,wrap:!1}}),E=new $e({props:{code:"aW50ZXJmYWNlJTIwJTNEJTIwZ3IuSW50ZXJmYWNlKCUwQSUyMCUyMCUyMCUyMHByZWRpY3QlMkMlMEElMjAlMjAlMjAlMjBpbnB1dHMlM0QlMjJza2V0Y2hwYWQlMjIlMkMlMEElMjAlMjAlMjAlMjBvdXRwdXRzJTNEJTIybGFiZWwlMjIlMkMlMEElMjAlMjAlMjAlMjB0aGVtZSUzRCUyMmh1Z2dpbmdmYWNlJTIyJTJDJTBBJTIwJTIwJTIwJTIwdGl0bGUlM0QlMjJTa2V0Y2glMjBSZWNvZ25pdGlvbiUyMiUyQyUwQSUyMCUyMCUyMCUyMGRlc2NyaXB0aW9uJTNEJTIyV2hvJTIwd2FudHMlMjB0byUyMHBsYXklMjBQaWN0aW9uYXJ5JTNGJTIwRHJhdyUyMGElMjBjb21tb24lMjBvYmplY3QlMjBsaWtlJTIwYSUyMHNob3ZlbCUyMG9yJTIwYSUyMGxhcHRvcCUyQyUyMGFuZCUyMHRoZSUyMGFsZ29yaXRobSUyMHdpbGwlMjBndWVzcyUyMGluJTIwcmVhbCUyMHRpbWUhJTIyJTJDJTBBJTIwJTIwJTIwJTIwYXJ0aWNsZSUzRCUyMiUzQ3AlMjBzdHlsZSUzRCd0ZXh0LWFsaWduJTNBJTIwY2VudGVyJyUzRVNrZXRjaCUyMFJlY29nbml0aW9uJTIwJTdDJTIwRGVtbyUyME1vZGVsJTNDJTJGcCUzRSUyMiUyQyUwQSUyMCUyMCUyMCUyMGxpdmUlM0RUcnVlJTJDJTBBKSUwQWludGVyZmFjZS5sYXVuY2goc2hhcmUlM0RUcnVlKQ==",highlighted:`interface = gr.Interface(
    predict,
    inputs=<span class="hljs-string">&quot;sketchpad&quot;</span>,
    outputs=<span class="hljs-string">&quot;label&quot;</span>,
    theme=<span class="hljs-string">&quot;huggingface&quot;</span>,
    title=<span class="hljs-string">&quot;Sketch Recognition&quot;</span>,
    description=<span class="hljs-string">&quot;Who wants to play Pictionary? Draw a common object like a shovel or a laptop, and the algorithm will guess in real time!&quot;</span>,
    article=<span class="hljs-string">&quot;&lt;p style=&#x27;text-align: center&#x27;&gt;Sketch Recognition | Demo Model&lt;/p&gt;&quot;</span>,
    live=<span class="hljs-literal">True</span>,
)
interface.launch(share=<span class="hljs-literal">True</span>)`,wrap:!1}}),A=new pa({props:{source:"https://github.com/huggingface/course/blob/main/chapters/rum/chapter9/4.mdx"}}),{c(){T=n("meta"),P=s(),q=n("p"),K=s(),m(U.$$.fragment),O=s(),m(g.$$.fragment),ee=s(),b=n("p"),b.innerHTML=Se,ae=s(),w=n("p"),w.textContent=We,te=s(),m(j.$$.fragment),le=s(),f=n("div"),f.innerHTML=Ze,se=s(),v=n("p"),v.innerHTML=ze,ie=s(),C=n("ul"),C.innerHTML=Qe,ne=s(),m(k.$$.fragment),re=s(),I=n("p"),I.textContent=He,oe=s(),c=n("iframe"),pe=s(),m(B.$$.fragment),ce=s(),G=n("p"),G.innerHTML=Fe,ue=s(),m(R.$$.fragment),me=s(),$=n("p"),$.innerHTML=_e,de=s(),x=n("p"),x.innerHTML=Ee,Me=s(),m(S.$$.fragment),ye=s(),W=n("p"),W.textContent=Le,Je=s(),Z=n("p"),Z.innerHTML=Ve,he=s(),m(z.$$.fragment),Te=s(),m(Q.$$.fragment),fe=s(),H=n("p"),H.innerHTML=Ne,Ue=s(),Y=n("p"),Y.innerHTML=Ae,ge=s(),m(F.$$.fragment),be=s(),_=n("p"),_.innerHTML=qe,we=s(),m(E.$$.fragment),je=s(),u=n("iframe"),ve=s(),L=n("p"),L.innerHTML=De,Ce=s(),V=n("p"),V.innerHTML=Pe,ke=s(),N=n("p"),N.textContent=Ke,Ie=s(),m(A.$$.fragment),Be=s(),X=n("p"),this.h()},l(e){const a=ia("svelte-u9bgzb",document.head);T=r(a,"META",{name:!0,content:!0}),a.forEach(t),P=i(e),q=r(e,"P",{}),Re(q).forEach(t),K=i(e),d(U.$$.fragment,e),O=i(e),d(g.$$.fragment,e),ee=i(e),b=r(e,"P",{"data-svelte-h":!0}),o(b)!=="svelte-vnpdh1"&&(b.innerHTML=Se),ae=i(e),w=r(e,"P",{"data-svelte-h":!0}),o(w)!=="svelte-1jj1ig2"&&(w.textContent=We),te=i(e),d(j.$$.fragment,e),le=i(e),f=r(e,"DIV",{class:!0,"data-svelte-h":!0}),o(f)!=="svelte-nclpfp"&&(f.innerHTML=Ze),se=i(e),v=r(e,"P",{"data-svelte-h":!0}),o(v)!=="svelte-1emma0p"&&(v.innerHTML=ze),ie=i(e),C=r(e,"UL",{"data-svelte-h":!0}),o(C)!=="svelte-la80rj"&&(C.innerHTML=Qe),ne=i(e),d(k.$$.fragment,e),re=i(e),I=r(e,"P",{"data-svelte-h":!0}),o(I)!=="svelte-11fyw60"&&(I.textContent=He),oe=i(e),c=r(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),Re(c).forEach(t),pe=i(e),d(B.$$.fragment,e),ce=i(e),G=r(e,"P",{"data-svelte-h":!0}),o(G)!=="svelte-6ca6o8"&&(G.innerHTML=Fe),ue=i(e),d(R.$$.fragment,e),me=i(e),$=r(e,"P",{"data-svelte-h":!0}),o($)!=="svelte-1gfl86i"&&($.innerHTML=_e),de=i(e),x=r(e,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1w4qg51"&&(x.innerHTML=Ee),Me=i(e),d(S.$$.fragment,e),ye=i(e),W=r(e,"P",{"data-svelte-h":!0}),o(W)!=="svelte-syxt28"&&(W.textContent=Le),Je=i(e),Z=r(e,"P",{"data-svelte-h":!0}),o(Z)!=="svelte-ljtss4"&&(Z.innerHTML=Ve),he=i(e),d(z.$$.fragment,e),Te=i(e),d(Q.$$.fragment,e),fe=i(e),H=r(e,"P",{"data-svelte-h":!0}),o(H)!=="svelte-idv3ak"&&(H.innerHTML=Ne),Ue=i(e),Y=r(e,"P",{"data-svelte-h":!0}),o(Y)!=="svelte-85qxul"&&(Y.innerHTML=Ae),ge=i(e),d(F.$$.fragment,e),be=i(e),_=r(e,"P",{"data-svelte-h":!0}),o(_)!=="svelte-1thundn"&&(_.innerHTML=qe),we=i(e),d(E.$$.fragment,e),je=i(e),u=r(e,"IFRAME",{src:!0,frameborder:!0,height:!0,title:!0,class:!0,allow:!0,sandbox:!0}),Re(u).forEach(t),ve=i(e),L=r(e,"P",{"data-svelte-h":!0}),o(L)!=="svelte-mzhoop"&&(L.innerHTML=De),Ce=i(e),V=r(e,"P",{"data-svelte-h":!0}),o(V)!=="svelte-11jrdow"&&(V.innerHTML=Pe),ke=i(e),N=r(e,"P",{"data-svelte-h":!0}),o(N)!=="svelte-g5zqfd"&&(N.textContent=Ke),Ie=i(e),d(A.$$.fragment,e),Be=i(e),X=r(e,"P",{}),Re(X).forEach(t),this.h()},h(){p(T,"name","hf:doc:metadata"),p(T,"content",ua),p(f,"class","flex justify-center"),Oe(c.src,Ye="https://course-demos-Rick-and-Morty-QA.hf.space")||p(c,"src",Ye),p(c,"frameborder","0"),p(c,"height","800"),p(c,"title","Gradio app"),p(c,"class","container p-0 flex-grow space-iframe"),p(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"),p(c,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"),Oe(u.src,Xe="https://course-demos-Sketch-Recognition.hf.space")||p(u,"src",Xe),p(u,"frameborder","0"),p(u,"height","650"),p(u,"title","Gradio app"),p(u,"class","container p-0 flex-grow space-iframe"),p(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"),p(u,"sandbox","allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads")},m(e,a){na(document.head,T),l(e,P,a),l(e,q,a),l(e,K,a),M(U,e,a),l(e,O,a),M(g,e,a),l(e,ee,a),l(e,b,a),l(e,ae,a),l(e,w,a),l(e,te,a),M(j,e,a),l(e,le,a),l(e,f,a),l(e,se,a),l(e,v,a),l(e,ie,a),l(e,C,a),l(e,ne,a),M(k,e,a),l(e,re,a),l(e,I,a),l(e,oe,a),l(e,c,a),l(e,pe,a),M(B,e,a),l(e,ce,a),l(e,G,a),l(e,ue,a),M(R,e,a),l(e,me,a),l(e,$,a),l(e,de,a),l(e,x,a),l(e,Me,a),M(S,e,a),l(e,ye,a),l(e,W,a),l(e,Je,a),l(e,Z,a),l(e,he,a),M(z,e,a),l(e,Te,a),M(Q,e,a),l(e,fe,a),l(e,H,a),l(e,Ue,a),l(e,Y,a),l(e,ge,a),M(F,e,a),l(e,be,a),l(e,_,a),l(e,we,a),M(E,e,a),l(e,je,a),l(e,u,a),l(e,ve,a),l(e,L,a),l(e,Ce,a),l(e,V,a),l(e,ke,a),l(e,N,a),l(e,Ie,a),M(A,e,a),l(e,Be,a),l(e,X,a),Ge=!0},p:aa,i(e){Ge||(y(U.$$.fragment,e),y(g.$$.fragment,e),y(j.$$.fragment,e),y(k.$$.fragment,e),y(B.$$.fragment,e),y(R.$$.fragment,e),y(S.$$.fragment,e),y(z.$$.fragment,e),y(Q.$$.fragment,e),y(F.$$.fragment,e),y(E.$$.fragment,e),y(A.$$.fragment,e),Ge=!0)},o(e){J(U.$$.fragment,e),J(g.$$.fragment,e),J(j.$$.fragment,e),J(k.$$.fragment,e),J(B.$$.fragment,e),J(R.$$.fragment,e),J(S.$$.fragment,e),J(z.$$.fragment,e),J(Q.$$.fragment,e),J(F.$$.fragment,e),J(E.$$.fragment,e),J(A.$$.fragment,e),Ge=!1},d(e){e&&(t(P),t(q),t(K),t(O),t(ee),t(b),t(ae),t(w),t(te),t(le),t(f),t(se),t(v),t(ie),t(C),t(ne),t(re),t(I),t(oe),t(c),t(pe),t(ce),t(G),t(ue),t(me),t($),t(de),t(x),t(Me),t(ye),t(W),t(Je),t(Z),t(he),t(Te),t(fe),t(H),t(Ue),t(Y),t(ge),t(be),t(_),t(we),t(je),t(u),t(ve),t(L),t(Ce),t(V),t(ke),t(N),t(Ie),t(Be),t(X)),t(T),h(U,e),h(g,e),h(j,e),h(k,e),h(B,e),h(R,e),h(S,e),h(z,e),h(Q,e),h(F,e),h(E,e),h(A,e)}}}const ua='{"title":"Partajarea demo-urilor cu alții","local":"sharing-demos-with-others","sections":[{"title":"Înfrumusețarea demo-ului Gradio:","local":"polishing-your-gradio-demo","sections":[],"depth":3},{"title":"Partajarea demo-ului cu link-uri temporare","local":"sharing-your-demo-with-temporary-links","sections":[],"depth":3},{"title":"Găzduirea demo-ului pe Hugging Face Spaces","local":"hosting-your-demo-on-hugging-face-spaces","sections":[],"depth":3},{"title":"✏️ Să aplicăm!","local":"lets-apply-it","sections":[],"depth":2}],"depth":1}';function ma(xe){return ta(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class fa extends la{constructor(T){super(),sa(this,T,ma,ca,ea,{})}}export{fa as component};
