import{s as de,n as me,o as ge}from"../chunks/scheduler.6062bdaf.js";import{S as be,i as _e,g as n,s as l,r as x,A as we,h as o,f as s,c as i,j as fe,u as j,x as p,k as ue,y as Me,a,v as k,d as C,t as U,w as J}from"../chunks/index.4bca734e.js";import{C as O}from"../chunks/CodeBlock.fa01571c.js";import{H as ee}from"../chunks/Heading.723dceba.js";function $e(te){let r,G,L,P,h,Z,c,se="In this tutorial, you will learn how to search models, datasets and spaces on the Hub using <code>huggingface_hub</code>.",A,f,F,u,ae=`<code>huggingface_hub</code> library includes an HTTP client <a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.HfApi">HfApi</a> to interact with the Hub.
Among other things, it can list models, datasets and spaces stored on the Hub:`,Q,d,X,m,le='The output of <a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.HfApi.list_models">list_models()</a> is an iterator over the models stored on the Hub.',R,g,ie='Similarly, you can use <a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.HfApi.list_datasets">list_datasets()</a> to list datasets and <a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.HfApi.list_spaces">list_spaces()</a> to list Spaces.',W,b,z,_,ne=`Listing repositories is great but now you might want to filter your search.
The list helpers have several attributes like:`,B,w,oe="<li><code>filter</code></li> <li><code>author</code></li> <li><code>search</code></li> <li>…</li>",E,M,pe=`Two of these parameters are intuitive (<code>author</code> and <code>search</code>), but what about that <code>filter</code>?
<code>filter</code> takes as input a <a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.ModelFilter">ModelFilter</a> object (or <a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.DatasetFilter">DatasetFilter</a>). You can instantiate
it by specifying which models you want to filter.`,N,$,re=`Let’s see an example to get all models on the Hub that does image classification, have been
trained on the imagenet dataset and that runs with PyTorch. That can be done with a single
<a href="/docs/huggingface_hub/v0.21.2/en/package_reference/hf_api#huggingface_hub.ModelFilter">ModelFilter</a>. Attributes are combined as “logical AND”.`,q,v,I,T,he=`While filtering, you can also sort the models and take only the top results. For example,
the following example fetches the top 5 most downloaded datasets on the Hub:`,Y,y,D,H,ce=`To explore available filter on the Hub, visit <a href="https://huggingface.co/models" rel="nofollow">models</a> and <a href="https://huggingface.co/datasets" rel="nofollow">datasets</a> pages
in your browser, search for some parameters and look at the values in the URL.`,V,S,K;return h=new ee({props:{title:"Search the Hub",local:"search-the-hub",headingTag:"h1"}}),f=new ee({props:{title:"How to list repositories ?",local:"how-to-list-repositories-",headingTag:"h2"}}),d=new O({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMEhmQXBpJTBBYXBpJTIwJTNEJTIwSGZBcGkoKSUwQW1vZGVscyUyMCUzRCUyMGFwaS5saXN0X21vZGVscygp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> HfApi
<span class="hljs-meta">&gt;&gt;&gt; </span>api = HfApi()
<span class="hljs-meta">&gt;&gt;&gt; </span>models = api.list_models()`,wrap:!1}}),b=new ee({props:{title:"How to filter repositories ?",local:"how-to-filter-repositories-",headingTag:"h2"}}),v=new O({props:{code:"bW9kZWxzJTIwJTNEJTIwaGZfYXBpLmxpc3RfbW9kZWxzKCUwQSUyMCUyMCUyMCUyMGZpbHRlciUzRE1vZGVsRmlsdGVyKCUwQSUwOSUwOXRhc2slM0QlMjJpbWFnZS1jbGFzc2lmaWNhdGlvbiUyMiUyQyUwQSUwOSUwOWxpYnJhcnklM0QlMjJweXRvcmNoJTIyJTJDJTBBJTA5JTA5dHJhaW5lZF9kYXRhc2V0JTNEJTIyaW1hZ2VuZXQlMjIlMEElMDkpJTBBKQ==",highlighted:`models = hf_api.list_models(
    <span class="hljs-built_in">filter</span>=ModelFilter(
		task=<span class="hljs-string">&quot;image-classification&quot;</span>,
		library=<span class="hljs-string">&quot;pytorch&quot;</span>,
		trained_dataset=<span class="hljs-string">&quot;imagenet&quot;</span>
	)
)`,wrap:!1}}),y=new O({props:{code:"bGlzdChsaXN0X2RhdGFzZXRzKHNvcnQlM0QlMjJkb3dubG9hZHMlMjIlMkMlMjBkaXJlY3Rpb24lM0QtMSUyQyUyMGxpbWl0JTNENSkp",highlighted:`<span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-built_in">list</span>(list_datasets(sort=<span class="hljs-string">&quot;downloads&quot;</span>, direction=-<span class="hljs-number">1</span>, limit=<span class="hljs-number">5</span>))
[DatasetInfo(
	<span class="hljs-built_in">id</span>=<span class="hljs-string">&#x27;argilla/databricks-dolly-15k-curated-en&#x27;</span>,
	author=<span class="hljs-string">&#x27;argilla&#x27;</span>,
	sha=<span class="hljs-string">&#x27;4dcd1dedbe148307a833c931b21ca456a1fc4281&#x27;</span>,
	last_modified=datetime.datetime(<span class="hljs-number">2023</span>, <span class="hljs-number">10</span>, <span class="hljs-number">2</span>, <span class="hljs-number">12</span>, <span class="hljs-number">32</span>, <span class="hljs-number">53</span>, tzinfo=datetime.timezone.utc),
	private=<span class="hljs-literal">False</span>,
	downloads=<span class="hljs-number">8889377</span>,
	(...)`,wrap:!1}}),{c(){r=n("meta"),G=l(),L=n("p"),P=l(),x(h.$$.fragment),Z=l(),c=n("p"),c.innerHTML=se,A=l(),x(f.$$.fragment),F=l(),u=n("p"),u.innerHTML=ae,Q=l(),x(d.$$.fragment),X=l(),m=n("p"),m.innerHTML=le,R=l(),g=n("p"),g.innerHTML=ie,W=l(),x(b.$$.fragment),z=l(),_=n("p"),_.textContent=ne,B=l(),w=n("ul"),w.innerHTML=oe,E=l(),M=n("p"),M.innerHTML=pe,N=l(),$=n("p"),$.innerHTML=re,q=l(),x(v.$$.fragment),I=l(),T=n("p"),T.textContent=he,Y=l(),x(y.$$.fragment),D=l(),H=n("p"),H.innerHTML=ce,V=l(),S=n("p"),this.h()},l(e){const t=we("svelte-u9bgzb",document.head);r=o(t,"META",{name:!0,content:!0}),t.forEach(s),G=i(e),L=o(e,"P",{}),fe(L).forEach(s),P=i(e),j(h.$$.fragment,e),Z=i(e),c=o(e,"P",{"data-svelte-h":!0}),p(c)!=="svelte-1j3ajgu"&&(c.innerHTML=se),A=i(e),j(f.$$.fragment,e),F=i(e),u=o(e,"P",{"data-svelte-h":!0}),p(u)!=="svelte-b0doq9"&&(u.innerHTML=ae),Q=i(e),j(d.$$.fragment,e),X=i(e),m=o(e,"P",{"data-svelte-h":!0}),p(m)!=="svelte-nd1bt8"&&(m.innerHTML=le),R=i(e),g=o(e,"P",{"data-svelte-h":!0}),p(g)!=="svelte-1dixc2b"&&(g.innerHTML=ie),W=i(e),j(b.$$.fragment,e),z=i(e),_=o(e,"P",{"data-svelte-h":!0}),p(_)!=="svelte-1x8b9ko"&&(_.textContent=ne),B=i(e),w=o(e,"UL",{"data-svelte-h":!0}),p(w)!=="svelte-11piw8k"&&(w.innerHTML=oe),E=i(e),M=o(e,"P",{"data-svelte-h":!0}),p(M)!=="svelte-1igl55f"&&(M.innerHTML=pe),N=i(e),$=o(e,"P",{"data-svelte-h":!0}),p($)!=="svelte-1fq70rx"&&($.innerHTML=re),q=i(e),j(v.$$.fragment,e),I=i(e),T=o(e,"P",{"data-svelte-h":!0}),p(T)!=="svelte-8rar3u"&&(T.textContent=he),Y=i(e),j(y.$$.fragment,e),D=i(e),H=o(e,"P",{"data-svelte-h":!0}),p(H)!=="svelte-13xztxw"&&(H.innerHTML=ce),V=i(e),S=o(e,"P",{}),fe(S).forEach(s),this.h()},h(){ue(r,"name","hf:doc:metadata"),ue(r,"content",ve)},m(e,t){Me(document.head,r),a(e,G,t),a(e,L,t),a(e,P,t),k(h,e,t),a(e,Z,t),a(e,c,t),a(e,A,t),k(f,e,t),a(e,F,t),a(e,u,t),a(e,Q,t),k(d,e,t),a(e,X,t),a(e,m,t),a(e,R,t),a(e,g,t),a(e,W,t),k(b,e,t),a(e,z,t),a(e,_,t),a(e,B,t),a(e,w,t),a(e,E,t),a(e,M,t),a(e,N,t),a(e,$,t),a(e,q,t),k(v,e,t),a(e,I,t),a(e,T,t),a(e,Y,t),k(y,e,t),a(e,D,t),a(e,H,t),a(e,V,t),a(e,S,t),K=!0},p:me,i(e){K||(C(h.$$.fragment,e),C(f.$$.fragment,e),C(d.$$.fragment,e),C(b.$$.fragment,e),C(v.$$.fragment,e),C(y.$$.fragment,e),K=!0)},o(e){U(h.$$.fragment,e),U(f.$$.fragment,e),U(d.$$.fragment,e),U(b.$$.fragment,e),U(v.$$.fragment,e),U(y.$$.fragment,e),K=!1},d(e){e&&(s(G),s(L),s(P),s(Z),s(c),s(A),s(F),s(u),s(Q),s(X),s(m),s(R),s(g),s(W),s(z),s(_),s(B),s(w),s(E),s(M),s(N),s($),s(q),s(I),s(T),s(Y),s(D),s(H),s(V),s(S)),s(r),J(h,e),J(f,e),J(d,e),J(b,e),J(v,e),J(y,e)}}}const ve='{"title":"Search the Hub","local":"search-the-hub","sections":[{"title":"How to list repositories ?","local":"how-to-list-repositories-","sections":[],"depth":2},{"title":"How to filter repositories ?","local":"how-to-filter-repositories-","sections":[],"depth":2}],"depth":1}';function Te(te){return ge(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ke extends be{constructor(r){super(),_e(this,r,Te,$e,de,{})}}export{ke as component};
