Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Tasks","local":"tasks","sections":[{"title":"What’s a task?","local":"whats-a-task","sections":[],"depth":2},{"title":"Overview","local":"overview","sections":[],"depth":2},{"title":"Adding new tasks to the Hub","local":"adding-new-tasks-to-the-hub","sections":[{"title":"Using Hugging Face transformers library","local":"using-hugging-face-transformers-library","sections":[],"depth":3},{"title":"Using Community Inference API with a supported library","local":"using-community-inference-api-with-a-supported-library","sections":[],"depth":3},{"title":"Adding Community Inference API for a quick prototype","local":"adding-community-inference-api-for-a-quick-prototype","sections":[],"depth":3},{"title":"UI elements","local":"ui-elements","sections":[],"depth":3},{"title":"Widget","local":"widget","sections":[],"depth":3}],"depth":2}],"depth":1}"> | |
| <link href="/docs/hub/main/en/_app/immutable/assets/0.e3b0c442.css" rel="modulepreload"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/entry/start.d0cd5065.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/chunks/scheduler.d6170356.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/chunks/singletons.d032f1eb.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/chunks/paths.752f1c6b.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/entry/app.b6abe3c1.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/chunks/index.fcd4cc08.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/nodes/0.f045427f.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/nodes/81.1d118c04.js"> | |
| <link rel="modulepreload" href="/docs/hub/main/en/_app/immutable/chunks/EditOnGithub.da2b595c.js"><!-- HEAD_svelte-u9bgzb_START --><meta name="hf:doc:metadata" content="{"title":"Tasks","local":"tasks","sections":[{"title":"What’s a task?","local":"whats-a-task","sections":[],"depth":2},{"title":"Overview","local":"overview","sections":[],"depth":2},{"title":"Adding new tasks to the Hub","local":"adding-new-tasks-to-the-hub","sections":[{"title":"Using Hugging Face transformers library","local":"using-hugging-face-transformers-library","sections":[],"depth":3},{"title":"Using Community Inference API with a supported library","local":"using-community-inference-api-with-a-supported-library","sections":[],"depth":3},{"title":"Adding Community Inference API for a quick prototype","local":"adding-community-inference-api-for-a-quick-prototype","sections":[],"depth":3},{"title":"UI elements","local":"ui-elements","sections":[],"depth":3},{"title":"Widget","local":"widget","sections":[],"depth":3}],"depth":2}],"depth":1}"><!-- HEAD_svelte-u9bgzb_END --> <p></p> <h1 class="relative group"><a id="tasks" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#tasks"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Tasks</span></h1> <h2 class="relative group"><a id="whats-a-task" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#whats-a-task"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>What’s a task?</span></h2> <p data-svelte-h="svelte-1eg00uh">Tasks, or pipeline types, describe the “shape” of each model’s API (inputs and outputs) and are used to determine which Inference API and widget we want to display for any given model.</p> <div class="flex justify-center" data-svelte-h="svelte-1lsch2v"><img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/tasks.png"> <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/tasks-dark.png"></div> <p data-svelte-h="svelte-1w57hvb">This classification is relatively coarse-grained (you can always add more fine-grained task names in your model tags), so <strong>you should rarely have to create a new task</strong>. If you want to add support for a new task, this document explains the required steps.</p> <h2 class="relative group"><a id="overview" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#overview"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Overview</span></h2> <p data-svelte-h="svelte-15av66z">Having a new task integrated into the Hub means that:</p> <ul data-svelte-h="svelte-8gq8pt"><li>Users can search for all models – and datasets – of a given task.</li> <li>The Inference API supports the task.</li> <li>Users can try out models directly with the widget. 🏆</li></ul> <p data-svelte-h="svelte-tuuwdi">Note that you don’t need to implement all the steps by yourself. Adding a new task is a community effort, and multiple people can contribute. 🧑🤝🧑</p> <p data-svelte-h="svelte-1xa8q81">To begin the process, open a new issue in the <a href="https://github.com/huggingface/huggingface_hub/issues" rel="nofollow">huggingface_hub</a> repository. Please use the “Adding a new task” template. ⚠️Before doing any coding, it’s suggested to go over this document. ⚠️</p> <p data-svelte-h="svelte-1ncnre8">The first step is to upload a model for your proposed task. Once you have a model in the Hub for the new task, the next step is to enable it in the Inference API. There are three types of support that you can choose from:</p> <ul data-svelte-h="svelte-iyd5dv"><li>🤗 using a <code>transformers</code> model</li> <li>🐳 using a model from an <a href="./models-libraries">officially supported library</a></li> <li>🖨️ using a model with custom inference code. This experimental option has downsides, so we recommend using one of the other approaches.</li></ul> <p data-svelte-h="svelte-18hwl3y">Finally, you can add a couple of UI elements, such as the task icon and the widget, that complete the integration in the Hub. 📷</p> <p data-svelte-h="svelte-1qljhbq">Some steps are orthogonal; you don’t need to do them in order. <strong>You don’t need the Inference API to add the icon.</strong> This means that, even if there isn’t full integration yet, users can still search for models of a given task.</p> <h2 class="relative group"><a id="adding-new-tasks-to-the-hub" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#adding-new-tasks-to-the-hub"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Adding new tasks to the Hub</span></h2> <h3 class="relative group"><a id="using-hugging-face-transformers-library" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#using-hugging-face-transformers-library"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Using Hugging Face transformers library</span></h3> <p data-svelte-h="svelte-tokqq5">If your model is a <code>transformers</code>-based model, there is a 1:1 mapping between the Inference API task and a <code>pipeline</code> class. Here are some example PRs from the <code>transformers</code> library:</p> <ul data-svelte-h="svelte-m5tbso"><li><a href="https://github.com/huggingface/transformers/pull/11598" rel="nofollow">Adding ImageClassificationPipeline</a></li> <li><a href="https://github.com/huggingface/transformers/pull/13342" rel="nofollow">Adding AudioClassificationPipeline</a></li></ul> <p data-svelte-h="svelte-1rm7guk">Once the pipeline is submitted and deployed, you should be able to use the Inference API for your model.</p> <h3 class="relative group"><a id="using-community-inference-api-with-a-supported-library" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#using-community-inference-api-with-a-supported-library"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Using Community Inference API with a supported library</span></h3> <p data-svelte-h="svelte-u8woez">The Hub also supports over 10 open-source libraries in the <a href="https://github.com/huggingface/api-inference-community" rel="nofollow">Community Inference API</a>.</p> <p data-svelte-h="svelte-pvk38g"><strong>Adding a new task is relatively straightforward and requires 2 PRs:</strong></p> <ul data-svelte-h="svelte-9oxdcc"><li>PR 1: Add the new task to the API <a href="https://github.com/huggingface/api-inference-community/blob/main/api_inference_community/validation.py" rel="nofollow">validation</a>. This code ensures that the inference input is valid for a given task. Some PR examples:<ul><li><a href="https://github.com/huggingface/huggingface_hub/commit/5f040a117cf2a44d704621012eb41c01b103cfca#diff-db8bbac95c077540d79900384cfd524d451e629275cbb5de7a31fc1cd5d6c189" rel="nofollow">Add text-to-image</a></li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/141e30588a2031d4d5798eaa2c1250d1d1b75905#diff-db8bbac95c077540d79900384cfd524d451e629275cbb5de7a31fc1cd5d6c189" rel="nofollow">Add audio-classification</a></li> <li><a href="https://github.com/huggingface/huggingface_hub/commit/dbea604a45df163d3f0b4b1d897e4b0fb951c650#diff-db8bbac95c077540d79900384cfd524d451e629275cbb5de7a31fc1cd5d6c189" rel="nofollow">Add tabular-classification</a></li></ul></li> <li>PR 2: Add the new task to a library docker image. You should also add a template to <a href="https://github.com/huggingface/api-inference-community/tree/main/docker_images/common/app/pipelines" rel="nofollow"><code>docker_images/common/app/pipelines</code></a> to facilitate integrating the task in other libraries. Here is an example PR:<ul><li><a href="https://github.com/huggingface/huggingface_hub/commit/6926fd9bec23cb963ce3f58ec53496083997f0fa#diff-3f1083a92ca0047b50f9ad2d04f0fe8dfaeee0e26ab71eb8835e365359a1d0dc" rel="nofollow">Add text-classification to spaCy</a></li></ul></li></ul> <h3 class="relative group"><a id="adding-community-inference-api-for-a-quick-prototype" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#adding-community-inference-api-for-a-quick-prototype"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Adding Community Inference API for a quick prototype</span></h3> <p data-svelte-h="svelte-1rw0of7"><strong>My model is not supported by any library. Am I doomed? 😱</strong></p> <p data-svelte-h="svelte-18pm6ym">We recommend using <a href="./spaces">Hugging Face Spaces</a> for these use cases.</p> <h3 class="relative group"><a id="ui-elements" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#ui-elements"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>UI elements</span></h3> <p data-svelte-h="svelte-p8vjj8">The Hub allows users to filter models by a given task. To do this, you need to add the task to several places. You’ll also get to pick an icon for the task!</p> <ol data-svelte-h="svelte-1jsxx4s"><li>Add the task type to <code>Types.ts</code></li></ol> <p data-svelte-h="svelte-1uzhqbb">In <a href="https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/pipelines.ts" rel="nofollow">huggingface.js/packages/tasks/src/pipelines.ts</a>, you need to do a couple of things</p> <ul data-svelte-h="svelte-swx4ji"><li>Add the type to <code>PIPELINE_DATA</code>. Note that pipeline types are sorted into different categories (NLP, Audio, Computer Vision, and others).</li> <li>You will also need to fill minor changes in <a href="https://github.com/huggingface/huggingface.js/blob/main/packages/tasks/src/tasks/index.ts" rel="nofollow">huggingface.js/packages/tasks/src/tasks/index.ts</a></li></ul> <ol start="2" data-svelte-h="svelte-ppajzd"><li>Choose an icon</li></ol> <p data-svelte-h="svelte-170oba6">You can add an icon in the <a href="https://github.com/huggingface/huggingface.js/tree/main/packages/widgets/src/lib/components/Icons" rel="nofollow">lib/Icons</a> directory. We usually choose carbon icons from <a href="https://icones.js.org/collection/carbon" rel="nofollow">https://icones.js.org/collection/carbon</a>. Also add the icon to <a href="https://github.com/huggingface/huggingface.js/blob/main/packages/widgets/src/lib/components/PipelineIcon/PipelineIcon.svelte" rel="nofollow">PipelineIcon</a>.</p> <h3 class="relative group"><a id="widget" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#widget"><span><svg class="" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg></span></a> <span>Widget</span></h3> <p data-svelte-h="svelte-1xlspt7">Once the task is in production, what could be more exciting than implementing some way for users to play directly with the models in their browser? 🤩 You can find all the widgets <a href="https://huggingface.co/spaces/huggingfacejs/inference-widgets" rel="nofollow">here</a>.</p> <p data-svelte-h="svelte-z2f4h">If you would be interested in contributing with a widget, you can look at the <a href="https://github.com/huggingface/huggingface.js/tree/main/packages/widgets" rel="nofollow">implementation</a> of all the widgets.</p> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/hub-docs/blob/main/docs/hub/models-tasks.md" target="_blank"><span data-svelte-h="svelte-1kd6by1"><</span> <span data-svelte-h="svelte-x0xyl0">></span> <span data-svelte-h="svelte-1dajgef"><span class="underline ml-1.5">Update</span> on GitHub</span></a> <p></p> | |
| <script> | |
| { | |
| __sveltekit_1vatp3t = { | |
| assets: "/docs/hub/main/en", | |
| base: "/docs/hub/main/en", | |
| env: {} | |
| }; | |
| const element = document.currentScript.parentElement; | |
| const data = [null,null]; | |
| Promise.all([ | |
| import("/docs/hub/main/en/_app/immutable/entry/start.d0cd5065.js"), | |
| import("/docs/hub/main/en/_app/immutable/entry/app.b6abe3c1.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 81], | |
| data, | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 22.3 kB
- Xet hash:
- 79c4cb66c66cf649b0929adbdc0250361298030469e98a0cb9542667e32c8e27
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.