Buckets:

rtrm's picture
download
raw
65.8 kB
import{s as Fs,o as Ds,n as X}from"../chunks/scheduler.b108d059.js";import{S as Ps,i as Ks,g as o,s as n,r as c,A as Os,h as M,f as l,c as a,j as ft,u,x as p,k as _s,y as R,a as s,v as y,d as r,t as m,w as h}from"../chunks/index.008de539.js";import{T as H}from"../chunks/Tip.aeb15ab7.js";import{C as j}from"../chunks/CodeBlock.3968c746.js";import{H as G,E as en}from"../chunks/EditOnGithub.d1c48e3d.js";function tn(C){let i,f="Regarding the licensing terms, Llama 3.2 comes with a very similar license to Llama 3.1, with one key difference in the acceptable use policy: any individual domiciled in, or a company with a principal place of business in, the European Union (EU) is not being granted the license rights to use multimodal models included in Llama 3.2. This restriction does not apply to end users of a product or service that incorporates any such multimodal models, so people can still build global products with the vision variants.",d,T,b='For full details, please make sure to read <a href="https://huggingface.co/meta-llama/Llama-3.2-1B/blob/main/LICENSE.txt" rel="nofollow">the official license</a> and <a href="https://huggingface.co/meta-llama/Llama-3.2-1B/blob/main/USE_POLICY.md" rel="nofollow">the acceptable use policy</a>.';return{c(){i=o("p"),i.textContent=f,d=n(),T=o("p"),T.innerHTML=b},l(g){i=M(g,"P",{"data-svelte-h":!0}),p(i)!=="svelte-1nnv2wz"&&(i.textContent=f),d=a(g),T=M(g,"P",{"data-svelte-h":!0}),p(T)!=="svelte-1pc67jk"&&(T.innerHTML=b)},m(g,$){s(g,i,$),s(g,d,$),s(g,T,$)},p:X,d(g){g&&(l(i),l(d),l(T))}}}function ln(C){let i,f='Installing the <code>gke-gcloud-auth-plugin</code> does not need to be installed via <code>gcloud</code> specifically, to read more about the alternative installation methods, please visit <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl#install_plugin" rel="nofollow">GKE Documentation - Install kubectl and configure cluster access</a>.';return{c(){i=o("p"),i.innerHTML=f},l(d){i=M(d,"P",{"data-svelte-h":!0}),p(i)!=="svelte-15icaac"&&(i.innerHTML=f)},m(d,T){s(d,i,T)},p:X,d(d){d&&l(i)}}}function sn(C){let i,f='Important to check before creating the GKE Autopilot Cluster the <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/performance-pods" rel="nofollow">GKE Documentation - Optimize Autopilot Pod performance by choosing a machine series</a>, since not all the versions support GPU accelerators e.g. <code>nvidia-l4</code> is not supported in the GKE cluster versions 1.28.3 or lower.';return{c(){i=o("p"),i.innerHTML=f},l(d){i=M(d,"P",{"data-svelte-h":!0}),p(i)!=="svelte-1cdm5nv"&&(i.innerHTML=f)},m(d,T){s(d,i,T)},p:X,d(d){d&&l(i)}}}function nn(C){let i,f="To select the specific version in your location of the GKE Cluster, you can run the following command:",d,T,b,g,$='For more information please visit <a href="https://cloud.google.com/kubernetes-engine/versioning#specifying_cluster_version" rel="nofollow">GKE Documentation - Specifying cluster version</a>.',Z;return T=new j({props:{code:"Z2Nsb3VkJTIwY29udGFpbmVyJTIwZ2V0LXNlcnZlci1jb25maWclMjAlNUMlMEElMjAlMjAlMjAlMjAtLWZsYXR0ZW4lM0QlMjJjaGFubmVscyUyMiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZmlsdGVyJTNEJTIyY2hhbm5lbHMuY2hhbm5lbCUzRFNUQUJMRSUyMiUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tZm9ybWF0JTNEJTIyeWFtbChjaGFubmVscy5jaGFubmVsJTJDY2hhbm5lbHMuZGVmYXVsdFZlcnNpb24pJTIyJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1sb2NhdGlvbiUzRCUyNExPQ0FUSU9O",highlighted:`gcloud container get-server-config \\
--flatten=<span class="hljs-string">&quot;channels&quot;</span> \\
--filter=<span class="hljs-string">&quot;channels.channel=STABLE&quot;</span> \\
--format=<span class="hljs-string">&quot;yaml(channels.channel,channels.defaultVersion)&quot;</span> \\
--location=<span class="hljs-variable">$LOCATION</span>`,wrap:!1}}),{c(){i=o("p"),i.textContent=f,d=n(),c(T.$$.fragment),b=n(),g=o("p"),g.innerHTML=$},l(U){i=M(U,"P",{"data-svelte-h":!0}),p(i)!=="svelte-a3yff9"&&(i.textContent=f),d=a(U),u(T.$$.fragment,U),b=a(U),g=M(U,"P",{"data-svelte-h":!0}),p(g)!=="svelte-1bsy0hk"&&(g.innerHTML=$)},m(U,I){s(U,i,I),s(U,d,I),y(T,U,I),s(U,b,I),s(U,g,I),Z=!0},p:X,i(U){Z||(r(T.$$.fragment,U),Z=!0)},o(U){m(T.$$.fragment,U),Z=!1},d(U){U&&(l(i),l(d),l(b),l(g)),h(T,U)}}}function an(C){let i,f='To explore all the models that can be served via TGI, you can explore <a href="https://huggingface.co/models?other=text-generation-inference" rel="nofollow">the models tagged with <code>text-generation-inference</code> in the Hub</a>; specifically, if you are interested in Vision Language Models (VLMs) you can explore <a href="https://huggingface.co/models?pipeline_tag=image-text-to-text&amp;other=text-generation-inference&amp;sort=trending" rel="nofollow">the models tagged with both <code>text-generation-inference</code> and <code>image-text-to-text</code> in the Hub</a>.';return{c(){i=o("p"),i.innerHTML=f},l(d){i=M(d,"P",{"data-svelte-h":!0}),p(i)!=="svelte-vsq7tw"&&(i.innerHTML=f)},m(d,T){s(d,i,T)},p:X,d(d){d&&l(i)}}}function on(C){let i,f="The Kubernetes deployment may take a few minutes to be ready, so you can check the status of the deployment with the following command:",d,T,b,g,$="As well as checking the logs of the pod that’s being deployed with:",Z,U,I,x,z="Alternatively, you can just wait for the deployment to be ready with the following command:",v,W,k;return T=new j({props:{code:"a3ViZWN0bCUyMGdldCUyMHBvZHM=",highlighted:"kubectl get pods",wrap:!1}}),U=new j({props:{code:"a3ViZWN0bCUyMGxvZ3MlMjAtZiUyMCUzQ1BPRCUzRQ==",highlighted:"kubectl logs -f &lt;POD&gt;",wrap:!1}}),W=new j({props:{code:"a3ViZWN0bCUyMHdhaXQlMjAtLWZvciUzRGNvbmRpdGlvbiUzREF2YWlsYWJsZSUyMC0tdGltZW91dCUzRDcwMHMlMjBkZXBsb3ltZW50JTJGdGdpLWRlcGxveW1lbnQ=",highlighted:'kubectl <span class="hljs-built_in">wait</span> --<span class="hljs-keyword">for</span>=condition=Available --<span class="hljs-built_in">timeout</span>=700s deployment/tgi-deployment',wrap:!1}}),{c(){i=o("p"),i.textContent=f,d=n(),c(T.$$.fragment),b=n(),g=o("p"),g.textContent=$,Z=n(),c(U.$$.fragment),I=n(),x=o("p"),x.textContent=z,v=n(),c(W.$$.fragment)},l(J){i=M(J,"P",{"data-svelte-h":!0}),p(i)!=="svelte-qgh43p"&&(i.textContent=f),d=a(J),u(T.$$.fragment,J),b=a(J),g=M(J,"P",{"data-svelte-h":!0}),p(g)!=="svelte-1mw72t1"&&(g.textContent=$),Z=a(J),u(U.$$.fragment,J),I=a(J),x=M(J,"P",{"data-svelte-h":!0}),p(x)!=="svelte-16v3quh"&&(x.textContent=z),v=a(J),u(W.$$.fragment,J)},m(J,w){s(J,i,w),s(J,d,w),y(T,J,w),s(J,b,w),s(J,g,w),s(J,Z,w),y(U,J,w),s(J,I,w),s(J,x,w),s(J,v,w),y(W,J,w),k=!0},p:X,i(J){k||(r(T.$$.fragment,J),r(U.$$.fragment,J),r(W.$$.fragment,J),k=!0)},o(J){m(T.$$.fragment,J),m(U.$$.fragment,J),m(W.$$.fragment,J),k=!1},d(J){J&&(l(i),l(d),l(b),l(g),l(Z),l(I),l(x),l(v)),h(T,J),h(U,J),h(W,J)}}}function Mn(C){let i,f="In the examples below <code>localhost</code> will be used, but if you did deploy TGI with the ingress, feel free to use the ingress IP as mentioned above (without specifying the port).";return{c(){i=o("p"),i.innerHTML=f},l(d){i=M(d,"P",{"data-svelte-h":!0}),p(i)!=="svelte-1cpu0bq"&&(i.innerHTML=f)},m(d,T){s(d,i,T)},p:X,d(d){d&&l(i)}}}function pn(C){let i,f='📍 Find the complete example on GitHub <a href="https://github.com/huggingface/Google-Cloud-Containers/tree/HEAD/examples/gke/tgi-llama-vision-deployment" rel="nofollow">here</a>!';return{c(){i=o("p"),i.innerHTML=f},l(d){i=M(d,"P",{"data-svelte-h":!0}),p(i)!=="svelte-g6xll0"&&(i.innerHTML=f)},m(d,T){s(d,i,T)},p:X,d(d){d&&l(i)}}}function cn(C){let i,f,d,T,b,g,$,Z='<a href="https://huggingface.co/blog/llama32" rel="nofollow">Llama 3.2</a> is the latest release of open LLMs from the Llama family released by Meta (as of October 2024); Llama 3.2 Vision comes in two sizes: 11B for efficient deployment and development on consumer-size GPU, and 90B for large-scale applications. Text Generation Inference (TGI) is a toolkit developed by Hugging Face for deploying and serving LLMs, with high performance text generation. And, Google Kubernetes Engine (GKE) is a fully-managed Kubernetes service in Google Cloud that can be used to deploy and operate containerized applications at scale using Google infrastructure.',U,I,x='This example showcases how to deploy <a href="https://huggingface.co/meta-llama/Llama-3.2-11B-Vision" rel="nofollow"><code>meta-llama/Llama-3.2-11B-Vision</code></a> on GKE via the Hugging Face purpose-built Deep Learning Container (DLC) for Text Generation Inference (TGI) on Google Cloud.',z,v,W,k,J,w,ls="First, you need to install both <code>gcloud</code> and <code>kubectl</code> in your local machine, which are the command-line tools for Google Cloud and Kubernetes, respectively, to interact with the GCP and the GKE Cluster.",jt,L,ss='<li>To install <code>gcloud</code>, follow the instructions at <a href="https://cloud.google.com/sdk/docs/install" rel="nofollow">Cloud SDK Documentation - Install the gcloud CLI</a>.</li> <li>To install <code>kubectl</code>, follow the instructions at <a href="https://kubernetes.io/docs/tasks/tools/#kubectl" rel="nofollow">Kubernetes Documentation - Install Tools</a>.</li>',bt,S,ns="Optionally, to ease the usage of the commands within this tutorial, you need to set the following environment variables for GCP:",wt,_,Ct,F,as="Then you need to login into your GCP account and set the project ID to the one you want to use for the deployment of the GKE Cluster.",It,D,$t,P,is="Once you are logged in, you need to enable the necessary service APIs in GCP, such as the Google Kubernetes Engine API, the Google Container Registry API, and the Google Container File System API, which are necessary for the deployment of the GKE Cluster and the Hugging Face DLC for TGI.",Gt,K,vt,O,os="Additionally, to use <code>kubectl</code> with the GKE Cluster credentials, you also need to install the <code>gke-gcloud-auth-plugin</code>, that can be installed with <code>gcloud</code> as follows:",Zt,ee,Wt,N,kt,te,xt,le,Ms="Once everything’s set up, you can proceed with the creation of the GKE Cluster on either Autopilot or Standard mode; for Autopilot you just need to create the cluster, and the node pools will be created based on the deployment requirements; whilst on Standard mode you will need to create the node pool yourself, and manage most of the underlying infrastructure.",Nt,se,ps="The “Autopilot” mode will be used as it is the recommended one for most of the workloads, since the underlying infrastructure is managed by Google; but alternatively, you can also use the “Standard” mode.",Bt,B,qt,ne,At,q,Vt,ae,cs='<img src="https://raw.githubusercontent.com/huggingface/Google-Cloud-Containers/HEAD/examples/gke/tgi-llama-vision-deployment/imgs/gke-cluster.png" alt="GKE Cluster in the GCP Console"/>',Qt,ie,us="Once the GKE Cluster is created, you can get the credentials to access it via <code>kubectl</code> with the following command:",Et,oe,Yt,Me,Rt,pe,ys='As <a href="https://huggingface.co/meta-llama/Llama-3.2-11B-Vision-Instruct" rel="nofollow"><code>meta-llama/Llama-3.2-11B-Vision-Instruct</code></a> is a gated model with restricted access on the European Union (EU), you need to set a Kubernetes secret with the Hugging Face Hub token via <code>kubectl</code>.',Ht,ce,rs='To generate a custom token for the Hugging Face Hub, you can follow the instructions at <a href="https://huggingface.co/docs/hub/en/security-tokens" rel="nofollow">Hugging Face Hub - User access tokens</a>; and the recommended way of setting it is to install the <code>huggingface_hub</code> Python SDK as follows:',Xt,ue,zt,ye,ms="And then login in with the generated token with read-access over the gated/private model:",Lt,re,St,me,hs="Finally, you can create the Kubernetes secret with the generated token for the Hugging Face Hub as follows using the <code>huggingface_hub</code> Python SDK to retrieve the token:",_t,he,Ft,de,ds="Or, alternatively, you can directly set the token as follows:",Dt,Je,Pt,Te,Js='<img src="https://raw.githubusercontent.com/huggingface/Google-Cloud-Containers/HEAD/examples/gke/tgi-llama-vision-deployment/imgs/gke-secrets.png" alt="GKE Secret in the GCP Console"/>',Kt,Ue,Ts='More information on how to set Kubernetes secrets in a GKE Cluster at <a href="https://cloud.google.com/secret-manager/docs/secret-manager-managed-csi-component" rel="nofollow">Secret Manager Documentation - Use Secret Manager add-on with Google Kubernetes Engine</a>.',Ot,ge,el,fe,Us='Now you can proceed to the Kubernetes deployment of the Hugging Face DLC for TGI, serving the <a href="https://huggingface.co/meta-llama/Llama-3.2-11B-Vision-Instruct" rel="nofollow"><code>meta-llama/Llama-3.2-11B-Vision-Instruct</code></a> model from the Hugging Face Hub.',tl,A,ll,je,gs='The Hugging Face DLC for TGI will be deployed via <code>kubectl</code>, from the configuration files in the <a href="https://github.com/huggingface/Google-Cloud-Containers/tree/HEAD/examples/gke/tgi-llama-vision-deployment/config/" rel="nofollow"><code>config/</code></a> directory:',sl,be,fs='<li><a href="https://github.com/huggingface/Google-Cloud-Containers/tree/HEAD/examples/gke/tgi-llama-vision-deployment/config/deployment.yaml" rel="nofollow"><code>deployment.yaml</code></a>: contains the deployment details of the pod including the reference to the Hugging Face DLC for TGI setting the <code>MODEL_ID</code> to <a href="https://huggingface.co/meta-llama/Llama-3.2-11B-Vision-Instruct" rel="nofollow"><code>meta-llama/Llama-3.2-11B-Vision-Instruct</code></a>. As the GKE Cluster was deployed in Autopilot mode, the specified resources i.e. 2 x L4s, will be automatically allocated; but if you used the Standard mode instead, you should make sure that your node pool has those GPUs available.</li> <li><a href="https://github.com/huggingface/Google-Cloud-Containers/tree/HEAD/examples/gke/tgi-llama-vision-deployment/config/service.yaml" rel="nofollow"><code>service.yaml</code></a>: contains the service details of the pod, exposing the port 8080 for the TGI service.</li> <li>(optional) <a href="https://github.com/huggingface/Google-Cloud-Containers/tree/HEAD/examples/gke/tgi-llama-vision-deployment/config/ingress.yaml" rel="nofollow"><code>ingress.yaml</code></a>: contains the ingress details of the pod, exposing the service to the external world so that it can be accessed via the ingress IP.</li>',nl,we,al,V,il,Ce,js='<img src="https://raw.githubusercontent.com/huggingface/Google-Cloud-Containers/HEAD/examples/gke/tgi-llama-vision-deployment/imgs/gke-deployment.png" alt="GKE Deployment in the GCP Console"/>',ol,Ie,Ml,$e,bs="To run the inference over the deployed TGI service, you can either:",pl,Q,Ge,Tt,ws="Port-forwarding the deployed TGI service to the port 8080, so as to access via <code>localhost</code> with the command:",Ol,ve,es,Ze,Ut,Cs="Accessing the TGI service via the external IP of the ingress, which is the default scenario here since you have defined the ingress configuration in the <code>config/ingress.yaml</code> file (but it can be skipped in favour of the port-forwarding), that can be retrieved with the following command:",ts,We,cl,ke,ul,xe,Is="To send a POST request to the TGI service using <code>cURL</code>, you can run the following command:",yl,Ne,rl,Be,$s="Or send a POST request to the ingress IP instead (without specifying the port as it’s not needed):",ml,qe,hl,Ae,Gs="Which generates the following output:",dl,Ve,Jl,Qe,Tl,Ee,vs='To run the inference using Python, you can either use the <a href="https://github.com/huggingface/huggingface_hub" rel="nofollow"><code>huggingface_hub</code> Python SDK</a> (recommended) or the <a href="https://github.com/openai/openai-python" rel="nofollow"><code>openai</code> Python SDK</a>.',Ul,E,gl,Ye,fl,Re,Zs="You can install it via <code>pip</code> as <code>pip install --upgrade --quiet huggingface_hub</code>, and then run the following snippet to mimic the <code>cURL</code> commands above i.e. sending requests to the Messages API:",jl,He,bl,Xe,Ws="Which generates the following output:",wl,ze,Cl,Le,Il,Se,ks="Additionally, you can also use the Messages API via <code>openai</code>; you can install it via <code>pip</code> as <code>pip install --upgrade openai</code>, and then run:",$l,_e,Gl,Fe,xs="Which generates the following output:",vl,De,Zl,Pe,Wl,Ke,Ns="Additionally, some potential VLM use-cases, other than image captioning as shown above, are the following:",kl,Oe,xl,et,Bs="Given an image and a question about the image, generate an answer to the question.",Nl,tt,Bl,lt,qs="For example, given a piece of art you can ask the VLM questions about it.",ql,st,As='<tbody><tr><td><img src="https://huggingface.co/datasets/huggingface/release-assets/resolve/main/rococo.jpg" alt="Rococo Painting"/></td> <td>The piece you&#39;re referring to is a painting from the Rococo era, specifically from the 18th century. The Rococo style emerged in France in the early 1700s and spread throughout Europe, particularly in Germany and Russia, during the mid-1700s.<br/><br/> <strong>Characteristics of Rococo Art:</strong><br/><br/> <ul><li><strong>Lightness and Airiness:</strong> Rococo art is characterized by its lightness and airiness, often featuring delicate lines, pastel colors, and intricate details.</li> <li><strong>Curves and Lines:</strong> Rococo artists favored curves and lines over straight lines, creating a sense of fluidity and movement in their work</li></ul></td></tr></tbody>',Al,nt,Vl,at,Vs="Given an image, retrieve information from the image.",Ql,it,El,ot,Qs="For example, given an invoice, you can ask questions to the VLM asking about information that is either present or can be inferred from the image provided.",Yl,Mt,Es=`<tbody><tr><td><img src="https://huggingface.co/datasets/huggingface/release-assets/resolve/main/invoice.png" alt="Invoice Image"/></td> <td>To calculate the time difference between the invoice date and the due date, we need to subtract the invoice date from the due date.<br/><br/>
Invoice Date: 11/02/2019<br/>
Due Date: 26/02/2019<br/><br/>
Time Difference = Due Date - Invoice Date<br/>
Time Difference = 26/02/2019 - 11/02/2019<br/>
Time Difference = 15 days<br/><br/>
Therefore, it takes <strong>15 days</strong> from the invoice date to the due date.</td></tr></tbody>`,Rl,pt,Hl,ct,Ys="Finally, once you are done using TGI on the GKE Cluster, you can safely delete the GKE Cluster to avoid incurring in unnecessary costs.",Xl,ut,zl,yt,Rs="Alternatively, you can also downscale the replicas to zero in case you want to preserve the cluster, as the GKE Cluster has been deployed on Autopilot mode i.e. node pools are created only when needed and destroyed when not needed; and by default it is just running on a single <code>e2-small</code> instance.",Ll,rt,Sl,_l,Fl,Y,Dl,mt,Pl,gt,Kl;return b=new G({props:{title:"Deploy Llama 3.2 11B Vision with TGI DLC on GKE",local:"deploy-llama-32-11b-vision-with-tgi-dlc-on-gke",headingTag:"h1"}}),v=new H({props:{warning:!0,$$slots:{default:[tn]},$$scope:{ctx:C}}}),k=new G({props:{title:"Setup / Configuration",local:"setup--configuration",headingTag:"h2"}}),_=new j({props:{code:"ZXhwb3J0JTIwUFJPSkVDVF9JRCUzRHlvdXItcHJvamVjdC1pZCUwQWV4cG9ydCUyMExPQ0FUSU9OJTNEeW91ci1sb2NhdGlvbiUwQWV4cG9ydCUyMENMVVNURVJfTkFNRSUzRHlvdXItY2x1c3Rlci1uYW1l",highlighted:`<span class="hljs-built_in">export</span> PROJECT_ID=your-project-id
<span class="hljs-built_in">export</span> LOCATION=your-location
<span class="hljs-built_in">export</span> CLUSTER_NAME=your-cluster-name`,wrap:!1}}),D=new j({props:{code:"Z2Nsb3VkJTIwYXV0aCUyMGxvZ2luJTBBZ2Nsb3VkJTIwYXV0aCUyMGFwcGxpY2F0aW9uLWRlZmF1bHQlMjBsb2dpbiUyMCUyMCUyMyUyMEZvciUyMGxvY2FsJTIwZGV2ZWxvcG1lbnQlMEFnY2xvdWQlMjBjb25maWclMjBzZXQlMjBwcm9qZWN0JTIwJTI0UFJPSkVDVF9JRA==",highlighted:`gcloud auth login
gcloud auth application-default login <span class="hljs-comment"># For local development</span>
gcloud config <span class="hljs-built_in">set</span> project <span class="hljs-variable">$PROJECT_ID</span>`,wrap:!1}}),K=new j({props:{code:"Z2Nsb3VkJTIwc2VydmljZXMlMjBlbmFibGUlMjBjb250YWluZXIuZ29vZ2xlYXBpcy5jb20lMEFnY2xvdWQlMjBzZXJ2aWNlcyUyMGVuYWJsZSUyMGNvbnRhaW5lcnJlZ2lzdHJ5Lmdvb2dsZWFwaXMuY29tJTBBZ2Nsb3VkJTIwc2VydmljZXMlMjBlbmFibGUlMjBjb250YWluZXJmaWxlc3lzdGVtLmdvb2dsZWFwaXMuY29t",highlighted:`gcloud services <span class="hljs-built_in">enable</span> container.googleapis.com
gcloud services <span class="hljs-built_in">enable</span> containerregistry.googleapis.com
gcloud services <span class="hljs-built_in">enable</span> containerfilesystem.googleapis.com`,wrap:!1}}),ee=new j({props:{code:"Z2Nsb3VkJTIwY29tcG9uZW50cyUyMGluc3RhbGwlMjBna2UtZ2Nsb3VkLWF1dGgtcGx1Z2lu",highlighted:"gcloud components install gke-gcloud-auth-plugin",wrap:!1}}),N=new H({props:{$$slots:{default:[ln]},$$scope:{ctx:C}}}),te=new G({props:{title:"Create GKE Cluster",local:"create-gke-cluster",headingTag:"h2"}}),B=new H({props:{$$slots:{default:[sn]},$$scope:{ctx:C}}}),ne=new j({props:{code:"Z2Nsb3VkJTIwY29udGFpbmVyJTIwY2x1c3RlcnMlMjBjcmVhdGUtYXV0byUyMCUyNENMVVNURVJfTkFNRSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tcHJvamVjdCUzRCUyNFBST0pFQ1RfSUQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWxvY2F0aW9uJTNEJTI0TE9DQVRJT04lMjAlNUMlMEElMjAlMjAlMjAlMjAtLXJlbGVhc2UtY2hhbm5lbCUzRHN0YWJsZSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tY2x1c3Rlci12ZXJzaW9uJTNEMS4yOSUyMCU1QyUwQSUyMCUyMCUyMCUyMC0tbm8tYXV0b3Byb3Zpc2lvbmluZy1lbmFibGUtaW5zZWN1cmUta3ViZWxldC1yZWFkb25seS1wb3J0",highlighted:`gcloud container clusters create-auto <span class="hljs-variable">$CLUSTER_NAME</span> \\
--project=<span class="hljs-variable">$PROJECT_ID</span> \\
--location=<span class="hljs-variable">$LOCATION</span> \\
--release-channel=stable \\
--cluster-version=1.29 \\
--no-autoprovisioning-enable-insecure-kubelet-readonly-port`,wrap:!1}}),q=new H({props:{$$slots:{default:[nn]},$$scope:{ctx:C}}}),oe=new j({props:{code:"Z2Nsb3VkJTIwY29udGFpbmVyJTIwY2x1c3RlcnMlMjBnZXQtY3JlZGVudGlhbHMlMjAlMjRDTFVTVEVSX05BTUUlMjAtLWxvY2F0aW9uJTNEJTI0TE9DQVRJT04=",highlighted:'gcloud container clusters get-credentials <span class="hljs-variable">$CLUSTER_NAME</span> --location=<span class="hljs-variable">$LOCATION</span>',wrap:!1}}),Me=new G({props:{title:"Get Hugging Face token and set secrets in GKE",local:"get-hugging-face-token-and-set-secrets-in-gke",headingTag:"h2"}}),ue=new j({props:{code:"cGlwJTIwaW5zdGFsbCUyMC0tdXBncmFkZSUyMC0tcXVpZXQlMjBodWdnaW5nZmFjZV9odWI=",highlighted:"pip install --upgrade --quiet huggingface_hub",wrap:!1}}),re=new j({props:{code:"aHVnZ2luZ2ZhY2UtY2xpJTIwbG9naW4=",highlighted:"huggingface-cli login",wrap:!1}}),he=new j({props:{code:"a3ViZWN0bCUyMGNyZWF0ZSUyMHNlY3JldCUyMGdlbmVyaWMlMjBoZi1zZWNyZXQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWZyb20tbGl0ZXJhbCUzRGhmX3Rva2VuJTNEJTI0KHB5dGhvbiUyMC1jJTIwJTIyZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMGdldF90b2tlbiUzQiUyMHByaW50KGdldF90b2tlbigpKSUyMiklMjAlNUMlMEElMjAlMjAlMjAlMjAtLWRyeS1ydW4lM0RjbGllbnQlMjAtbyUyMHlhbWwlMjAlN0MlMjBrdWJlY3RsJTIwYXBwbHklMjAtZiUyMC0=",highlighted:`kubectl create secret generic hf-secret \\
--from-literal=hf_token=$(python -c <span class="hljs-string">&quot;from huggingface_hub import get_token; print(get_token())&quot;</span>) \\
--dry-run=client -o yaml | kubectl apply -f -`,wrap:!1}}),Je=new j({props:{code:"a3ViZWN0bCUyMGNyZWF0ZSUyMHNlY3JldCUyMGdlbmVyaWMlMjBoZi1zZWNyZXQlMjAlNUMlMEElMjAlMjAlMjAlMjAtLWZyb20tbGl0ZXJhbCUzRGhmX3Rva2VuJTNEaGZfKioqJTIwJTVDJTBBJTIwJTIwJTIwJTIwLS1kcnktcnVuJTNEY2xpZW50JTIwLW8lMjB5YW1sJTIwJTdDJTIwa3ViZWN0bCUyMGFwcGx5JTIwLWYlMjAt",highlighted:`kubectl create secret generic hf-secret \\
--from-literal=hf_token=hf_*** \\
--dry-run=client -o yaml | kubectl apply -f -`,wrap:!1}}),ge=new G({props:{title:"Deploy TGI",local:"deploy-tgi",headingTag:"h2"}}),A=new H({props:{$$slots:{default:[an]},$$scope:{ctx:C}}}),we=new j({props:{code:"a3ViZWN0bCUyMGFwcGx5JTIwLWYlMjBjb25maWclMkY=",highlighted:"kubectl apply -f config/",wrap:!1}}),V=new H({props:{$$slots:{default:[on]},$$scope:{ctx:C}}}),Ie=new G({props:{title:"Inference with TGI",local:"inference-with-tgi",headingTag:"h2"}}),ve=new j({props:{code:"a3ViZWN0bCUyMHBvcnQtZm9yd2FyZCUyMHNlcnZpY2UlMkZ0Z2ktc2VydmljZSUyMDgwODAlM0E4MDgw",highlighted:"kubectl port-forward service/tgi-service 8080:8080",wrap:!1}}),We=new j({props:{code:"a3ViZWN0bCUyMGdldCUyMGluZ3Jlc3MlMjB0Z2ktaW5ncmVzcyUyMC1vJTIwanNvbnBhdGglM0QnJTdCLnN0YXR1cy5sb2FkQmFsYW5jZXIuaW5ncmVzcyU1QjAlNUQuaXAlN0Qn",highlighted:'kubectl get ingress tgi-ingress -o jsonpath=<span class="hljs-string">&#x27;{.status.loadBalancer.ingress[0].ip}&#x27;</span>',wrap:!1}}),ke=new G({props:{title:"Via cURL",local:"via-curl",headingTag:"h3"}}),Ne=new j({props:{code:"Y3VybCUyMGh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJTJGdjElMkZjaGF0JTJGY29tcGxldGlvbnMlMjAlNUMlMEElMjAlMjAlMjAlMjAtWCUyMFBPU1QlMjAlNUMlMEElMjAlMjAlMjAlMjAtZCUyMCclN0IlMjJtZXNzYWdlcyUyMiUzQSU1QiU3QiUyMnJvbGUlMjIlM0ElMjJ1c2VyJTIyJTJDJTIyY29udGVudCUyMiUzQSU1QiU3QiUyMnR5cGUlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIydGV4dCUyMiUzQSUyMldoYXQnJTVDJydzJTIwaW4lMjB0aGlzJTIwaW1hZ2UlM0YlMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyaW1hZ2VfdXJsJTIyJTJDJTIyaW1hZ2VfdXJsJTIyJTNBJTdCJTIydXJsJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGdHJhbnNmb3JtZXJzJTJGcmFiYml0LnBuZyUyMiU3RCU3RCU1RCU3RCU1RCUyQyUyMnRlbXBlcmF0dXJlJTIyJTNBMC43JTJDJTIydG9wX3AlMjIlM0EwLjk1JTJDJTIybWF4X3Rva2VucyUyMiUzQTEyOCUyQyUyMnN0cmVhbSUyMiUzQWZhbHNlJTdEJyUyMCU1QyUwQSUyMCUyMCUyMCUyMC1IJTIwJ0NvbnRlbnQtVHlwZSUzQSUyMGFwcGxpY2F0aW9uJTJGanNvbic=",highlighted:`curl http://localhost:8080/v1/chat/completions \\
-X POST \\
-d <span class="hljs-string">&#x27;{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;What&#x27;</span>\\<span class="hljs-string">&#x27;&#x27;</span>s <span class="hljs-keyword">in</span> this image?<span class="hljs-string">&quot;},{&quot;</span><span class="hljs-built_in">type</span><span class="hljs-string">&quot;:&quot;</span>image_url<span class="hljs-string">&quot;,&quot;</span>image_url<span class="hljs-string">&quot;:{&quot;</span>url<span class="hljs-string">&quot;:&quot;</span>https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png<span class="hljs-string">&quot;}}]}],&quot;</span>temperature<span class="hljs-string">&quot;:0.7,&quot;</span>top_p<span class="hljs-string">&quot;:0.95,&quot;</span>max_tokens<span class="hljs-string">&quot;:128,&quot;</span>stream<span class="hljs-string">&quot;:false}&#x27; \\
-H &#x27;Content-Type: application/json&#x27;</span>`,wrap:!1}}),qe=new j({props:{code:"Y3VybCUyMGh0dHAlM0ElMkYlMkYlMjQoa3ViZWN0bCUyMGdldCUyMGluZ3Jlc3MlMjB0Z2ktaW5ncmVzcyUyMC1vJTIwanNvbnBhdGglM0QnJTdCLnN0YXR1cy5sb2FkQmFsYW5jZXIuaW5ncmVzcyU1QjAlNUQuaXAlN0QnKSUyRnYxJTJGY2hhdCUyRmNvbXBsZXRpb25zJTIwJTVDJTBBJTIwJTIwJTIwJTIwLVglMjBQT1NUJTIwJTVDJTBBJTIwJTIwJTIwJTIwLWQlMjAnJTdCJTIybWVzc2FnZXMlMjIlM0ElNUIlN0IlMjJyb2xlJTIyJTNBJTIydXNlciUyMiUyQyUyMmNvbnRlbnQlMjIlM0ElNUIlN0IlMjJ0eXBlJTIyJTNBJTIydGV4dCUyMiUyQyUyMnRleHQlMjIlM0ElMjJXaGF0JyU1QycncyUyMGluJTIwdGhpcyUyMGltYWdlJTNGJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmltYWdlX3VybCUyMiUyQyUyMmltYWdlX3VybCUyMiUzQSU3QiUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRnRyYW5zZm9ybWVycyUyRnJhYmJpdC5wbmclMjIlN0QlN0QlNUQlN0QlNUQlMkMlMjJ0ZW1wZXJhdHVyZSUyMiUzQTAuNyUyQyUyMnRvcF9wJTIyJTNBMC45NSUyQyUyMm1heF90b2tlbnMlMjIlM0ExMjglMkMlMjJzdHJlYW0lMjIlM0FmYWxzZSU3RCclMjAlNUMlMEElMjAlMjAlMjAlMjAtSCUyMCdDb250ZW50LVR5cGUlM0ElMjBhcHBsaWNhdGlvbiUyRmpzb24n",highlighted:`curl http://$(kubectl get ingress tgi-ingress -o jsonpath=<span class="hljs-string">&#x27;{.status.loadBalancer.ingress[0].ip}&#x27;</span>)/v1/chat/completions \\
-X POST \\
-d <span class="hljs-string">&#x27;{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;What&#x27;</span>\\<span class="hljs-string">&#x27;&#x27;</span>s <span class="hljs-keyword">in</span> this image?<span class="hljs-string">&quot;},{&quot;</span><span class="hljs-built_in">type</span><span class="hljs-string">&quot;:&quot;</span>image_url<span class="hljs-string">&quot;,&quot;</span>image_url<span class="hljs-string">&quot;:{&quot;</span>url<span class="hljs-string">&quot;:&quot;</span>https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png<span class="hljs-string">&quot;}}]}],&quot;</span>temperature<span class="hljs-string">&quot;:0.7,&quot;</span>top_p<span class="hljs-string">&quot;:0.95,&quot;</span>max_tokens<span class="hljs-string">&quot;:128,&quot;</span>stream<span class="hljs-string">&quot;:false}&#x27; \\
-H &#x27;Content-Type: application/json&#x27;</span>`,wrap:!1}}),Ve=new j({props:{code:"JTdCJTIyb2JqZWN0JTIyJTNBJTIyY2hhdC5jb21wbGV0aW9uJTIyJTJDJTIyaWQlMjIlM0ElMjIlMjIlMkMlMjJjcmVhdGVkJTIyJTNBMTcyODA0MTE3OCUyQyUyMm1vZGVsJTIyJTNBJTIybWV0YS1sbGFtYSUyRkxsYW1hLTMuMi0xMUItVmlzaW9uLUluc3RydWN0JTIyJTJDJTIyc3lzdGVtX2ZpbmdlcnByaW50JTIyJTNBJTIyMi4zLjEtbmF0aXZlJTIyJTJDJTIyY2hvaWNlcyUyMiUzQSU1QiU3QiUyMmluZGV4JTIyJTNBMCUyQyUyMm1lc3NhZ2UlMjIlM0ElN0IlMjJyb2xlJTIyJTNBJTIyYXNzaXN0YW50JTIyJTJDJTIyY29udGVudCUyMiUzQSUyMlRoZSUyMGltYWdlJTIwc2hvd3MlMjBhJTIwcmFiYml0JTIwd2VhcmluZyUyMGElMjBzcGFjZSUyMHN1aXQlMkMlMjBzdGFuZGluZyUyMG9uJTIwYSUyMHJvY2t5JTJDJTIwb3JhbmdlLWNvbG9yZWQlMjBzdXJmYWNlLiUyMFRoZSUyMGJhY2tncm91bmQlMjBpcyUyMGElMjByZWRkaXNoLWJyb3duJTIwY29sb3IlMjB3aXRoJTIwYSUyMGJyaWdodCUyMGxpZ2h0JTIwc2hpbmluZyUyMGZyb20lMjB0aGUlMjByaWdodCUyMHNpZGUlMjBvZiUyMHRoZSUyMGltYWdlLiUyMiU3RCUyQyUyMmxvZ3Byb2JzJTIyJTNBbnVsbCUyQyUyMmZpbmlzaF9yZWFzb24lMjIlM0ElMjJzdG9wJTIyJTdEJTVEJTJDJTIydXNhZ2UlMjIlM0ElN0IlMjJwcm9tcHRfdG9rZW5zJTIyJTNBNDMlMkMlMjJjb21wbGV0aW9uX3Rva2VucyUyMiUzQTQyJTJDJTIydG90YWxfdG9rZW5zJTIyJTNBODUlN0QlN0Q=",highlighted:'{<span class="hljs-comment">&quot;object&quot;</span>:<span class="hljs-comment">&quot;chat.completion&quot;</span>,<span class="hljs-comment">&quot;id&quot;</span>:<span class="hljs-comment">&quot;&quot;</span>,<span class="hljs-comment">&quot;created&quot;</span>:<span class="hljs-number">1728041178</span>,<span class="hljs-comment">&quot;model&quot;</span>:<span class="hljs-comment">&quot;meta-llama/Llama-3.2-11B-Vision-Instruct&quot;</span>,<span class="hljs-comment">&quot;system_fingerprint&quot;</span>:<span class="hljs-comment">&quot;2.3.1-native&quot;</span>,<span class="hljs-comment">&quot;choices&quot;</span>:[{<span class="hljs-comment">&quot;index&quot;</span>:<span class="hljs-number">0</span>,<span class="hljs-comment">&quot;message&quot;</span>:{<span class="hljs-comment">&quot;role&quot;</span>:<span class="hljs-comment">&quot;assistant&quot;</span>,<span class="hljs-comment">&quot;content&quot;</span>:<span class="hljs-comment">&quot;The image shows a rabbit wearing a space suit, standing on a rocky, orange-colored surface. The background is a reddish-brown color with a bright light shining from the right side of the image.&quot;</span>},<span class="hljs-comment">&quot;logprobs&quot;</span>:null,<span class="hljs-comment">&quot;finish_reason&quot;</span>:<span class="hljs-comment">&quot;stop&quot;</span>}],<span class="hljs-comment">&quot;usage&quot;</span>:{<span class="hljs-comment">&quot;prompt_tokens&quot;</span>:<span class="hljs-number">43</span>,<span class="hljs-comment">&quot;completion_tokens&quot;</span>:<span class="hljs-number">42</span>,<span class="hljs-comment">&quot;total_tokens&quot;</span>:<span class="hljs-number">85</span>}}',wrap:!1}}),Qe=new G({props:{title:"Via Python",local:"via-python",headingTag:"h3"}}),E=new H({props:{$$slots:{default:[Mn]},$$scope:{ctx:C}}}),Ye=new G({props:{title:"huggingface_hub",local:"huggingfacehub",headingTag:"h4"}}),He=new j({props:{code:"ZnJvbSUyMGh1Z2dpbmdmYWNlX2h1YiUyMGltcG9ydCUyMEluZmVyZW5jZUNsaWVudCUwQSUwQWNsaWVudCUyMCUzRCUyMEluZmVyZW5jZUNsaWVudChiYXNlX3VybCUzRCUyMmh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJTIyJTJDJTIwYXBpX2tleSUzRCUyMi0lMjIpJTBBJTBBY2hhdF9jb21wbGV0aW9uJTIwJTNEJTIwY2xpZW50LmNoYXQuY29tcGxldGlvbnMuY3JlYXRlKCUwQSUyMCUyMCUyMCUyMG1lc3NhZ2VzJTNEJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjb250ZW50JTIyJTNBJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTIydHlwZSUyMiUzQSUyMCUyMnRleHQlMjIlMkMlMjAlMjJ0ZXh0JTIyJTNBJTIwJTIyV2hhdCdzJTIwaW4lMjB0aGlzJTIwaW1hZ2UlM0YlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJ0eXBlJTIyJTNBJTIwJTIyaW1hZ2VfdXJsJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyaW1hZ2VfdXJsJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydXJsJTIyJTNBJTIwJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZkb2N1bWVudGF0aW9uLWltYWdlcyUyRnJlc29sdmUlMkZtYWluJTJGdHJhbnNmb3JtZXJzJTJGcmFiYml0LnBuZyUyMiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU1RCUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyQyUwQSUyMCUyMCUyMCUyMCU1RCUyQyUwQSUyMCUyMCUyMCUyMG1heF90b2tlbnMlM0QxMjglMkMlMEEp",highlighted:`<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> InferenceClient
client = InferenceClient(base_url=<span class="hljs-string">&quot;http://localhost:8080&quot;</span>, api_key=<span class="hljs-string">&quot;-&quot;</span>)
chat_completion = client.chat.completions.create(
messages=[
{
<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>,
<span class="hljs-string">&quot;content&quot;</span>: [
{<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;text&quot;</span>, <span class="hljs-string">&quot;text&quot;</span>: <span class="hljs-string">&quot;What&#x27;s in this image?&quot;</span>},
{
<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;image_url&quot;</span>,
<span class="hljs-string">&quot;image_url&quot;</span>: {
<span class="hljs-string">&quot;url&quot;</span>: <span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png&quot;</span>
},
},
],
},
],
max_tokens=<span class="hljs-number">128</span>,
)`,wrap:!1}}),ze=new j({props:{code:"Q2hhdENvbXBsZXRpb25PdXRwdXQoY2hvaWNlcyUzRCU1QkNoYXRDb21wbGV0aW9uT3V0cHV0Q29tcGxldGUoZmluaXNoX3JlYXNvbiUzRCdsZW5ndGgnJTJDJTIwaW5kZXglM0QwJTJDJTIwbWVzc2FnZSUzRENoYXRDb21wbGV0aW9uT3V0cHV0TWVzc2FnZShyb2xlJTNEJ2Fzc2lzdGFudCclMkMlMjBjb250ZW50JTNEJTIyVGhlJTIwaW1hZ2UlMjBkZXBpY3RzJTIwYW4lMjBhc3Ryb25hdXQlMjByYWJiaXQlMjBzdGFuZGluZyUyMG9uJTIwYSUyMHJvY2t5JTIwc3VyZmFjZSUyQyUyMHdoaWNoJTIwaXMlMjBsaWtlbHklMjBNYXJzJTIwb3IlMjBhJTIwc2ltaWxhciUyMHBsYW5ldC4lMjBUaGUlMjBhc3Ryb25hdXQncyUyMHN1aXQlMjB0YWtlcyUyMHVwJTIwbW9zdCUyMG9mJTIwdGhlJTIwc2hvdCUyQyUyMHdpdGglMjBhJTIwY2xlYXIlMjBkaXN0aW5jdGlvbiUyMGJldHdlZW4lMjBpdHMlMjBsaWdodGVyJTIwcGFydHMlMkMlMjBzdWNoJTIwYXMlMjB0aGUlMjBjaGVzdCUyMGFuZCUyMGxpbWJzJTJDJTIwYW5kJTIwaXRzJTIwZGFya2VyJTIwcGFydHMlMkMlMjBsaWtlJTIwdGhlJTIwc2hlbGwlMjB0aGF0JTIwcHJvdGVjdHMlMjBpdCUyMGZyb20lMjBzcGFjZSdzJTIwdG94aWMlMjBlbnZpcm9ubWVudC4lMjBUaGUlMjBoZWFkJTIwcG9ydGlvbiUyMGNvbnNpc3RzJTIwb2YlMjB0aGUlMjBmdWxsLWxlbmd0aCUyMGhlbG1ldCUyMHRoYXQncyUyMHRyYW5zcGFyZW50JTIwYXQlMjB0aGUlMjBmcm9udCUyQyUyMGFsbG93aW5nJTIwdGhlJTIwcmFiYml0J3MlMjBmYWNlJTIwdG8lMjBiZSUyMHZpc2libGUuJTIwJTVDbiU1Q25UaGUlMjBhc3Ryb25hdXQlMjByYWJiaXQlMjBzdGFuZHMlMjB2ZXJ0aWNhbGx5JTJDJTIwbG9va2luZyUyMGludG8lMjB0aGUlMjBkaXN0YW5jZSUyQyUyMGl0cyUyMGhlYWQlMjBzbGlnaHRseSUyMHBvaW50ZWQlMjBmb3J3YXJkJTIwYW5kJTIwcG9pbnRpbmclMjB3aXRoJTIwaXRzJTIwcmlnaHQlMjBhcm0lMjBkb3duLiUyMEl0cyUyMGxlZnQlMjBhcm0lMjBoYW5ncyUyMGF0JTIwaXRzJTIwc2lkZSUyQyUyMGFkZGluZyUyMGJhbGFuY2UlMjB0byUyMGl0cyUyMHN0YW5jZSUyMiUyQyUyMHRvb2xfY2FsbHMlM0ROb25lKSUyQyUyMGxvZ3Byb2JzJTNETm9uZSklNUQlMkMlMjBjcmVhdGVkJTNEMTcyODA0MTI0NyUyQyUyMGlkJTNEJyclMkMlMjBtb2RlbCUzRCdtZXRhLWxsYW1hJTJGTGxhbWEtMy4yLTExQi1WaXNpb24tSW5zdHJ1Y3QnJTJDJTIwc3lzdGVtX2ZpbmdlcnByaW50JTNEJzIuMy4xLW5hdGl2ZSclMkMlMjB1c2FnZSUzRENoYXRDb21wbGV0aW9uT3V0cHV0VXNhZ2UoY29tcGxldGlvbl90b2tlbnMlM0QxMjglMkMlMjBwcm9tcHRfdG9rZW5zJTNENDMlMkMlMjB0b3RhbF90b2tlbnMlM0QxNzEpKQ==",highlighted:'ChatCompletionOutput(choices=[ChatCompletionOutputComplete(<span class="hljs-attribute">finish_reason</span>=<span class="hljs-string">&#x27;length&#x27;</span>, <span class="hljs-attribute">index</span>=0, <span class="hljs-attribute">message</span>=ChatCompletionOutputMessage(role=&#x27;assistant&#x27;, <span class="hljs-attribute">content</span>=<span class="hljs-string">&quot;The image depicts an astronaut rabbit standing on a rocky surface, which is likely Mars or a similar planet. The astronaut&#x27;s suit takes up most of the shot, with a clear distinction between its lighter parts, such as the chest and limbs, and its darker parts, like the shell that protects it from space&#x27;s toxic environment. The head portion consists of the full-length helmet that&#x27;s transparent at the front, allowing the rabbit&#x27;s face to be visible. \\n\\nThe astronaut rabbit stands vertically, looking into the distance, its head slightly pointed forward and pointing with its right arm down. Its left arm hangs at its side, adding balance to its stance&quot;</span>, <span class="hljs-attribute">tool_calls</span>=None), <span class="hljs-attribute">logprobs</span>=None)], <span class="hljs-attribute">created</span>=1728041247, <span class="hljs-attribute">id</span>=<span class="hljs-string">&#x27;&#x27;</span>, <span class="hljs-attribute">model</span>=<span class="hljs-string">&#x27;meta-llama/Llama-3.2-11B-Vision-Instruct&#x27;</span>, <span class="hljs-attribute">system_fingerprint</span>=<span class="hljs-string">&#x27;2.3.1-native&#x27;</span>, <span class="hljs-attribute">usage</span>=ChatCompletionOutputUsage(completion_tokens=128, <span class="hljs-attribute">prompt_tokens</span>=43, <span class="hljs-attribute">total_tokens</span>=171))',wrap:!1}}),Le=new G({props:{title:"openai",local:"openai",headingTag:"h4"}}),_e=new j({props:{code:"ZnJvbSUyMG9wZW5haSUyMGltcG9ydCUyME9wZW5BSSUwQSUwQWNsaWVudCUyMCUzRCUyME9wZW5BSSglMEElMjAlMjAlMjAlMjBiYXNlX3VybCUzRCUyMmh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJTJGdjElMkYlMjIlMkMlMEElMjAlMjAlMjAlMjBhcGlfa2V5JTNEJTIyLSUyMiUyQyUwQSklMEElMEFjaGF0X2NvbXBsZXRpb24lMjAlM0QlMjBjbGllbnQuY2hhdC5jb21wbGV0aW9ucy5jcmVhdGUoJTBBJTIwJTIwJTIwJTIwbW9kZWwlM0QlMjJ0Z2klMjIlMkMlMEElMjAlMjAlMjAlMjBtZXNzYWdlcyUzRCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIyY29udGVudCUyMiUzQSUyMCU1QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3QiUyMnR5cGUlMjIlM0ElMjAlMjJ0ZXh0JTIyJTJDJTIwJTIydGV4dCUyMiUzQSUyMCUyMldoYXQncyUyMGluJTIwdGhpcyUyMGltYWdlJTNGJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydHlwZSUyMiUzQSUyMCUyMmltYWdlX3VybCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmltYWdlX3VybCUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMnVybCUyMiUzQSUyMCUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGZG9jdW1lbnRhdGlvbi1pbWFnZXMlMkZyZXNvbHZlJTJGbWFpbiUyRnRyYW5zZm9ybWVycyUyRnJhYmJpdC5wbmclMjIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMkMlMEElMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjBtYXhfdG9rZW5zJTNEMTI4JTJDJTBBKQ==",highlighted:`<span class="hljs-keyword">from</span> openai <span class="hljs-keyword">import</span> OpenAI
client = OpenAI(
base_url=<span class="hljs-string">&quot;http://localhost:8080/v1/&quot;</span>,
api_key=<span class="hljs-string">&quot;-&quot;</span>,
)
chat_completion = client.chat.completions.create(
model=<span class="hljs-string">&quot;tgi&quot;</span>,
messages=[
{
<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>,
<span class="hljs-string">&quot;content&quot;</span>: [
{<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;text&quot;</span>, <span class="hljs-string">&quot;text&quot;</span>: <span class="hljs-string">&quot;What&#x27;s in this image?&quot;</span>},
{
<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;image_url&quot;</span>,
<span class="hljs-string">&quot;image_url&quot;</span>: {
<span class="hljs-string">&quot;url&quot;</span>: <span class="hljs-string">&quot;https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/rabbit.png&quot;</span>
},
},
],
},
],
max_tokens=<span class="hljs-number">128</span>,
)`,wrap:!1}}),De=new j({props:{code:"Q2hhdENvbXBsZXRpb24oaWQlM0QnJyUyQyUyMGNob2ljZXMlM0QlNUJDaG9pY2UoZmluaXNoX3JlYXNvbiUzRCdsZW5ndGgnJTJDJTIwaW5kZXglM0QwJTJDJTIwbG9ncHJvYnMlM0ROb25lJTJDJTIwbWVzc2FnZSUzRENoYXRDb21wbGV0aW9uTWVzc2FnZShjb250ZW50JTNEJ1RoZSUyMGltYWdlJTIwZmVhdHVyZXMlMjBhbiUyMGFzdHJvbmF1dCUyMHJhYmJpdCUyMG9uJTIwdGhlJTIwc3VyZmFjZSUyMG9mJTIwTWFycy4lMjBHaXZlbiUyMHRoYXQlMjByYWJiaXRzJTIwKE9yeWN0b2xhZ3VzJTIwY3VuaWN1bHVzKSUyMGFyZSUyMG1hbW1hbHMlMkMlMjB0ZW1wZXJhdHVyZSUyMHJlZ3VsYXRpb24lMkMlMjBncmF2aXR5JTJDJTIwYW5kJTIwcmFkaWF0aW9uJTIwZXhwb3N1cmUlMjBhcmUlMjBhbGwlMjBwb3RlbnRpYWwlMjBoYXphcmRzJTIwaW4lMjBhbiUyMGV4dHJhdGVycmVzdHJpYWwlMjBzcGFjZSUyMHN1aXQlMjBkZXNpZ25lZCUyMGZvciUyMGElMjByYWJiaXQuJTIwQXMlMjBvcHRpbWFsJTIwc3BhY2UlMjBleHBsb3JhdGlvbiUyMHdlYXIlMjBpcyUyMGh1bWFuLWNlbnRyaWMlMkMlMjBpdCUyMGlzJTIwY2hhbGxlbmdpbmclMjB0byUyMHRyYW5zcG9zZSUyMGElMjBoeXBvdGhldGljYWwlMjByYWJiaXQlMjBhc3Ryb25hdXQlMjBzdWl0JTIwdG8lMjBhZGFwdCUyMHRvJTIwdGhlJTIwc3BlY2lhbGl6ZWQlMjBuZWVkcyUyMG9mJTIwcmFiYml0cy4lNUNuJTVDbioqQWRhcHRhdGlvbnMlMjB0byUyMFN1aXQlMjBSYWJiaXQlMjBQaHlzaW9sb2d5KiolNUNuJTVDblRvJTIwc2ltdWxhdGUlMjBhJTIwbm9ybWFsaXplZCUyMHRlbXBlcmF0dXJlJTIwY2hhbmdlJTJDJTIwYSUyMGNvb2xpbmclMjBzeXN0ZW0lMjBkZXNpZ25lZCUyMGZvciUyMHRoZXJtYWwlMjBjb21mb3J0JTIwY291bGQlMjBiZSUyMHVzZWQuJTIwVGhpcyUyMHN5c3RlbSUyMG1pZ2h0JTIwaW52b2x2ZSUyMGElMjB3YXRlci1iYXNlZCUyMGNvb2xpbmclMjBtZWNoYW5pc20lMkMlMjBzaW1pbGFyJTIwdG8lMjBhJTIwcGFudHklMjBob3NlJTIwb3IlMjBzdWl0JTIwbGluZXIlMjBmaWxsZWQlMjB3aXRoJyUyQyUyMHJlZnVzYWwlM0ROb25lJTJDJTIwcm9sZSUzRCdhc3Npc3RhbnQnJTJDJTIwZnVuY3Rpb25fY2FsbCUzRE5vbmUlMkMlMjB0b29sX2NhbGxzJTNETm9uZSkpJTVEJTJDJTIwY3JlYXRlZCUzRDE3MjgwNDEyODElMkMlMjBtb2RlbCUzRCdtZXRhLWxsYW1hJTJGTGxhbWEtMy4yLTExQi1WaXNpb24tSW5zdHJ1Y3QnJTJDJTIwb2JqZWN0JTNEJ2NoYXQuY29tcGxldGlvbiclMkMlMjBzZXJ2aWNlX3RpZXIlM0ROb25lJTJDJTIwc3lzdGVtX2ZpbmdlcnByaW50JTNEJzIuMy4xLW5hdGl2ZSclMkMlMjB1c2FnZSUzRENvbXBsZXRpb25Vc2FnZShjb21wbGV0aW9uX3Rva2VucyUzRDEyOCUyQyUyMHByb21wdF90b2tlbnMlM0Q0MyUyQyUyMHRvdGFsX3Rva2VucyUzRDE3MSkp",highlighted:'<span class="hljs-constructor">ChatCompletion(<span class="hljs-params">id</span>=&#x27;&#x27;, <span class="hljs-params">choices</span>=[Choice(<span class="hljs-params">finish_reason</span>=&#x27;<span class="hljs-params">length</span>&#x27;, <span class="hljs-params">index</span>=0, <span class="hljs-params">logprobs</span>=None, <span class="hljs-params">message</span>=ChatCompletionMessage(<span class="hljs-params">content</span>=&#x27;The <span class="hljs-params">image</span> <span class="hljs-params">features</span> <span class="hljs-params">an</span> <span class="hljs-params">astronaut</span> <span class="hljs-params">rabbit</span> <span class="hljs-params">on</span> <span class="hljs-params">the</span> <span class="hljs-params">surface</span> <span class="hljs-params">of</span> Mars. Given <span class="hljs-params">that</span> <span class="hljs-params">rabbits</span> (Oryctolagus <span class="hljs-params">cuniculus</span>)</span> are mammals, temperature regulation, gravity, <span class="hljs-keyword">and</span> radiation exposure are all potential hazards <span class="hljs-keyword">in</span> an extraterrestrial space suit designed <span class="hljs-keyword">for</span> a rabbit. As optimal space exploration wear is human-centric, it is challenging <span class="hljs-keyword">to</span> transpose a hypothetical rabbit astronaut suit <span class="hljs-keyword">to</span> adapt <span class="hljs-keyword">to</span> the specialized needs <span class="hljs-keyword">of</span> rabbits.\\n\\n**Adaptations <span class="hljs-keyword">to</span> Suit Rabbit Physiology**\\n\\nTo simulate a normalized temperature change, a cooling system designed <span class="hljs-keyword">for</span> thermal comfort could be used. This system might involve a water-based cooling mechanism, similar <span class="hljs-keyword">to</span> a panty hose <span class="hljs-keyword">or</span> suit liner filled <span class="hljs-keyword">with</span>&#x27;, refusal=None, role=&#x27;assistant&#x27;, function_call=None, tool_calls=None))], created=<span class="hljs-number">1728041281</span>, model=&#x27;meta-llama/Llama-<span class="hljs-number">3.2</span>-<span class="hljs-number">11</span>B-Vision-Instruct&#x27;, <span class="hljs-keyword">object</span>=&#x27;chat.completion&#x27;, service_tier=None, system_fingerprint=&#x27;<span class="hljs-number">2.3</span>.<span class="hljs-number">1</span>-native&#x27;, usage=<span class="hljs-constructor">CompletionUsage(<span class="hljs-params">completion_tokens</span>=128, <span class="hljs-params">prompt_tokens</span>=43, <span class="hljs-params">total_tokens</span>=171)</span>)',wrap:!1}}),Pe=new G({props:{title:"Other use-cases",local:"other-use-cases",headingTag:"h2"}}),Oe=new G({props:{title:"Visual Question Answering (VQA)",local:"visual-question-answering-vqa",headingTag:"h3"}}),tt=new j({props:{code:"Y3VybCUyMGh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJTJGdjElMkZjaGF0JTJGY29tcGxldGlvbnMlMjAlNUMlMEElMjAlMjAlMjAlMjAtWCUyMFBPU1QlMjAlNUMlMEElMjAlMjAlMjAlMjAtZCUyMCclN0IlMjJtZXNzYWdlcyUyMiUzQSU1QiU3QiUyMnJvbGUlMjIlM0ElMjJ1c2VyJTIyJTJDJTIyY29udGVudCUyMiUzQSU1QiU3QiUyMnR5cGUlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIydGV4dCUyMiUzQSUyMldoaWNoJTIwZXJhJTIwZG9lcyUyMHRoaXMlMjBwaWVjZSUyMGJlbG9uZyUyMHRvJTNGJTIwR2l2ZSUyMGRldGFpbHMlMjBhYm91dCUyMHRoZSUyMGVyYS4lMjIlN0QlMkMlN0IlMjJ0eXBlJTIyJTNBJTIyaW1hZ2VfdXJsJTIyJTJDJTIyaW1hZ2VfdXJsJTIyJTNBJTdCJTIydXJsJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZodWdnaW5nZmFjZS5jbyUyRmRhdGFzZXRzJTJGaHVnZ2luZ2ZhY2UlMkZyZWxlYXNlLWFzc2V0cyUyRnJlc29sdmUlMkZtYWluJTJGcm9jb2NvLmpwZyUyMiU3RCU3RCU1RCU3RCU1RCUyQyUyMnRlbXBlcmF0dXJlJTIyJTNBMC43JTJDJTIydG9wX3AlMjIlM0EwLjk1JTJDJTIybWF4X3Rva2VucyUyMiUzQTEyOCUyQyUyMnN0cmVhbSUyMiUzQWZhbHNlJTdEJyUyMCU1QyUwQSUyMCUyMCUyMCUyMC1IJTIwJ0NvbnRlbnQtVHlwZSUzQSUyMGFwcGxpY2F0aW9uJTJGanNvbic=",highlighted:`curl http://localhost:8080/v1/chat/completions \\
-X POST \\
-d <span class="hljs-string">&#x27;{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;Which era does this piece belong to? Give details about the era.&quot;},{&quot;type&quot;:&quot;image_url&quot;,&quot;image_url&quot;:{&quot;url&quot;:&quot;https://huggingface.co/datasets/huggingface/release-assets/resolve/main/rococo.jpg&quot;}}]}],&quot;temperature&quot;:0.7,&quot;top_p&quot;:0.95,&quot;max_tokens&quot;:128,&quot;stream&quot;:false}&#x27;</span> \\
-H <span class="hljs-string">&#x27;Content-Type: application/json&#x27;</span>`,wrap:!1}}),nt=new G({props:{title:"Image Information Retrieval",local:"image-information-retrieval",headingTag:"h3"}}),it=new j({props:{code:"Y3VybCUyMGh0dHAlM0ElMkYlMkZsb2NhbGhvc3QlM0E4MDgwJTJGdjElMkZjaGF0JTJGY29tcGxldGlvbnMlMjAlNUMlMEElMjAlMjAlMjAlMjAtWCUyMFBPU1QlMjAlNUMlMEElMjAlMjAlMjAlMjAtZCUyMCclN0IlMjJtZXNzYWdlcyUyMiUzQSU1QiU3QiUyMnJvbGUlMjIlM0ElMjJ1c2VyJTIyJTJDJTIyY29udGVudCUyMiUzQSU1QiU3QiUyMnR5cGUlMjIlM0ElMjJ0ZXh0JTIyJTJDJTIydGV4dCUyMiUzQSUyMkhvdyUyMGxvbmclMjBkb2VzJTIwaXQlMjB0YWtlJTIwZnJvbSUyMGludm9pY2UlMjBkYXRlJTIwdG8lMjBkdWUlMjBkYXRlJTNGJTIwQmUlMjBzaG9ydCUyMGFuZCUyMGNvbmNpc2UuJTIyJTdEJTJDJTdCJTIydHlwZSUyMiUzQSUyMmltYWdlX3VybCUyMiUyQyUyMmltYWdlX3VybCUyMiUzQSU3QiUyMnVybCUyMiUzQSUyMmh0dHBzJTNBJTJGJTJGaHVnZ2luZ2ZhY2UuY28lMkZkYXRhc2V0cyUyRmh1Z2dpbmdmYWNlJTJGcmVsZWFzZS1hc3NldHMlMkZyZXNvbHZlJTJGbWFpbiUyRmludm9pY2UucG5nJTIyJTdEJTdEJTVEJTdEJTVEJTJDJTIydGVtcGVyYXR1cmUlMjIlM0EwLjclMkMlMjJ0b3BfcCUyMiUzQTAuOTUlMkMlMjJtYXhfdG9rZW5zJTIyJTNBMTI4JTJDJTIyc3RyZWFtJTIyJTNBZmFsc2UlN0QnJTIwJTVDJTBBJTIwJTIwJTIwJTIwLUglMjAnQ29udGVudC1UeXBlJTNBJTIwYXBwbGljYXRpb24lMkZqc29uJw==",highlighted:`curl http://localhost:8080/v1/chat/completions \\
-X POST \\
-d <span class="hljs-string">&#x27;{&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;How long does it take from invoice date to due date? Be short and concise.&quot;},{&quot;type&quot;:&quot;image_url&quot;,&quot;image_url&quot;:{&quot;url&quot;:&quot;https://huggingface.co/datasets/huggingface/release-assets/resolve/main/invoice.png&quot;}}]}],&quot;temperature&quot;:0.7,&quot;top_p&quot;:0.95,&quot;max_tokens&quot;:128,&quot;stream&quot;:false}&#x27;</span> \\
-H <span class="hljs-string">&#x27;Content-Type: application/json&#x27;</span>`,wrap:!1}}),pt=new G({props:{title:"Delete GKE Cluster",local:"delete-gke-cluster",headingTag:"h2"}}),ut=new j({props:{code:"Z2Nsb3VkJTIwY29udGFpbmVyJTIwY2x1c3RlcnMlMjBkZWxldGUlMjAlMjRDTFVTVEVSX05BTUUlMjAtLWxvY2F0aW9uJTNEJTI0TE9DQVRJT04=",highlighted:'gcloud container clusters delete <span class="hljs-variable">$CLUSTER_NAME</span> --location=<span class="hljs-variable">$LOCATION</span>',wrap:!1}}),rt=new j({props:{code:"a3ViZWN0bCUyMHNjYWxlJTIwLS1yZXBsaWNhcyUzRDAlMjBkZXBsb3ltZW50JTJGdGdpLWRlcGxveW1lbnQ=",highlighted:"kubectl scale --replicas=0 deployment/tgi-deployment",wrap:!1}}),Y=new H({props:{$$slots:{default:[pn]},$$scope:{ctx:C}}}),mt=new en({props:{source:"https://github.com/huggingface/Google-Cloud-Containers/blob/main/docs/source/examples/gke-tgi-llama-vision-deployment.mdx"}}),{c(){i=o("meta"),f=n(),d=o("p"),T=n(),c(b.$$.fragment),g=n(),$=o("p"),$.innerHTML=Z,U=n(),I=o("p"),I.innerHTML=x,z=n(),c(v.$$.fragment),W=n(),c(k.$$.fragment),J=n(),w=o("p"),w.innerHTML=ls,jt=n(),L=o("ul"),L.innerHTML=ss,bt=n(),S=o("p"),S.textContent=ns,wt=n(),c(_.$$.fragment),Ct=n(),F=o("p"),F.textContent=as,It=n(),c(D.$$.fragment),$t=n(),P=o("p"),P.textContent=is,Gt=n(),c(K.$$.fragment),vt=n(),O=o("p"),O.innerHTML=os,Zt=n(),c(ee.$$.fragment),Wt=n(),c(N.$$.fragment),kt=n(),c(te.$$.fragment),xt=n(),le=o("p"),le.textContent=Ms,Nt=n(),se=o("p"),se.textContent=ps,Bt=n(),c(B.$$.fragment),qt=n(),c(ne.$$.fragment),At=n(),c(q.$$.fragment),Vt=n(),ae=o("p"),ae.innerHTML=cs,Qt=n(),ie=o("p"),ie.innerHTML=us,Et=n(),c(oe.$$.fragment),Yt=n(),c(Me.$$.fragment),Rt=n(),pe=o("p"),pe.innerHTML=ys,Ht=n(),ce=o("p"),ce.innerHTML=rs,Xt=n(),c(ue.$$.fragment),zt=n(),ye=o("p"),ye.textContent=ms,Lt=n(),c(re.$$.fragment),St=n(),me=o("p"),me.innerHTML=hs,_t=n(),c(he.$$.fragment),Ft=n(),de=o("p"),de.textContent=ds,Dt=n(),c(Je.$$.fragment),Pt=n(),Te=o("p"),Te.innerHTML=Js,Kt=n(),Ue=o("p"),Ue.innerHTML=Ts,Ot=n(),c(ge.$$.fragment),el=n(),fe=o("p"),fe.innerHTML=Us,tl=n(),c(A.$$.fragment),ll=n(),je=o("p"),je.innerHTML=gs,sl=n(),be=o("ul"),be.innerHTML=fs,nl=n(),c(we.$$.fragment),al=n(),c(V.$$.fragment),il=n(),Ce=o("p"),Ce.innerHTML=js,ol=n(),c(Ie.$$.fragment),Ml=n(),$e=o("p"),$e.textContent=bs,pl=n(),Q=o("ul"),Ge=o("li"),Tt=o("p"),Tt.innerHTML=ws,Ol=n(),c(ve.$$.fragment),es=n(),Ze=o("li"),Ut=o("p"),Ut.innerHTML=Cs,ts=n(),c(We.$$.fragment),cl=n(),c(ke.$$.fragment),ul=n(),xe=o("p"),xe.innerHTML=Is,yl=n(),c(Ne.$$.fragment),rl=n(),Be=o("p"),Be.textContent=$s,ml=n(),c(qe.$$.fragment),hl=n(),Ae=o("p"),Ae.textContent=Gs,dl=n(),c(Ve.$$.fragment),Jl=n(),c(Qe.$$.fragment),Tl=n(),Ee=o("p"),Ee.innerHTML=vs,Ul=n(),c(E.$$.fragment),gl=n(),c(Ye.$$.fragment),fl=n(),Re=o("p"),Re.innerHTML=Zs,jl=n(),c(He.$$.fragment),bl=n(),Xe=o("p"),Xe.textContent=Ws,wl=n(),c(ze.$$.fragment),Cl=n(),c(Le.$$.fragment),Il=n(),Se=o("p"),Se.innerHTML=ks,$l=n(),c(_e.$$.fragment),Gl=n(),Fe=o("p"),Fe.textContent=xs,vl=n(),c(De.$$.fragment),Zl=n(),c(Pe.$$.fragment),Wl=n(),Ke=o("p"),Ke.textContent=Ns,kl=n(),c(Oe.$$.fragment),xl=n(),et=o("p"),et.textContent=Bs,Nl=n(),c(tt.$$.fragment),Bl=n(),lt=o("p"),lt.textContent=qs,ql=n(),st=o("table"),st.innerHTML=As,Al=n(),c(nt.$$.fragment),Vl=n(),at=o("p"),at.textContent=Vs,Ql=n(),c(it.$$.fragment),El=n(),ot=o("p"),ot.textContent=Qs,Yl=n(),Mt=o("table"),Mt.innerHTML=Es,Rl=n(),c(pt.$$.fragment),Hl=n(),ct=o("p"),ct.textContent=Ys,Xl=n(),c(ut.$$.fragment),zl=n(),yt=o("p"),yt.innerHTML=Rs,Ll=n(),c(rt.$$.fragment),Sl=n(),_l=o("hr"),Fl=n(),c(Y.$$.fragment),Dl=n(),c(mt.$$.fragment),Pl=n(),gt=o("p"),this.h()},l(e){const t=Os("svelte-u9bgzb",document.head);i=M(t,"META",{name:!0,content:!0}),t.forEach(l),f=a(e),d=M(e,"P",{}),ft(d).forEach(l),T=a(e),u(b.$$.fragment,e),g=a(e),$=M(e,"P",{"data-svelte-h":!0}),p($)!=="svelte-toi10f"&&($.innerHTML=Z),U=a(e),I=M(e,"P",{"data-svelte-h":!0}),p(I)!=="svelte-1n12moo"&&(I.innerHTML=x),z=a(e),u(v.$$.fragment,e),W=a(e),u(k.$$.fragment,e),J=a(e),w=M(e,"P",{"data-svelte-h":!0}),p(w)!=="svelte-1qnmo38"&&(w.innerHTML=ls),jt=a(e),L=M(e,"UL",{"data-svelte-h":!0}),p(L)!=="svelte-a8ymuw"&&(L.innerHTML=ss),bt=a(e),S=M(e,"P",{"data-svelte-h":!0}),p(S)!=="svelte-1i8n6rq"&&(S.textContent=ns),wt=a(e),u(_.$$.fragment,e),Ct=a(e),F=M(e,"P",{"data-svelte-h":!0}),p(F)!=="svelte-1g39t6p"&&(F.textContent=as),It=a(e),u(D.$$.fragment,e),$t=a(e),P=M(e,"P",{"data-svelte-h":!0}),p(P)!=="svelte-1c0v0sp"&&(P.textContent=is),Gt=a(e),u(K.$$.fragment,e),vt=a(e),O=M(e,"P",{"data-svelte-h":!0}),p(O)!=="svelte-wjaltb"&&(O.innerHTML=os),Zt=a(e),u(ee.$$.fragment,e),Wt=a(e),u(N.$$.fragment,e),kt=a(e),u(te.$$.fragment,e),xt=a(e),le=M(e,"P",{"data-svelte-h":!0}),p(le)!=="svelte-s9ip7"&&(le.textContent=Ms),Nt=a(e),se=M(e,"P",{"data-svelte-h":!0}),p(se)!=="svelte-gobzjq"&&(se.textContent=ps),Bt=a(e),u(B.$$.fragment,e),qt=a(e),u(ne.$$.fragment,e),At=a(e),u(q.$$.fragment,e),Vt=a(e),ae=M(e,"P",{"data-svelte-h":!0}),p(ae)!=="svelte-1mlrcab"&&(ae.innerHTML=cs),Qt=a(e),ie=M(e,"P",{"data-svelte-h":!0}),p(ie)!=="svelte-f29e6h"&&(ie.innerHTML=us),Et=a(e),u(oe.$$.fragment,e),Yt=a(e),u(Me.$$.fragment,e),Rt=a(e),pe=M(e,"P",{"data-svelte-h":!0}),p(pe)!=="svelte-1lgh2g0"&&(pe.innerHTML=ys),Ht=a(e),ce=M(e,"P",{"data-svelte-h":!0}),p(ce)!=="svelte-1n24rkf"&&(ce.innerHTML=rs),Xt=a(e),u(ue.$$.fragment,e),zt=a(e),ye=M(e,"P",{"data-svelte-h":!0}),p(ye)!=="svelte-4hmhsl"&&(ye.textContent=ms),Lt=a(e),u(re.$$.fragment,e),St=a(e),me=M(e,"P",{"data-svelte-h":!0}),p(me)!=="svelte-cqv9s0"&&(me.innerHTML=hs),_t=a(e),u(he.$$.fragment,e),Ft=a(e),de=M(e,"P",{"data-svelte-h":!0}),p(de)!=="svelte-o99xdc"&&(de.textContent=ds),Dt=a(e),u(Je.$$.fragment,e),Pt=a(e),Te=M(e,"P",{"data-svelte-h":!0}),p(Te)!=="svelte-dul6s2"&&(Te.innerHTML=Js),Kt=a(e),Ue=M(e,"P",{"data-svelte-h":!0}),p(Ue)!=="svelte-rgl2wl"&&(Ue.innerHTML=Ts),Ot=a(e),u(ge.$$.fragment,e),el=a(e),fe=M(e,"P",{"data-svelte-h":!0}),p(fe)!=="svelte-19hrq52"&&(fe.innerHTML=Us),tl=a(e),u(A.$$.fragment,e),ll=a(e),je=M(e,"P",{"data-svelte-h":!0}),p(je)!=="svelte-u9lme"&&(je.innerHTML=gs),sl=a(e),be=M(e,"UL",{"data-svelte-h":!0}),p(be)!=="svelte-aqftmn"&&(be.innerHTML=fs),nl=a(e),u(we.$$.fragment,e),al=a(e),u(V.$$.fragment,e),il=a(e),Ce=M(e,"P",{"data-svelte-h":!0}),p(Ce)!=="svelte-psyj8p"&&(Ce.innerHTML=js),ol=a(e),u(Ie.$$.fragment,e),Ml=a(e),$e=M(e,"P",{"data-svelte-h":!0}),p($e)!=="svelte-1wzt8py"&&($e.textContent=bs),pl=a(e),Q=M(e,"UL",{});var ht=ft(Q);Ge=M(ht,"LI",{});var dt=ft(Ge);Tt=M(dt,"P",{"data-svelte-h":!0}),p(Tt)!=="svelte-k3movz"&&(Tt.innerHTML=ws),Ol=a(dt),u(ve.$$.fragment,dt),dt.forEach(l),es=a(ht),Ze=M(ht,"LI",{});var Jt=ft(Ze);Ut=M(Jt,"P",{"data-svelte-h":!0}),p(Ut)!=="svelte-1uskw9x"&&(Ut.innerHTML=Cs),ts=a(Jt),u(We.$$.fragment,Jt),Jt.forEach(l),ht.forEach(l),cl=a(e),u(ke.$$.fragment,e),ul=a(e),xe=M(e,"P",{"data-svelte-h":!0}),p(xe)!=="svelte-1ks8djk"&&(xe.innerHTML=Is),yl=a(e),u(Ne.$$.fragment,e),rl=a(e),Be=M(e,"P",{"data-svelte-h":!0}),p(Be)!=="svelte-ju7jt8"&&(Be.textContent=$s),ml=a(e),u(qe.$$.fragment,e),hl=a(e),Ae=M(e,"P",{"data-svelte-h":!0}),p(Ae)!=="svelte-3c8ndk"&&(Ae.textContent=Gs),dl=a(e),u(Ve.$$.fragment,e),Jl=a(e),u(Qe.$$.fragment,e),Tl=a(e),Ee=M(e,"P",{"data-svelte-h":!0}),p(Ee)!=="svelte-1p0ak29"&&(Ee.innerHTML=vs),Ul=a(e),u(E.$$.fragment,e),gl=a(e),u(Ye.$$.fragment,e),fl=a(e),Re=M(e,"P",{"data-svelte-h":!0}),p(Re)!=="svelte-twqp2d"&&(Re.innerHTML=Zs),jl=a(e),u(He.$$.fragment,e),bl=a(e),Xe=M(e,"P",{"data-svelte-h":!0}),p(Xe)!=="svelte-3c8ndk"&&(Xe.textContent=Ws),wl=a(e),u(ze.$$.fragment,e),Cl=a(e),u(Le.$$.fragment,e),Il=a(e),Se=M(e,"P",{"data-svelte-h":!0}),p(Se)!=="svelte-1bza1up"&&(Se.innerHTML=ks),$l=a(e),u(_e.$$.fragment,e),Gl=a(e),Fe=M(e,"P",{"data-svelte-h":!0}),p(Fe)!=="svelte-3c8ndk"&&(Fe.textContent=xs),vl=a(e),u(De.$$.fragment,e),Zl=a(e),u(Pe.$$.fragment,e),Wl=a(e),Ke=M(e,"P",{"data-svelte-h":!0}),p(Ke)!=="svelte-wsqmg8"&&(Ke.textContent=Ns),kl=a(e),u(Oe.$$.fragment,e),xl=a(e),et=M(e,"P",{"data-svelte-h":!0}),p(et)!=="svelte-1fcceeu"&&(et.textContent=Bs),Nl=a(e),u(tt.$$.fragment,e),Bl=a(e),lt=M(e,"P",{"data-svelte-h":!0}),p(lt)!=="svelte-1xiyzgu"&&(lt.textContent=qs),ql=a(e),st=M(e,"TABLE",{"data-svelte-h":!0}),p(st)!=="svelte-tvseid"&&(st.innerHTML=As),Al=a(e),u(nt.$$.fragment,e),Vl=a(e),at=M(e,"P",{"data-svelte-h":!0}),p(at)!=="svelte-1xqwa5p"&&(at.textContent=Vs),Ql=a(e),u(it.$$.fragment,e),El=a(e),ot=M(e,"P",{"data-svelte-h":!0}),p(ot)!=="svelte-r9bnh5"&&(ot.textContent=Qs),Yl=a(e),Mt=M(e,"TABLE",{"data-svelte-h":!0}),p(Mt)!=="svelte-hsy8it"&&(Mt.innerHTML=Es),Rl=a(e),u(pt.$$.fragment,e),Hl=a(e),ct=M(e,"P",{"data-svelte-h":!0}),p(ct)!=="svelte-1laf0m8"&&(ct.textContent=Ys),Xl=a(e),u(ut.$$.fragment,e),zl=a(e),yt=M(e,"P",{"data-svelte-h":!0}),p(yt)!=="svelte-p25rz5"&&(yt.innerHTML=Rs),Ll=a(e),u(rt.$$.fragment,e),Sl=a(e),_l=M(e,"HR",{}),Fl=a(e),u(Y.$$.fragment,e),Dl=a(e),u(mt.$$.fragment,e),Pl=a(e),gt=M(e,"P",{}),ft(gt).forEach(l),this.h()},h(){_s(i,"name","hf:doc:metadata"),_s(i,"content",un)},m(e,t){R(document.head,i),s(e,f,t),s(e,d,t),s(e,T,t),y(b,e,t),s(e,g,t),s(e,$,t),s(e,U,t),s(e,I,t),s(e,z,t),y(v,e,t),s(e,W,t),y(k,e,t),s(e,J,t),s(e,w,t),s(e,jt,t),s(e,L,t),s(e,bt,t),s(e,S,t),s(e,wt,t),y(_,e,t),s(e,Ct,t),s(e,F,t),s(e,It,t),y(D,e,t),s(e,$t,t),s(e,P,t),s(e,Gt,t),y(K,e,t),s(e,vt,t),s(e,O,t),s(e,Zt,t),y(ee,e,t),s(e,Wt,t),y(N,e,t),s(e,kt,t),y(te,e,t),s(e,xt,t),s(e,le,t),s(e,Nt,t),s(e,se,t),s(e,Bt,t),y(B,e,t),s(e,qt,t),y(ne,e,t),s(e,At,t),y(q,e,t),s(e,Vt,t),s(e,ae,t),s(e,Qt,t),s(e,ie,t),s(e,Et,t),y(oe,e,t),s(e,Yt,t),y(Me,e,t),s(e,Rt,t),s(e,pe,t),s(e,Ht,t),s(e,ce,t),s(e,Xt,t),y(ue,e,t),s(e,zt,t),s(e,ye,t),s(e,Lt,t),y(re,e,t),s(e,St,t),s(e,me,t),s(e,_t,t),y(he,e,t),s(e,Ft,t),s(e,de,t),s(e,Dt,t),y(Je,e,t),s(e,Pt,t),s(e,Te,t),s(e,Kt,t),s(e,Ue,t),s(e,Ot,t),y(ge,e,t),s(e,el,t),s(e,fe,t),s(e,tl,t),y(A,e,t),s(e,ll,t),s(e,je,t),s(e,sl,t),s(e,be,t),s(e,nl,t),y(we,e,t),s(e,al,t),y(V,e,t),s(e,il,t),s(e,Ce,t),s(e,ol,t),y(Ie,e,t),s(e,Ml,t),s(e,$e,t),s(e,pl,t),s(e,Q,t),R(Q,Ge),R(Ge,Tt),R(Ge,Ol),y(ve,Ge,null),R(Q,es),R(Q,Ze),R(Ze,Ut),R(Ze,ts),y(We,Ze,null),s(e,cl,t),y(ke,e,t),s(e,ul,t),s(e,xe,t),s(e,yl,t),y(Ne,e,t),s(e,rl,t),s(e,Be,t),s(e,ml,t),y(qe,e,t),s(e,hl,t),s(e,Ae,t),s(e,dl,t),y(Ve,e,t),s(e,Jl,t),y(Qe,e,t),s(e,Tl,t),s(e,Ee,t),s(e,Ul,t),y(E,e,t),s(e,gl,t),y(Ye,e,t),s(e,fl,t),s(e,Re,t),s(e,jl,t),y(He,e,t),s(e,bl,t),s(e,Xe,t),s(e,wl,t),y(ze,e,t),s(e,Cl,t),y(Le,e,t),s(e,Il,t),s(e,Se,t),s(e,$l,t),y(_e,e,t),s(e,Gl,t),s(e,Fe,t),s(e,vl,t),y(De,e,t),s(e,Zl,t),y(Pe,e,t),s(e,Wl,t),s(e,Ke,t),s(e,kl,t),y(Oe,e,t),s(e,xl,t),s(e,et,t),s(e,Nl,t),y(tt,e,t),s(e,Bl,t),s(e,lt,t),s(e,ql,t),s(e,st,t),s(e,Al,t),y(nt,e,t),s(e,Vl,t),s(e,at,t),s(e,Ql,t),y(it,e,t),s(e,El,t),s(e,ot,t),s(e,Yl,t),s(e,Mt,t),s(e,Rl,t),y(pt,e,t),s(e,Hl,t),s(e,ct,t),s(e,Xl,t),y(ut,e,t),s(e,zl,t),s(e,yt,t),s(e,Ll,t),y(rt,e,t),s(e,Sl,t),s(e,_l,t),s(e,Fl,t),y(Y,e,t),s(e,Dl,t),y(mt,e,t),s(e,Pl,t),s(e,gt,t),Kl=!0},p(e,[t]){const ht={};t&2&&(ht.$$scope={dirty:t,ctx:e}),v.$set(ht);const dt={};t&2&&(dt.$$scope={dirty:t,ctx:e}),N.$set(dt);const Jt={};t&2&&(Jt.$$scope={dirty:t,ctx:e}),B.$set(Jt);const Hs={};t&2&&(Hs.$$scope={dirty:t,ctx:e}),q.$set(Hs);const Xs={};t&2&&(Xs.$$scope={dirty:t,ctx:e}),A.$set(Xs);const zs={};t&2&&(zs.$$scope={dirty:t,ctx:e}),V.$set(zs);const Ls={};t&2&&(Ls.$$scope={dirty:t,ctx:e}),E.$set(Ls);const Ss={};t&2&&(Ss.$$scope={dirty:t,ctx:e}),Y.$set(Ss)},i(e){Kl||(r(b.$$.fragment,e),r(v.$$.fragment,e),r(k.$$.fragment,e),r(_.$$.fragment,e),r(D.$$.fragment,e),r(K.$$.fragment,e),r(ee.$$.fragment,e),r(N.$$.fragment,e),r(te.$$.fragment,e),r(B.$$.fragment,e),r(ne.$$.fragment,e),r(q.$$.fragment,e),r(oe.$$.fragment,e),r(Me.$$.fragment,e),r(ue.$$.fragment,e),r(re.$$.fragment,e),r(he.$$.fragment,e),r(Je.$$.fragment,e),r(ge.$$.fragment,e),r(A.$$.fragment,e),r(we.$$.fragment,e),r(V.$$.fragment,e),r(Ie.$$.fragment,e),r(ve.$$.fragment,e),r(We.$$.fragment,e),r(ke.$$.fragment,e),r(Ne.$$.fragment,e),r(qe.$$.fragment,e),r(Ve.$$.fragment,e),r(Qe.$$.fragment,e),r(E.$$.fragment,e),r(Ye.$$.fragment,e),r(He.$$.fragment,e),r(ze.$$.fragment,e),r(Le.$$.fragment,e),r(_e.$$.fragment,e),r(De.$$.fragment,e),r(Pe.$$.fragment,e),r(Oe.$$.fragment,e),r(tt.$$.fragment,e),r(nt.$$.fragment,e),r(it.$$.fragment,e),r(pt.$$.fragment,e),r(ut.$$.fragment,e),r(rt.$$.fragment,e),r(Y.$$.fragment,e),r(mt.$$.fragment,e),Kl=!0)},o(e){m(b.$$.fragment,e),m(v.$$.fragment,e),m(k.$$.fragment,e),m(_.$$.fragment,e),m(D.$$.fragment,e),m(K.$$.fragment,e),m(ee.$$.fragment,e),m(N.$$.fragment,e),m(te.$$.fragment,e),m(B.$$.fragment,e),m(ne.$$.fragment,e),m(q.$$.fragment,e),m(oe.$$.fragment,e),m(Me.$$.fragment,e),m(ue.$$.fragment,e),m(re.$$.fragment,e),m(he.$$.fragment,e),m(Je.$$.fragment,e),m(ge.$$.fragment,e),m(A.$$.fragment,e),m(we.$$.fragment,e),m(V.$$.fragment,e),m(Ie.$$.fragment,e),m(ve.$$.fragment,e),m(We.$$.fragment,e),m(ke.$$.fragment,e),m(Ne.$$.fragment,e),m(qe.$$.fragment,e),m(Ve.$$.fragment,e),m(Qe.$$.fragment,e),m(E.$$.fragment,e),m(Ye.$$.fragment,e),m(He.$$.fragment,e),m(ze.$$.fragment,e),m(Le.$$.fragment,e),m(_e.$$.fragment,e),m(De.$$.fragment,e),m(Pe.$$.fragment,e),m(Oe.$$.fragment,e),m(tt.$$.fragment,e),m(nt.$$.fragment,e),m(it.$$.fragment,e),m(pt.$$.fragment,e),m(ut.$$.fragment,e),m(rt.$$.fragment,e),m(Y.$$.fragment,e),m(mt.$$.fragment,e),Kl=!1},d(e){e&&(l(f),l(d),l(T),l(g),l($),l(U),l(I),l(z),l(W),l(J),l(w),l(jt),l(L),l(bt),l(S),l(wt),l(Ct),l(F),l(It),l($t),l(P),l(Gt),l(vt),l(O),l(Zt),l(Wt),l(kt),l(xt),l(le),l(Nt),l(se),l(Bt),l(qt),l(At),l(Vt),l(ae),l(Qt),l(ie),l(Et),l(Yt),l(Rt),l(pe),l(Ht),l(ce),l(Xt),l(zt),l(ye),l(Lt),l(St),l(me),l(_t),l(Ft),l(de),l(Dt),l(Pt),l(Te),l(Kt),l(Ue),l(Ot),l(el),l(fe),l(tl),l(ll),l(je),l(sl),l(be),l(nl),l(al),l(il),l(Ce),l(ol),l(Ml),l($e),l(pl),l(Q),l(cl),l(ul),l(xe),l(yl),l(rl),l(Be),l(ml),l(hl),l(Ae),l(dl),l(Jl),l(Tl),l(Ee),l(Ul),l(gl),l(fl),l(Re),l(jl),l(bl),l(Xe),l(wl),l(Cl),l(Il),l(Se),l($l),l(Gl),l(Fe),l(vl),l(Zl),l(Wl),l(Ke),l(kl),l(xl),l(et),l(Nl),l(Bl),l(lt),l(ql),l(st),l(Al),l(Vl),l(at),l(Ql),l(El),l(ot),l(Yl),l(Mt),l(Rl),l(Hl),l(ct),l(Xl),l(zl),l(yt),l(Ll),l(Sl),l(_l),l(Fl),l(Dl),l(Pl),l(gt)),l(i),h(b,e),h(v,e),h(k,e),h(_,e),h(D,e),h(K,e),h(ee,e),h(N,e),h(te,e),h(B,e),h(ne,e),h(q,e),h(oe,e),h(Me,e),h(ue,e),h(re,e),h(he,e),h(Je,e),h(ge,e),h(A,e),h(we,e),h(V,e),h(Ie,e),h(ve),h(We),h(ke,e),h(Ne,e),h(qe,e),h(Ve,e),h(Qe,e),h(E,e),h(Ye,e),h(He,e),h(ze,e),h(Le,e),h(_e,e),h(De,e),h(Pe,e),h(Oe,e),h(tt,e),h(nt,e),h(it,e),h(pt,e),h(ut,e),h(rt,e),h(Y,e),h(mt,e)}}}const un='{"title":"Deploy Llama 3.2 11B Vision with TGI DLC on GKE","local":"deploy-llama-32-11b-vision-with-tgi-dlc-on-gke","sections":[{"title":"Setup / Configuration","local":"setup--configuration","sections":[],"depth":2},{"title":"Create GKE Cluster","local":"create-gke-cluster","sections":[],"depth":2},{"title":"Get Hugging Face token and set secrets in GKE","local":"get-hugging-face-token-and-set-secrets-in-gke","sections":[],"depth":2},{"title":"Deploy TGI","local":"deploy-tgi","sections":[],"depth":2},{"title":"Inference with TGI","local":"inference-with-tgi","sections":[{"title":"Via cURL","local":"via-curl","sections":[],"depth":3},{"title":"Via Python","local":"via-python","sections":[{"title":"huggingface_hub","local":"huggingfacehub","sections":[],"depth":4},{"title":"openai","local":"openai","sections":[],"depth":4}],"depth":3}],"depth":2},{"title":"Other use-cases","local":"other-use-cases","sections":[{"title":"Visual Question Answering (VQA)","local":"visual-question-answering-vqa","sections":[],"depth":3},{"title":"Image Information Retrieval","local":"image-information-retrieval","sections":[],"depth":3}],"depth":2},{"title":"Delete GKE Cluster","local":"delete-gke-cluster","sections":[],"depth":2}],"depth":1}';function yn(C){return Ds(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Tn extends Ps{constructor(i){super(),Ks(this,i,yn,cn,Fs,{})}}export{Tn as component};

Xet Storage Details

Size:
65.8 kB
·
Xet hash:
b1b92097d60f515cf9da498bb0804881bb1f8644c16946cb77210685b4a51ed6

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.