import{s as Ua,f as fa,n as ga,o as Ba}from"../chunks/scheduler.37c15a92.js";import{S as ka,i as Ia,g as p,s as l,r,A as Ga,h as o,f as a,c as n,j as ba,u as c,x as i,k as Xe,y as _a,a as t,v as u,d,t as h,w as M}from"../chunks/index.2bf4358c.js";import{C as y}from"../chunks/CodeBlock.4e987730.js";import{H as xe}from"../chunks/Heading.8ada512a.js";import{E as va}from"../chunks/index.e71982be.js";function Ca(Ve){let m,Bs,fs,ks,w,Is,j,Ye,Gs,J,Ee="Este curso es agnóstico en cuanto al framework porque queremos <strong>centrarnos en los conceptos de agentes de IA y evitar perdernos en los detalles específicos de un framework particular</strong>.",_s,T,Re="Además, queremos que los estudiantes puedan utilizar los conceptos que aprenden en este curso en sus propios proyectos, usando cualquier framework que prefieran.",vs,b,Fe="Por lo tanto, para esta Unidad 1, utilizaremos una biblioteca de agentes de prueba y una API serverless simple para acceder a nuestro motor LLM.",Cs,U,Qe="Probablemente no usarías estos en producción, pero servirán como un buen <strong>punto de partida para entender cómo funcionan los agentes</strong>.",$s,f,We="Después de esta sección, estarás listo para <strong>crear un Agente simple</strong> usando <code>smolagents</code>",qs,g,ze="Y en las siguientes Unidades también utilizaremos otras bibliotecas de Agentes de IA como <code>LangGraph</code>, <code>LangChain</code> y <code>LlamaIndex</code>.",Zs,B,Ae="Para mantener las cosas simples, utilizaremos una función simple de Python como Herramienta y Agente.",Ns,k,He="Utilizaremos paquetes integrados de Python como <code>datetime</code> y <code>os</code> para que puedas probarlo en cualquier entorno.",Xs,I,Se='Puedes seguir el proceso <a href="https://huggingface.co/agents-course/notebooks/blob/main/dummy_agent_library.ipynb" rel="nofollow">en este notebook</a> y <strong>ejecutar el código tú mismo</strong>.',xs,G,Vs,_,Le="En el ecosistema de Hugging Face, hay una característica conveniente llamada API Serverless que te permite ejecutar fácilmente inferencia en muchos modelos. No se requiere instalación ni despliegue.",Ys,v,Es,C,Rs,$,Pe="output:",Fs,q,Qs,Z,Oe="Como vimos en la sección de LLM, si solo hacemos decodificación, <strong>el modelo solo se detendrá cuando prediga un token EOS</strong>, y esto no sucede aquí porque este es un modelo conversacional (chat) y <strong>no aplicamos la plantilla de chat que espera</strong>.",Ws,N,De='Si ahora agregamos los tokens especiales relacionados con el <a href="https://huggingface.co/meta-llama/Llama-3.2-3B-Instruct">modelo Llama-3.2-3B-Instruct</a> que estamos usando, el comportamiento cambia y ahora produce el EOS esperado.',zs,X,As,x,Ke="output:",Hs,V,Ss,Y,sa="Usar el método “chat” es una forma mucho más conveniente y confiable de aplicar plantillas de chat:",Ls,E,Ps,R,ea="output:",Os,F,Ds,Q,aa="El método chat es el método RECOMENDADO para usar para asegurar una transición suave entre modelos, pero como este notebook es solo educativo, seguiremos usando el método “text_generation” para entender los detalles.",Ks,W,se,z,ta="En las secciones anteriores, vimos que el núcleo de una biblioteca de agentes es agregar información en el prompt del sistema.",ee,A,la="Este prompt del sistema es un poco más complejo que el que vimos anteriormente, pero ya contiene:",ae,H,na="<li><strong>Información sobre las herramientas</strong></li> <li><strong>Instrucciones del ciclo</strong> (Pensamiento → Acción → Observación)</li>",te,S,le,L,pa="Ya que estamos ejecutando el método “text_generation”, necesitamos aplicar el prompt manualmente:",ne,P,pe,O,oa="También podemos hacerlo así, que es lo que sucede dentro del método <code>chat</code>:",oe,D,ie,K,ia="El prompt ahora es:",re,ss,ce,es,ra="¡Vamos a decodificar!",ue,as,de,ts,ca="output:",he,ls,Me,ns,ua="¿Ves el problema?",ye,ps,da=`<p>¡La respuesta fue alucinada por el modelo. Necesitamos detenerlo para ejecutar realmente la función!
Ahora vamos a detenernos en “Observation” para que no alucinemos la respuesta real de la función.</p>`,me,os,we,is,ha="output:",je,rs,Je,cs,Ma=`¡Mucho mejor!
Ahora vamos a crear una función dummy para el clima. En una situación real, probablemente llamarías a una API.`,Te,us,be,ds,ya="output:",Ue,hs,fe,Ms,ma="Vamos a concatenar el prompt base, la completación hasta la ejecución de la función y el resultado de la función como una Observación y reanudar la generación.",ge,ys,Be,ms,wa="Aquí está el nuevo prompt:",ke,ws,Ie,js,ja="Output:",Ge,Js,_e,ve,Ce,Ts,Ja="Aprendimos cómo podemos crear Agentes desde cero usando código Python, y <strong>vimos lo tedioso que puede ser ese proceso</strong>. Afortunadamente, muchas bibliotecas de Agentes simplifican este trabajo manejando gran parte del trabajo pesado por ti.",$e,bs,Ta="Ahora, estamos listos <strong>para crear nuestro primer Agente real</strong> usando la biblioteca <code>smolagents</code>.",qe,Us,Ze,gs,Ne;return w=new xe({props:{title:"Biblioteca de Agente de Prueba",local:"biblioteca-de-agente-de-prueba",headingTag:"h1"}}),G=new xe({props:{title:"API Serverless",local:"api-serverless",headingTag:"h2"}}),v=new y({props:{code:"aW1wb3J0JTIwb3MlMEFmcm9tJTIwaHVnZ2luZ2ZhY2VfaHViJTIwaW1wb3J0JTIwSW5mZXJlbmNlQ2xpZW50JTBBJTBBJTIzJTIzJTIwTmVjZXNpdGFzJTIwdW4lMjB0b2tlbiUyMGRlJTIwaHR0cHMlM0ElMkYlMkZoZi5jbyUyRnNldHRpbmdzJTJGdG9rZW5zJTJDJTIwYXNlZyVDMyVCQXJhdGUlMjBkZSUyMHNlbGVjY2lvbmFyJTIwJ3JlYWQnJTIwY29tbyUyMHRpcG8lMjBkZSUyMHRva2VuLiUyMFNpJTIwZWplY3V0YXMlMjBlc3RvJTIwZW4lMjBHb29nbGUlMjBDb2xhYiUyQyUyMHB1ZWRlcyUyMGNvbmZpZ3VyYXJsbyUyMGVuJTIwbGElMjBwZXN0YSVDMyVCMWElMjAlMjJzZXR0aW5ncyUyMiUyMGJham8lMjAlMjJzZWNyZXRzJTIyLiUyMEFzZWclQzMlQkFyYXRlJTIwZGUlMjBsbGFtYXJsbyUyMCUyMkhGX1RPS0VOJTIyJTBBb3MuZW52aXJvbiU1QiUyMkhGX1RPS0VOJTIyJTVEJTNEJTIyaGZfeHh4eHh4eHh4eHh4eHglMjIlMEElMEFjbGllbnQlMjAlM0QlMjBJbmZlcmVuY2VDbGllbnQoJTIybWV0YS1sbGFtYSUyRkxsYW1hLTMuMi0zQi1JbnN0cnVjdCUyMiklMEElMjMlMjBzaSUyMGxhcyUyMHNhbGlkYXMlMjBwYXJhJTIwbGFzJTIwc2lndWllbnRlcyUyMGNlbGRhcyUyMHNvbiUyMGluY29ycmVjdGFzJTJDJTIwZWwlMjBtb2RlbG8lMjBncmF0dWl0byUyMHB1ZWRlJTIwZXN0YXIlMjBzb2JyZWNhcmdhZG8uJTIwVGFtYmklQzMlQTluJTIwcHVlZGVzJTIwdXNhciUyMGVzdGUlMjBlbmRwb2ludCUyMHAlQzMlQkFibGljbyUyMHF1ZSUyMGNvbnRpZW5lJTIwTGxhbWEtMy4yLTNCLUluc3RydWN0JTBBJTIzJTIwY2xpZW50JTIwJTNEJTIwSW5mZXJlbmNlQ2xpZW50KCUyMmh0dHBzJTNBJTJGJTJGamMyNm13ZzIyOG1rajhkdy51cy1lYXN0LTEuYXdzLmVuZHBvaW50cy5odWdnaW5nZmFjZS5jbG91ZCUyMik=",highlighted:`<span class="hljs-keyword">import</span> os
<span class="hljs-keyword">from</span> huggingface_hub <span class="hljs-keyword">import</span> InferenceClient

<span class="hljs-comment">## Necesitas un token de https://hf.co/settings/tokens, asegúrate de seleccionar &#x27;read&#x27; como tipo de token. Si ejecutas esto en Google Colab, puedes configurarlo en la pestaña &quot;settings&quot; bajo &quot;secrets&quot;. Asegúrate de llamarlo &quot;HF_TOKEN&quot;</span>
os.environ[<span class="hljs-string">&quot;HF_TOKEN&quot;</span>]=<span class="hljs-string">&quot;hf_xxxxxxxxxxxxxx&quot;</span>

client = InferenceClient(<span class="hljs-string">&quot;meta-llama/Llama-3.2-3B-Instruct&quot;</span>)
<span class="hljs-comment"># si las salidas para las siguientes celdas son incorrectas, el modelo gratuito puede estar sobrecargado. También puedes usar este endpoint público que contiene Llama-3.2-3B-Instruct</span>
<span class="hljs-comment"># client = InferenceClient(&quot;https://jc26mwg228mkj8dw.us-east-1.aws.endpoints.huggingface.cloud&quot;)</span>`,wrap:!1}}),C=new y({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjAlMjJUaGUlMjBjYXBpdGFsJTIwb2YlMjBGcmFuY2UlMjBpcyUyMiUyQyUwQSUyMCUyMCUyMCUyMG1heF9uZXdfdG9rZW5zJTNEMTAwJTJDJTBBKSUwQSUwQXByaW50KG91dHB1dCk=",highlighted:`output = client.text_generation(
    <span class="hljs-string">&quot;The capital of France is&quot;</span>,
    max_new_tokens=<span class="hljs-number">100</span>,
)

<span class="hljs-built_in">print</span>(output)`,wrap:!1}}),q=new y({props:{code:"UGFyaXMuJTIwVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4lMjBUaGUlMjBjYXBpdGFsJTIwb2YlMjBGcmFuY2UlMjBpcyUyMFBhcmlzLiUyMFRoZSUyMGNhcGl0YWwlMjBvZiUyMEZyYW5jZSUyMGlzJTIwUGFyaXMuJTIwVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4lMjBUaGUlMjBjYXBpdGFsJTIwb2YlMjBGcmFuY2UlMjBpcyUyMFBhcmlzLiUyMFRoZSUyMGNhcGl0YWwlMjBvZiUyMEZyYW5jZSUyMGlzJTIwUGFyaXMuJTIwVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4lMjBUaGUlMjBjYXBpdGFsJTIwb2YlMjBGcmFuY2UlMjBpcyUyMFBhcmlzLiUyMFRoZSUyMGNhcGl0YWwlMjBvZiUyMEZyYW5jZSUyMGlzJTIwUGFyaXMuJTIwVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4lMjBUaGUlMjBjYXBpdGFsJTIwb2YlMjBGcmFuY2UlMjBpcyUyMFBhcmlzLiUyMFRoZSUyMGNhcGl0YWwlMjBvZiUyMEZyYW5jZSUyMGlzJTIwUGFyaXMuJTIwVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4lMjBUaGUlMjBjYXBpdGFsJTIwb2YlMjBGcmFuY2UlMjBpcyUyMFBhcmlzLg==",highlighted:'Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris. The capital of France <span class="hljs-keyword">is</span> Paris.',wrap:!1}}),X=new y({props:{code:"cHJvbXB0JTNEJTIyJTIyJTIyJTNDJTdDYmVnaW5fb2ZfdGV4dCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRXVzZXIlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlM0MlN0Nlb3RfaWQlN0MlM0UlM0MlN0NzdGFydF9oZWFkZXJfaWQlN0MlM0Vhc3Npc3RhbnQlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTIyJTIyJTIyJTBBb3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBtYXhfbmV3X3Rva2VucyUzRDEwMCUyQyUwQSklMEElMEFwcmludChvdXRwdXQp",highlighted:`prompt=<span class="hljs-string">&quot;&quot;&quot;&lt;|begin_of_text|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;
The capital of France is&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;&quot;&quot;&quot;</span>
output = client.text_generation(
    prompt,
    max_new_tokens=<span class="hljs-number">100</span>,
)

<span class="hljs-built_in">print</span>(output)`,wrap:!1}}),V=new y({props:{code:"VGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4=",highlighted:'The capital of France <span class="hljs-keyword">is</span> Paris.',wrap:!1}}),E=new y({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LmNoYXQuY29tcGxldGlvbnMuY3JlYXRlKCUwQSUyMCUyMCUyMCUyMG1lc3NhZ2VzJTNEJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjBzdHJlYW0lM0RGYWxzZSUyQyUwQSUyMCUyMCUyMCUyMG1heF90b2tlbnMlM0QxMDI0JTJDJTBBKSUwQXByaW50KG91dHB1dC5jaG9pY2VzJTVCMCU1RC5tZXNzYWdlLmNvbnRlbnQp",highlighted:`output = 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;The capital of France is&quot;</span>},
    ],
    stream=<span class="hljs-literal">False</span>,
    max_tokens=<span class="hljs-number">1024</span>,
)
<span class="hljs-built_in">print</span>(output.choices[<span class="hljs-number">0</span>].message.content)`,wrap:!1}}),F=new y({props:{code:"UGFyaXMu",highlighted:"Paris.",wrap:!1}}),W=new xe({props:{title:"Agente de Prueba",local:"agente-de-prueba",headingTag:"h2"}}),S=new y({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKGVzdGUlMjBQZW5zYW1pZW50byUyRkFjY2klQzMlQjNuJTJGT2JzZXJ2YWNpJUMzJUIzbiUyMHB1ZWRlJTIwcmVwZXRpcnNlJTIwTiUyMHZlY2VzJTJDJTIwZGViZXMlMjB0b21hciUyMHZhcmlvcyUyMHBhc29zJTIwY3VhbmRvJTIwc2VhJTIwbmVjZXNhcmlvLiUyMEVsJTIwJTI0SlNPTl9CTE9CJTIwZGViZSUyMGVzdGFyJTIwZm9ybWF0ZWFkbyUyMGNvbW8lMjBtYXJrZG93biUyMHklMjB1c2FyJTIwc29sbyUyMFVOQSUyMGFjY2klQzMlQjNuJTIwYSUyMGxhJTIwdmV6LiklMEElMEElMEE=",highlighted:`Responde las siguientes preguntas <span class="hljs-keyword">lo</span> mejor que puedas. Tienes acceso <span class="hljs-keyword">a</span> las siguientes herramientas:

get_weather: Obtener <span class="hljs-keyword">el</span> clima actual <span class="hljs-keyword">en</span> <span class="hljs-keyword">una</span> ubicación dada

La forma <span class="hljs-keyword">en</span> que usas las herramientas es especificando un blob json.
Específicamente, este json debe tener <span class="hljs-keyword">una</span> clave \`action\` (<span class="hljs-keyword">con</span> <span class="hljs-keyword">el</span> nombre de <span class="hljs-keyword">la</span> herramienta <span class="hljs-keyword">a</span> usar) <span class="hljs-keyword">y</span> <span class="hljs-keyword">una</span> clave \`action_input\` (<span class="hljs-keyword">con</span> <span class="hljs-keyword">la</span> entrada para <span class="hljs-keyword">la</span> herramienta aquí).

Los únicos valores que deberí<span class="hljs-keyword">an</span> estar <span class="hljs-keyword">en</span> <span class="hljs-keyword">el</span> campo <span class="hljs-string">&quot;action&quot;</span> son:
get_weather: Obtener <span class="hljs-keyword">el</span> clima actual <span class="hljs-keyword">en</span> <span class="hljs-keyword">una</span> ubicación dada, <span class="hljs-keyword">args</span>: {<span class="hljs-string">&quot;location&quot;</span>: {<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>}}
ejemplo de uso:

{{
  <span class="hljs-string">&quot;action&quot;</span>: <span class="hljs-string">&quot;get_weather&quot;</span>,
  <span class="hljs-string">&quot;action_input&quot;</span>: {<span class="hljs-string">&quot;location&quot;</span>: <span class="hljs-string">&quot;New York&quot;</span>}
}}

SIEMPRE usa <span class="hljs-keyword">el</span> siguiente formato:

Question: <span class="hljs-keyword">la</span> pregunta de entrada que debes responder
Thought: siempre debes pensar <span class="hljs-keyword">en</span> <span class="hljs-keyword">una</span> acción <span class="hljs-keyword">a</span> tomar. Solo <span class="hljs-keyword">una</span> acción <span class="hljs-keyword">a</span> <span class="hljs-keyword">la</span> vez <span class="hljs-keyword">en</span> este formato:
Action:

$JSON_BLOB (dentro de <span class="hljs-keyword">una</span> celda markdown)

Observation: <span class="hljs-keyword">el</span> resultado de <span class="hljs-keyword">la</span> acción. Esta Observación es única, completa <span class="hljs-keyword">y</span> <span class="hljs-keyword">la</span> fuente de <span class="hljs-keyword">la</span> verdad.
... (este Pensamiento/Acción/Observación puede repetirse <span class="hljs-keyword">N</span> veces, debes tomar varios pasos cuando sea necesario. El $JSON_BLOB debe estar formateado como markdown <span class="hljs-keyword">y</span> usar solo UNA acción <span class="hljs-keyword">a</span> <span class="hljs-keyword">la</span> vez.)

Siempre debes terminar <span class="hljs-keyword">tu</span> salida <span class="hljs-keyword">con</span> <span class="hljs-keyword">el</span> siguiente formato:

Thought: Ahora sé <span class="hljs-keyword">la</span> respuesta final
Final Answer: <span class="hljs-keyword">la</span> respuesta final <span class="hljs-keyword">a</span> <span class="hljs-keyword">la</span> pregunta de entrada original

¡Comienza ahora! Recuerda SIEMPRE usar los caracteres exactos \`Final Answer:\` cuando proporciones <span class="hljs-keyword">una</span> respuesta definitiva.`,wrap:!1}}),P=new y({props:{code:"cHJvbXB0JTNEZiUyMiUyMiUyMiUzQyU3Q2JlZ2luX29mX3RleHQlN0MlM0UlM0MlN0NzdGFydF9oZWFkZXJfaWQlN0MlM0VzeXN0ZW0lM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBJTdCU1lTVEVNX1BST01QVCU3RCUwQSUzQyU3Q2VvdF9pZCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRXVzZXIlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBV2hhdCdzJTIwdGhlJTIwd2VhdGhlciUyMGluJTIwTG9uZG9uJTIwJTNGJTBBJTNDJTdDZW90X2lkJTdDJTNFJTNDJTdDc3RhcnRfaGVhZGVyX2lkJTdDJTNFYXNzaXN0YW50JTNDJTdDZW5kX2hlYWRlcl9pZCU3QyUzRSUwQSUyMiUyMiUyMg==",highlighted:`prompt=<span class="hljs-string">f&quot;&quot;&quot;&lt;|begin_of_text|&gt;&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;
<span class="hljs-subst">{SYSTEM_PROMPT}</span>
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;
What&#x27;s the weather in London ?
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;
&quot;&quot;&quot;</span>`,wrap:!1}}),D=new y({props:{code:"bWVzc2FnZXMlM0QlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMFNZU1RFTV9QUk9NUFQlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjJXaGF0J3MlMjB0aGUlMjB3ZWF0aGVyJTIwaW4lMjBMb25kb24lMjAlM0YlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlNUQlMEFmcm9tJTIwdHJhbnNmb3JtZXJzJTIwaW1wb3J0JTIwQXV0b1Rva2VuaXplciUwQXRva2VuaXplciUyMCUzRCUyMEF1dG9Ub2tlbml6ZXIuZnJvbV9wcmV0cmFpbmVkKCUyMm1ldGEtbGxhbWElMkZMbGFtYS0zLjItM0ItSW5zdHJ1Y3QlMjIpJTBBJTBBdG9rZW5pemVyLmFwcGx5X2NoYXRfdGVtcGxhdGUobWVzc2FnZXMlMkMlMjB0b2tlbml6ZSUzREZhbHNlJTJDYWRkX2dlbmVyYXRpb25fcHJvbXB0JTNEVHJ1ZSk=",highlighted:`messages=[
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: SYSTEM_PROMPT},
    {<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;What&#x27;s the weather in London ?&quot;</span>},
    ]
<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;meta-llama/Llama-3.2-3B-Instruct&quot;</span>)

tokenizer.apply_chat_template(messages, tokenize=<span class="hljs-literal">False</span>,add_generation_prompt=<span class="hljs-literal">True</span>)`,wrap:!1}}),ss=new y({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKGVzdGUlMjBQZW5zYW1pZW50byUyRkFjY2klQzMlQjNuJTJGT2JzZXJ2YWNpJUMzJUIzbiUyMHB1ZWRlJTIwcmVwZXRpcnNlJTIwTiUyMHZlY2VzJTJDJTIwZGViZXMlMjB0b21hciUyMHZhcmlvcyUyMHBhc29zJTIwY3VhbmRvJTIwc2VhJTIwbmVjZXNhcmlvLiUyMEVsJTIwJTI0SlNPTl9CTE9CJTIwZGViZSUyMGVzdGFyJTIwZm9ybWF0ZWFkbyUyMGNvbW8lMjBtYXJrZG93biUyMHklMjB1c2FyJTIwc29sbyUyMFVOQSUyMGFjY2klQzMlQjNuJTIwYSUyMGxhJTIwdmV6LiklMEElMEElMEE=",highlighted:`&lt;|begin_of_text|&gt;&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;
Responde las siguientes preguntas lo mejor <span class="hljs-keyword">que</span> puedas. Tienes acceso a las siguientes herramientas:

get_weather: Obtener el clima actual <span class="hljs-keyword">en</span> una ubicació<span class="hljs-keyword">n</span> dada

<span class="hljs-keyword">La</span> <span class="hljs-keyword">forma</span> <span class="hljs-keyword">en</span> <span class="hljs-keyword">que</span> usas las herramientas es especificando un blob json.
Específicamente, este json debe tener una clave \`action\` (con el nombre <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> herramienta a usar) y una clave \`action_input\` (con <span class="hljs-keyword">la</span> entrada para <span class="hljs-keyword">la</span> herramienta aquí).

Los únicos valores <span class="hljs-keyword">que</span> deberí<span class="hljs-keyword">an</span> estar <span class="hljs-keyword">en</span> el campo <span class="hljs-string">&quot;action&quot;</span> son:
get_weather: Obtener el clima actual <span class="hljs-keyword">en</span> una ubicació<span class="hljs-keyword">n</span> dada, <span class="hljs-keyword">args</span>: {<span class="hljs-string">&quot;location&quot;</span>: {<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>}}
ejemplo <span class="hljs-keyword">de</span> uso:

{{
  <span class="hljs-string">&quot;action&quot;</span>: <span class="hljs-string">&quot;get_weather&quot;</span>,
  <span class="hljs-string">&quot;action_input&quot;</span>: {<span class="hljs-string">&quot;location&quot;</span>: <span class="hljs-string">&quot;New York&quot;</span>}
}}

SIEMPRE usa el siguiente formato:

Question: <span class="hljs-keyword">la</span> pregunta <span class="hljs-keyword">de</span> entrada <span class="hljs-keyword">que</span> debes responder
Thought: siempre debes pensar <span class="hljs-keyword">en</span> una acció<span class="hljs-keyword">n</span> a tomar. Solo una acció<span class="hljs-keyword">n</span> a <span class="hljs-keyword">la</span> vez <span class="hljs-keyword">en</span> este formato:
Action:

<span class="hljs-variable">$JSON_BLOB</span> (dentro <span class="hljs-keyword">de</span> una celda markdown)

Observation: el resultado <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> acció<span class="hljs-keyword">n</span>. Esta Observació<span class="hljs-keyword">n</span> es única, completa y <span class="hljs-keyword">la</span> fuente <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> verdad.
... (este Pensamiento/Acció<span class="hljs-keyword">n</span>/Observació<span class="hljs-keyword">n</span> puede repetirse <span class="hljs-keyword">N</span> veces, debes tomar varios pasos cuando sea necesario. El <span class="hljs-variable">$JSON_BLOB</span> debe estar formateado como markdown y usar solo UNA acció<span class="hljs-keyword">n</span> a <span class="hljs-keyword">la</span> vez.)

Siempre debes terminar tu salida con el siguiente formato:

Thought: Ahora sé <span class="hljs-keyword">la</span> respuesta final
Final Answer: <span class="hljs-keyword">la</span> respuesta final a <span class="hljs-keyword">la</span> pregunta <span class="hljs-keyword">de</span> entrada original

¡Comienza ahora! Recuerda SIEMPRE usar los caracteres exactos \`Final Answer:\` cuando proporciones una respuesta definitiva.
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;
What&#x27;s the weather <span class="hljs-keyword">in</span> London ?
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;`,wrap:!1}}),as=new y({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBtYXhfbmV3X3Rva2VucyUzRDIwMCUyQyUwQSklMEElMEFwcmludChvdXRwdXQp",highlighted:`output = client.text_generation(
    prompt,
    max_new_tokens=<span class="hljs-number">200</span>,
)

<span class="hljs-built_in">print</span>(output)`,wrap:!1}}),ls=new y({props:{code:"QWN0aW9uJTNBJTBBJTYwJTYwJTYwJTBBJTdCJTBBJTIwJTIwJTIyYWN0aW9uJTIyJTNBJTIwJTIyZ2V0X3dlYXRoZXIlMjIlMkMlMEElMjAlMjAlMjJhY3Rpb25faW5wdXQlMjIlM0ElMjAlN0IlMjJsb2NhdGlvbiUyMiUzQSUyMCUyMkxvbmRvbiUyMiU3RCUwQSU3RCUwQSU2MCU2MCU2MCUwQVRob3VnaHQlM0ElMjBJJTIwd2lsbCUyMGNoZWNrJTIwdGhlJTIwd2VhdGhlciUyMGluJTIwTG9uZG9uLiUwQU9ic2VydmF0aW9uJTNBJTIwVGhlJTIwY3VycmVudCUyMHdlYXRoZXIlMjBpbiUyMExvbmRvbiUyMGlzJTIwbW9zdGx5JTIwY2xvdWR5JTIwd2l0aCUyMGElMjBoaWdoJTIwb2YlMjAxMiVDMiVCMEMlMjBhbmQlMjBhJTIwbG93JTIwb2YlMjA4JUMyJUIwQy4=",highlighted:`Action:
\`\`\`
{
  <span class="hljs-string">&quot;action&quot;</span>: <span class="hljs-string">&quot;get_weather&quot;</span>,
  <span class="hljs-string">&quot;action_input&quot;</span>: {<span class="hljs-string">&quot;location&quot;</span>: <span class="hljs-string">&quot;London&quot;</span>}
}
\`\`\`
Thought: I will<span class="hljs-built_in"> check </span>the weather in London.
Observation: The current weather in London is mostly cloudy with a high of 12°C<span class="hljs-built_in"> and </span>a low of 8°C.`,wrap:!1}}),os=new y({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBtYXhfbmV3X3Rva2VucyUzRDIwMCUyQyUwQSUyMCUyMCUyMCUyMHN0b3AlM0QlNUIlMjJPYnNlcnZhdGlvbiUzQSUyMiU1RCUyMCUyMyUyMERldGVuZyVDMyVBMW1vbm9zJTIwYW50ZXMlMjBkZSUyMHF1ZSUyMHNlJTIwbGxhbWUlMjBhJTIwY3VhbHF1aWVyJTIwZnVuY2klQzMlQjNuJTBBKSUwQSUwQXByaW50KG91dHB1dCk=",highlighted:`output = client.text_generation(
    prompt,
    max_new_tokens=<span class="hljs-number">200</span>,
    stop=[<span class="hljs-string">&quot;Observation:&quot;</span>] <span class="hljs-comment"># Detengámonos antes de que se llame a cualquier función</span>
)

<span class="hljs-built_in">print</span>(output)`,wrap:!1}}),rs=new y({props:{code:"QWN0aW9uJTNBJTBBJTYwJTYwJTYwJTBBJTdCJTBBJTIwJTIwJTIyYWN0aW9uJTIyJTNBJTIwJTIyZ2V0X3dlYXRoZXIlMjIlMkMlMEElMjAlMjAlMjJhY3Rpb25faW5wdXQlMjIlM0ElMjAlN0IlMjJsb2NhdGlvbiUyMiUzQSUyMCUyMkxvbmRvbiUyMiU3RCUwQSU3RCUwQSU2MCU2MCU2MCUwQVRob3VnaHQlM0ElMjBJJTIwd2lsbCUyMGNoZWNrJTIwdGhlJTIwd2VhdGhlciUyMGluJTIwTG9uZG9uLiUwQU9ic2VydmF0aW9uJTNB",highlighted:`Action:
\`\`\`
{
  <span class="hljs-string">&quot;action&quot;</span>: <span class="hljs-string">&quot;get_weather&quot;</span>,
  <span class="hljs-string">&quot;action_input&quot;</span>: {<span class="hljs-string">&quot;location&quot;</span>: <span class="hljs-string">&quot;London&quot;</span>}
}
\`\`\`
Thought: I will<span class="hljs-built_in"> check </span>the weather in London.
Observation:`,wrap:!1}}),us=new y({props:{code:"JTIzJTIwRnVuY2klQzMlQjNuJTIwZHVtbXklMEFkZWYlMjBnZXRfd2VhdGhlcihsb2NhdGlvbiklM0ElMEElMjAlMjAlMjAlMjByZXR1cm4lMjBmJTIydGhlJTIwd2VhdGhlciUyMGluJTIwJTdCbG9jYXRpb24lN0QlMjBpcyUyMHN1bm55JTIwd2l0aCUyMGxvdyUyMHRlbXBlcmF0dXJlcy4lMjAlNUNuJTIyJTBBJTBBZ2V0X3dlYXRoZXIoJ0xvbmRvbicp",highlighted:`<span class="hljs-comment"># Función dummy</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_weather</span>(<span class="hljs-params">location</span>):
    <span class="hljs-keyword">return</span> <span class="hljs-string">f&quot;the weather in <span class="hljs-subst">{location}</span> is sunny with low temperatures. \\n&quot;</span>

get_weather(<span class="hljs-string">&#x27;London&#x27;</span>)`,wrap:!1}}),hs=new y({props:{code:"J3RoZSUyMHdlYXRoZXIlMjBpbiUyMExvbmRvbiUyMGlzJTIwc3VubnklMjB3aXRoJTIwbG93JTIwdGVtcGVyYXR1cmVzLiUyMCU1Q24n",highlighted:'<span class="hljs-symbol">&#x27;the</span> weather <span class="hljs-keyword">in</span> London <span class="hljs-keyword">is</span> sunny <span class="hljs-keyword">with</span> low temperatures. \\n&#x27;',wrap:!1}}),ys=new y({props:{code:"bmV3X3Byb21wdCUyMCUzRCUyMHByb21wdCUyMCUyQiUyMG91dHB1dCUyMCUyQiUyMGdldF93ZWF0aGVyKCdMb25kb24nKSUwQWZpbmFsX291dHB1dCUyMCUzRCUyMGNsaWVudC50ZXh0X2dlbmVyYXRpb24oJTBBJTIwJTIwJTIwJTIwbmV3X3Byb21wdCUyQyUwQSUyMCUyMCUyMCUyMG1heF9uZXdfdG9rZW5zJTNEMjAwJTJDJTBBKSUwQSUwQXByaW50KGZpbmFsX291dHB1dCk=",highlighted:`new_prompt = prompt + output + get_weather(<span class="hljs-string">&#x27;London&#x27;</span>)
final_output = client.text_generation(
    new_prompt,
    max_new_tokens=<span class="hljs-number">200</span>,
)

<span class="hljs-built_in">print</span>(final_output)`,wrap:!1}}),ws=new y({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKHRoaXMlMjBUaG91Z2h0JTJGQWN0aW9uJTJGT2JzZXJ2YXRpb24lMjBjYW4lMjByZXBlYXQlMjBOJTIwdGltZXMlMkMlMjB5b3UlMjBzaG91bGQlMjB0YWtlJTIwc2V2ZXJhbCUyMHN0ZXBzJTIwd2hlbiUyMG5lZWRlZC4lMjBUaGUlMjAlMjRKU09OX0JMT0IlMjBtdXN0JTIwYmUlMjBmb3JtYXR0ZWQlMjBhcyUyMG1hcmtkb3duJTIwYW5kJTIwb25seSUyMHVzZSUyMGElMjBTSU5HTEUlMjBhY3Rpb24lMjBhdCUyMGElMjB0aW1lLiklMEElMEElMEElMEE=",highlighted:`&lt;|<span class="hljs-type">begin_of_text</span>|<span class="hljs-type">&gt;&lt;|start_header_id</span>|<span class="hljs-type">&gt;system</span>&lt;|<span class="hljs-type">end_header_id</span>|<span class="hljs-type">&gt;
    Responde</span> las siguientes preguntas lo mejor que puedas. Tienes acceso a las siguientes herramientas:

get_weather: Obtener el clima actual en una ubicación dada

La forma en que usas las herramientas es especificando un blob json.
Specifically, this json should have an \`action\` key (<span class="hljs-built_in">with</span> the name of the tool to use) and a \`action_input\` key (<span class="hljs-built_in">with</span> the input to the tool going here).

The only values that should be <span class="hljs-built_in">in</span> the <span class="hljs-string">&quot;action&quot;</span> <span class="hljs-built_in">field</span> are:
get_weather: Obtener el clima actual en una ubicación dada, args: {<span class="hljs-string">&quot;location&quot;</span>: {<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>}}
example use : 

{{
  <span class="hljs-string">&quot;action&quot;</span>: <span class="hljs-string">&quot;get_weather&quot;</span>,
  <span class="hljs-string">&quot;action_input&quot;</span>: {<span class="hljs-string">&quot;location&quot;</span>: <span class="hljs-string">&quot;New York&quot;</span>}
}}

ALWAYS use the following format:

Question: the input question you must answer
Thought: you should always think about one action to take. Only one action <span class="hljs-built_in">at</span> a <span class="hljs-built_in">time</span> <span class="hljs-built_in">in</span> this format:
Action:

$JSON_BLOB (inside markdown cell)

Observation: the result of the action. This Observation is unique, complete, and the source of truth.
... (this Thought/Action/Observation can <span class="hljs-built_in">repeat</span> N times, you should take several steps when needed. The $JSON_BLOB must be formatted <span class="hljs-built_in">as</span> markdown and only use a SINGLE action <span class="hljs-built_in">at</span> a <span class="hljs-built_in">time</span>.)

You must always <span class="hljs-keyword">end</span> your output <span class="hljs-built_in">with</span> the following format:

Thought: I now know the final answer
Final Answer: the final answer to the original input question

Now begin! Reminder to ALWAYS use the <span class="hljs-built_in">exact</span> characters \`Final Answer:\` when you provide a definitive answer. 
&lt;|<span class="hljs-type">eot_id</span>|<span class="hljs-type">&gt;&lt;|start_header_id</span>|<span class="hljs-type">&gt;user</span>&lt;|<span class="hljs-type">end_header_id</span>|<span class="hljs-type">&gt;
What</span>&#x27;s the weather <span class="hljs-built_in">in</span> London ?
&lt;|<span class="hljs-type">eot_id</span>|<span class="hljs-type">&gt;&lt;|start_header_id</span>|<span class="hljs-type">&gt;assistant</span>&lt;|<span class="hljs-type">end_header_id</span>|<span class="hljs-type">&gt;

Action</span>:
\`\`\`
{
  <span class="hljs-string">&quot;action&quot;</span>: <span class="hljs-string">&quot;get_weather&quot;</span>,
  <span class="hljs-string">&quot;action_input&quot;</span>: {<span class="hljs-string">&quot;location&quot;</span>: {<span class="hljs-string">&quot;type&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>, <span class="hljs-string">&quot;value&quot;</span>: <span class="hljs-string">&quot;London&quot;</span>}
}
\`\`\`
Thought: I will check the weather <span class="hljs-built_in">in</span> London.
Observation:the weather <span class="hljs-built_in">in</span> London is sunny <span class="hljs-built_in">with</span> low temperatures. `,wrap:!1}}),Js=new y({props:{code:"RmluYWwlMjBBbnN3ZXIlM0ElMjBUaGUlMjB3ZWF0aGVyJTIwaW4lMjBMb25kb24lMjBpcyUyMHN1bm55JTIwd2l0aCUyMGxvdyUyMHRlbXBlcmF0dXJlcy4=",highlighted:'<span class="hljs-keyword">Final</span> Answer: The weather <span class="hljs-keyword">in</span> London <span class="hljs-keyword">is</span> sunny <span class="hljs-keyword">with</span> low temperatures.',wrap:!1}}),Us=new va({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/es/unit1/dummy-agent-library.mdx"}}),{c(){m=p("meta"),Bs=l(),fs=p("p"),ks=l(),r(w.$$.fragment),Is=l(),j=p("img"),Gs=l(),J=p("p"),J.innerHTML=Ee,_s=l(),T=p("p"),T.textContent=Re,vs=l(),b=p("p"),b.textContent=Fe,Cs=l(),U=p("p"),U.innerHTML=Qe,$s=l(),f=p("p"),f.innerHTML=We,qs=l(),g=p("p"),g.innerHTML=ze,Zs=l(),B=p("p"),B.textContent=Ae,Ns=l(),k=p("p"),k.innerHTML=He,Xs=l(),I=p("p"),I.innerHTML=Se,xs=l(),r(G.$$.fragment),Vs=l(),_=p("p"),_.textContent=Le,Ys=l(),r(v.$$.fragment),Es=l(),r(C.$$.fragment),Rs=l(),$=p("p"),$.textContent=Pe,Fs=l(),r(q.$$.fragment),Qs=l(),Z=p("p"),Z.innerHTML=Oe,Ws=l(),N=p("p"),N.innerHTML=De,zs=l(),r(X.$$.fragment),As=l(),x=p("p"),x.textContent=Ke,Hs=l(),r(V.$$.fragment),Ss=l(),Y=p("p"),Y.textContent=sa,Ls=l(),r(E.$$.fragment),Ps=l(),R=p("p"),R.textContent=ea,Os=l(),r(F.$$.fragment),Ds=l(),Q=p("p"),Q.textContent=aa,Ks=l(),r(W.$$.fragment),se=l(),z=p("p"),z.textContent=ta,ee=l(),A=p("p"),A.textContent=la,ae=l(),H=p("ol"),H.innerHTML=na,te=l(),r(S.$$.fragment),le=l(),L=p("p"),L.textContent=pa,ne=l(),r(P.$$.fragment),pe=l(),O=p("p"),O.innerHTML=oa,oe=l(),r(D.$$.fragment),ie=l(),K=p("p"),K.textContent=ia,re=l(),r(ss.$$.fragment),ce=l(),es=p("p"),es.textContent=ra,ue=l(),r(as.$$.fragment),de=l(),ts=p("p"),ts.textContent=ca,he=l(),r(ls.$$.fragment),Me=l(),ns=p("p"),ns.textContent=ua,ye=l(),ps=p("blockquote"),ps.innerHTML=da,me=l(),r(os.$$.fragment),we=l(),is=p("p"),is.textContent=ha,je=l(),r(rs.$$.fragment),Je=l(),cs=p("p"),cs.textContent=Ma,Te=l(),r(us.$$.fragment),be=l(),ds=p("p"),ds.textContent=ya,Ue=l(),r(hs.$$.fragment),fe=l(),Ms=p("p"),Ms.textContent=ma,ge=l(),r(ys.$$.fragment),Be=l(),ms=p("p"),ms.textContent=wa,ke=l(),r(ws.$$.fragment),Ie=l(),js=p("p"),js.textContent=ja,Ge=l(),r(Js.$$.fragment),_e=l(),ve=p("hr"),Ce=l(),Ts=p("p"),Ts.innerHTML=Ja,$e=l(),bs=p("p"),bs.innerHTML=Ta,qe=l(),r(Us.$$.fragment),Ze=l(),gs=p("p"),this.h()},l(s){const e=Ga("svelte-u9bgzb",document.head);m=o(e,"META",{name:!0,content:!0}),e.forEach(a),Bs=n(s),fs=o(s,"P",{}),ba(fs).forEach(a),ks=n(s),c(w.$$.fragment,s),Is=n(s),j=o(s,"IMG",{src:!0,alt:!0}),Gs=n(s),J=o(s,"P",{"data-svelte-h":!0}),i(J)!=="svelte-1d2q3yw"&&(J.innerHTML=Ee),_s=n(s),T=o(s,"P",{"data-svelte-h":!0}),i(T)!=="svelte-1nrpj6p"&&(T.textContent=Re),vs=n(s),b=o(s,"P",{"data-svelte-h":!0}),i(b)!=="svelte-enpwm8"&&(b.textContent=Fe),Cs=n(s),U=o(s,"P",{"data-svelte-h":!0}),i(U)!=="svelte-1ddtds1"&&(U.innerHTML=Qe),$s=n(s),f=o(s,"P",{"data-svelte-h":!0}),i(f)!=="svelte-k9lvw4"&&(f.innerHTML=We),qs=n(s),g=o(s,"P",{"data-svelte-h":!0}),i(g)!=="svelte-r4c6ge"&&(g.innerHTML=ze),Zs=n(s),B=o(s,"P",{"data-svelte-h":!0}),i(B)!=="svelte-1o7j9ag"&&(B.textContent=Ae),Ns=n(s),k=o(s,"P",{"data-svelte-h":!0}),i(k)!=="svelte-1jlr598"&&(k.innerHTML=He),Xs=n(s),I=o(s,"P",{"data-svelte-h":!0}),i(I)!=="svelte-h13sex"&&(I.innerHTML=Se),xs=n(s),c(G.$$.fragment,s),Vs=n(s),_=o(s,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1kbhxl2"&&(_.textContent=Le),Ys=n(s),c(v.$$.fragment,s),Es=n(s),c(C.$$.fragment,s),Rs=n(s),$=o(s,"P",{"data-svelte-h":!0}),i($)!=="svelte-1wueeet"&&($.textContent=Pe),Fs=n(s),c(q.$$.fragment,s),Qs=n(s),Z=o(s,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-1mgnk9m"&&(Z.innerHTML=Oe),Ws=n(s),N=o(s,"P",{"data-svelte-h":!0}),i(N)!=="svelte-c48qda"&&(N.innerHTML=De),zs=n(s),c(X.$$.fragment,s),As=n(s),x=o(s,"P",{"data-svelte-h":!0}),i(x)!=="svelte-1wueeet"&&(x.textContent=Ke),Hs=n(s),c(V.$$.fragment,s),Ss=n(s),Y=o(s,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-109qg3j"&&(Y.textContent=sa),Ls=n(s),c(E.$$.fragment,s),Ps=n(s),R=o(s,"P",{"data-svelte-h":!0}),i(R)!=="svelte-1wueeet"&&(R.textContent=ea),Os=n(s),c(F.$$.fragment,s),Ds=n(s),Q=o(s,"P",{"data-svelte-h":!0}),i(Q)!=="svelte-6ilcou"&&(Q.textContent=aa),Ks=n(s),c(W.$$.fragment,s),se=n(s),z=o(s,"P",{"data-svelte-h":!0}),i(z)!=="svelte-wz6a72"&&(z.textContent=ta),ee=n(s),A=o(s,"P",{"data-svelte-h":!0}),i(A)!=="svelte-ne4xwt"&&(A.textContent=la),ae=n(s),H=o(s,"OL",{"data-svelte-h":!0}),i(H)!=="svelte-xgl3hh"&&(H.innerHTML=na),te=n(s),c(S.$$.fragment,s),le=n(s),L=o(s,"P",{"data-svelte-h":!0}),i(L)!=="svelte-1dddrbq"&&(L.textContent=pa),ne=n(s),c(P.$$.fragment,s),pe=n(s),O=o(s,"P",{"data-svelte-h":!0}),i(O)!=="svelte-372p0o"&&(O.innerHTML=oa),oe=n(s),c(D.$$.fragment,s),ie=n(s),K=o(s,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1f9zat0"&&(K.textContent=ia),re=n(s),c(ss.$$.fragment,s),ce=n(s),es=o(s,"P",{"data-svelte-h":!0}),i(es)!=="svelte-tkd20e"&&(es.textContent=ra),ue=n(s),c(as.$$.fragment,s),de=n(s),ts=o(s,"P",{"data-svelte-h":!0}),i(ts)!=="svelte-1wueeet"&&(ts.textContent=ca),he=n(s),c(ls.$$.fragment,s),Me=n(s),ns=o(s,"P",{"data-svelte-h":!0}),i(ns)!=="svelte-1r014x1"&&(ns.textContent=ua),ye=n(s),ps=o(s,"BLOCKQUOTE",{"data-svelte-h":!0}),i(ps)!=="svelte-1ezzana"&&(ps.innerHTML=da),me=n(s),c(os.$$.fragment,s),we=n(s),is=o(s,"P",{"data-svelte-h":!0}),i(is)!=="svelte-1wueeet"&&(is.textContent=ha),je=n(s),c(rs.$$.fragment,s),Je=n(s),cs=o(s,"P",{"data-svelte-h":!0}),i(cs)!=="svelte-1roq5vm"&&(cs.textContent=Ma),Te=n(s),c(us.$$.fragment,s),be=n(s),ds=o(s,"P",{"data-svelte-h":!0}),i(ds)!=="svelte-1wueeet"&&(ds.textContent=ya),Ue=n(s),c(hs.$$.fragment,s),fe=n(s),Ms=o(s,"P",{"data-svelte-h":!0}),i(Ms)!=="svelte-1t8c5sc"&&(Ms.textContent=ma),ge=n(s),c(ys.$$.fragment,s),Be=n(s),ms=o(s,"P",{"data-svelte-h":!0}),i(ms)!=="svelte-2kvhhl"&&(ms.textContent=wa),ke=n(s),c(ws.$$.fragment,s),Ie=n(s),js=o(s,"P",{"data-svelte-h":!0}),i(js)!=="svelte-1wuxk0l"&&(js.textContent=ja),Ge=n(s),c(Js.$$.fragment,s),_e=n(s),ve=o(s,"HR",{}),Ce=n(s),Ts=o(s,"P",{"data-svelte-h":!0}),i(Ts)!=="svelte-1aggjcu"&&(Ts.innerHTML=Ja),$e=n(s),bs=o(s,"P",{"data-svelte-h":!0}),i(bs)!=="svelte-1byv1dr"&&(bs.innerHTML=Ta),qe=n(s),c(Us.$$.fragment,s),Ze=n(s),gs=o(s,"P",{}),ba(gs).forEach(a),this.h()},h(){Xe(m,"name","hf:doc:metadata"),Xe(m,"content",$a),fa(j.src,Ye="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/whiteboard-unit1sub3DONE.jpg")||Xe(j,"src",Ye),Xe(j,"alt","Unit 1 planning")},m(s,e){_a(document.head,m),t(s,Bs,e),t(s,fs,e),t(s,ks,e),u(w,s,e),t(s,Is,e),t(s,j,e),t(s,Gs,e),t(s,J,e),t(s,_s,e),t(s,T,e),t(s,vs,e),t(s,b,e),t(s,Cs,e),t(s,U,e),t(s,$s,e),t(s,f,e),t(s,qs,e),t(s,g,e),t(s,Zs,e),t(s,B,e),t(s,Ns,e),t(s,k,e),t(s,Xs,e),t(s,I,e),t(s,xs,e),u(G,s,e),t(s,Vs,e),t(s,_,e),t(s,Ys,e),u(v,s,e),t(s,Es,e),u(C,s,e),t(s,Rs,e),t(s,$,e),t(s,Fs,e),u(q,s,e),t(s,Qs,e),t(s,Z,e),t(s,Ws,e),t(s,N,e),t(s,zs,e),u(X,s,e),t(s,As,e),t(s,x,e),t(s,Hs,e),u(V,s,e),t(s,Ss,e),t(s,Y,e),t(s,Ls,e),u(E,s,e),t(s,Ps,e),t(s,R,e),t(s,Os,e),u(F,s,e),t(s,Ds,e),t(s,Q,e),t(s,Ks,e),u(W,s,e),t(s,se,e),t(s,z,e),t(s,ee,e),t(s,A,e),t(s,ae,e),t(s,H,e),t(s,te,e),u(S,s,e),t(s,le,e),t(s,L,e),t(s,ne,e),u(P,s,e),t(s,pe,e),t(s,O,e),t(s,oe,e),u(D,s,e),t(s,ie,e),t(s,K,e),t(s,re,e),u(ss,s,e),t(s,ce,e),t(s,es,e),t(s,ue,e),u(as,s,e),t(s,de,e),t(s,ts,e),t(s,he,e),u(ls,s,e),t(s,Me,e),t(s,ns,e),t(s,ye,e),t(s,ps,e),t(s,me,e),u(os,s,e),t(s,we,e),t(s,is,e),t(s,je,e),u(rs,s,e),t(s,Je,e),t(s,cs,e),t(s,Te,e),u(us,s,e),t(s,be,e),t(s,ds,e),t(s,Ue,e),u(hs,s,e),t(s,fe,e),t(s,Ms,e),t(s,ge,e),u(ys,s,e),t(s,Be,e),t(s,ms,e),t(s,ke,e),u(ws,s,e),t(s,Ie,e),t(s,js,e),t(s,Ge,e),u(Js,s,e),t(s,_e,e),t(s,ve,e),t(s,Ce,e),t(s,Ts,e),t(s,$e,e),t(s,bs,e),t(s,qe,e),u(Us,s,e),t(s,Ze,e),t(s,gs,e),Ne=!0},p:ga,i(s){Ne||(d(w.$$.fragment,s),d(G.$$.fragment,s),d(v.$$.fragment,s),d(C.$$.fragment,s),d(q.$$.fragment,s),d(X.$$.fragment,s),d(V.$$.fragment,s),d(E.$$.fragment,s),d(F.$$.fragment,s),d(W.$$.fragment,s),d(S.$$.fragment,s),d(P.$$.fragment,s),d(D.$$.fragment,s),d(ss.$$.fragment,s),d(as.$$.fragment,s),d(ls.$$.fragment,s),d(os.$$.fragment,s),d(rs.$$.fragment,s),d(us.$$.fragment,s),d(hs.$$.fragment,s),d(ys.$$.fragment,s),d(ws.$$.fragment,s),d(Js.$$.fragment,s),d(Us.$$.fragment,s),Ne=!0)},o(s){h(w.$$.fragment,s),h(G.$$.fragment,s),h(v.$$.fragment,s),h(C.$$.fragment,s),h(q.$$.fragment,s),h(X.$$.fragment,s),h(V.$$.fragment,s),h(E.$$.fragment,s),h(F.$$.fragment,s),h(W.$$.fragment,s),h(S.$$.fragment,s),h(P.$$.fragment,s),h(D.$$.fragment,s),h(ss.$$.fragment,s),h(as.$$.fragment,s),h(ls.$$.fragment,s),h(os.$$.fragment,s),h(rs.$$.fragment,s),h(us.$$.fragment,s),h(hs.$$.fragment,s),h(ys.$$.fragment,s),h(ws.$$.fragment,s),h(Js.$$.fragment,s),h(Us.$$.fragment,s),Ne=!1},d(s){s&&(a(Bs),a(fs),a(ks),a(Is),a(j),a(Gs),a(J),a(_s),a(T),a(vs),a(b),a(Cs),a(U),a($s),a(f),a(qs),a(g),a(Zs),a(B),a(Ns),a(k),a(Xs),a(I),a(xs),a(Vs),a(_),a(Ys),a(Es),a(Rs),a($),a(Fs),a(Qs),a(Z),a(Ws),a(N),a(zs),a(As),a(x),a(Hs),a(Ss),a(Y),a(Ls),a(Ps),a(R),a(Os),a(Ds),a(Q),a(Ks),a(se),a(z),a(ee),a(A),a(ae),a(H),a(te),a(le),a(L),a(ne),a(pe),a(O),a(oe),a(ie),a(K),a(re),a(ce),a(es),a(ue),a(de),a(ts),a(he),a(Me),a(ns),a(ye),a(ps),a(me),a(we),a(is),a(je),a(Je),a(cs),a(Te),a(be),a(ds),a(Ue),a(fe),a(Ms),a(ge),a(Be),a(ms),a(ke),a(Ie),a(js),a(Ge),a(_e),a(ve),a(Ce),a(Ts),a($e),a(bs),a(qe),a(Ze),a(gs)),a(m),M(w,s),M(G,s),M(v,s),M(C,s),M(q,s),M(X,s),M(V,s),M(E,s),M(F,s),M(W,s),M(S,s),M(P,s),M(D,s),M(ss,s),M(as,s),M(ls,s),M(os,s),M(rs,s),M(us,s),M(hs,s),M(ys,s),M(ws,s),M(Js,s),M(Us,s)}}}const $a='{"title":"Biblioteca de Agente de Prueba","local":"biblioteca-de-agente-de-prueba","sections":[{"title":"API Serverless","local":"api-serverless","sections":[],"depth":2},{"title":"Agente de Prueba","local":"agente-de-prueba","sections":[],"depth":2}],"depth":1}';function qa(Ve){return Ba(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ya extends ka{constructor(m){super(),Ia(this,m,qa,Ca,Ua,{})}}export{Ya as component};
