import{s as zl,f as Vl,n as _l,o as ql}from"../chunks/scheduler.37c15a92.js";import{S as Xl,i as Nl,g as p,s as a,r,A as Rl,h as o,f as l,c as n,j as Zl,u,x as i,k as Fe,y as El,a as t,v as c,d,t as M,w as y}from"../chunks/index.2bf4358c.js";import{C as w}from"../chunks/CodeBlock.4e987730.js";import{H as Le}from"../chunks/Heading.8ada512a.js";import{E as Yl}from"../chunks/getInferenceSnippets.d4d07d1e.js";function Sl(Ae){let j,$s,gs,Qs,m,Gs,h,He,Cs,J,Pe="Ce cours est indépendant de tout framework car nous souhaitons <strong>nous concentrer sur les concepts des agents d’IA et éviter de nous enliser dans les spécificités d’un framework particulier</strong>.",Zs,T,Oe="De plus, nous voulons que les étudiants puissent utiliser les concepts qu’ils apprennent dans ce cours dans leurs propres projets, en utilisant le framework de leur choix.",zs,f,De="Ainsi, pour cette Unité 1, nous utiliserons une bibliothèque d’agents factices et une API serverless simple pour accéder à notre moteur LLM.",Vs,U,Ke="Vous n’utiliseriez probablement pas ces outils en production, mais ils serviront de bon <strong>point de départ pour comprendre le fonctionnement des agents</strong>.",_s,k,sl="Après cette section, vous serez prêt à <strong>créer un agent simple</strong> en utilisant <code>smolagents</code>",qs,b,el="Et dans les unités suivantes, nous utiliserons également d’autres bibliothèques d’agents d’IA telles que <code>LangGraph</code>, <code>LangChain</code> et <code>LlamaIndex</code>.",Xs,B,ll="Pour simplifier, nous utiliserons une fonction Python simple comme Tool et Agent.",Ns,v,tl="Nous utiliserons des packages intégrés de Python tels que <code>datetime</code> et <code>os</code> afin que vous puissiez l’essayer dans n’importe quel environnement.",Rs,x,al='Vous pouvez suivre le processus <a href="https://huggingface.co/agents-course/notebooks/blob/main/dummy_agent_library.ipynb" rel="nofollow">dans ce notebook</a> et <strong>exécuter le code vous-même</strong>.',Es,g,Ys,I,nl="Dans l’écosystème Hugging Face, il existe une fonctionnalité pratique appelée API serverless qui vous permet d’exécuter facilement des inférences sur de nombreux modèles. Aucune installation ou déploiement n’est requis.",Ss,$,Ws,Q,Fs,G,pl="output:",Ls,C,As,Z,ol="Comme nous l’avons vu dans la section LLM, si nous faisons simplement du décodage, <strong>le modèle s’arrêtera uniquement lorsqu’il prédit un token EOS</strong>, et cela ne se produit pas ici car il s’agit d’un modèle conversationnel (chat) et <strong>nous n’avons pas appliqué le template de chat attendu</strong>.",Hs,z,il='Si nous ajoutons maintenant les tokens spéciaux relatifs au <a href="https://huggingface.co/meta-llama/Llama-3.2-3B-Instruct" rel="nofollow">modèle Llama-3.2-3B-Instruct</a> que nous utilisons, le comportement change et il produit désormais le token EOS attendu.',Ps,V,Os,_,rl="output:",Ds,q,Ks,X,ul="Utiliser la méthode “chat” est une façon bien plus pratique et fiable d’appliquer les templates de chat :",se,N,ee,R,cl="output:",le,E,te,Y,dl="La méthode de chat est la méthode <strong>RECOMMANDÉE</strong> à utiliser afin d’assurer une transition fluide entre les modèles, mais comme ce notebook est uniquement à des fins pédagogiques, nous continuerons à utiliser la méthode “text_generation” pour comprendre les détails.",ae,S,ne,W,Ml="Dans les sections précédentes, nous avons vu que le cœur d’une bibliothèque d’agents consiste à ajouter des informations dans le prompt système.",pe,F,yl="Ce prompt système est un peu plus complexe que celui que nous avons vu précédemment, mais il contient déjà :",oe,L,wl="<li><strong>Informations sur les outils</strong></li> <li><strong>Instructions de cycle</strong> (Thought → Action → Observation)</li>",ie,A,re,H,jl="Puisque nous utilisons la méthode “text_generation”, nous devons appliquer le prompt manuellement:",ue,P,ce,O,ml="Nous pouvons également le faire ainsi, ce qui est ce qui se passe dans la méthode <code>chat</code> :",de,D,Me,K,hl="Le prompt est maintenant :",ye,ss,we,es,Jl="Décodons !",je,ls,me,ts,Tl="output:",he,as,Je,ns,fl=`{
“action”: “get_weather”,
“action_input”: {“location”: “London”}
}`,Te,ps,fe,os,Ul="Voyez-vous le problème ?",Ue,is,kl=`<p>La réponse a été hallucinée par le modèle. Nous devons arrêter avant d’exécuter réellement la fonction !
Arrêtons-nous maintenant sur “Observation” afin de ne pas halluciner la véritable réponse de la fonction.</p>`,ke,rs,be,us,bl="output:",Be,cs,ve,ds,Bl=`{
“action”: “get_weather”,
“action_input”: {“location”: “London”}
}`,xe,Ms,ge,ys,vl="Beaucoup mieux !",Ie,ws,xl="Créons maintenant une fonction factice pour obtenir la météo. Dans une situation réelle, vous appelleriez probablement une API.",$e,js,Qe,ms,gl="output:",Ge,hs,Ce,Js,Il="Concaténons le prompt de base, la complétion jusqu’à l’exécution de la fonction et le résultat de la fonction en tant qu’Observation, puis reprenons la génération.",Ze,Ts,ze,fs,$l="Voici le nouveau prompt:",Ve,Us,_e,ks,Ql="Output:",qe,bs,Xe,Ne,Re,Bs,Gl="Nous avons appris comment créer des Agents à partir de zéro en utilisant du code Python, et nous <strong>avons constaté à quel point ce processus peut être fastidieux</strong>. Heureusement, de nombreuses bibliothèques d’agents simplifient ce travail en prenant en charge la majeure partie de la charge de travail pour vous.",Ee,vs,Cl="Maintenant, nous sommes prêts <strong>à créer notre premier vrai Agent</strong> en utilisant la bibliothèque <code>smolagents</code>.",Ye,xs,Se,Is,We;return m=new Le({props:{title:"Bibliothèque d’Agents Factices",local:"bibliothèque-dagents-factices",headingTag:"h1"}}),g=new Le({props:{title:"API serverless",local:"api-serverless",headingTag:"h2"}}),$=new w({props:{code:"aW1wb3J0JTIwb3MlMEFmcm9tJTIwaHVnZ2luZ2ZhY2VfaHViJTIwaW1wb3J0JTIwSW5mZXJlbmNlQ2xpZW50JTBBJTBBJTIzJTIzJTIwVm91cyUyMGF2ZXolMjBiZXNvaW4lMjBkJ3VuJTIwdG9rZW4lMjBkZXB1aXMlMjBodHRwcyUzQSUyRiUyRmhmLmNvJTJGc2V0dGluZ3MlMkZ0b2tlbnMuJTIwU2klMjB2b3VzJTIwZXglQzMlQTljdXRleiUyMGNlY2klMjBzdXIlMjBHb29nbGUlMjBDb2xhYiUyQyUyMHZvdXMlMjBwb3V2ZXolMjBsZSUyMGNvbmZpZ3VyZXIlMjBkYW5zJTIwbCdvbmdsZXQlMjAlMjJzZXR0aW5ncyUyMiUyMHNvdXMlMjAlMjJzZWNyZXRzJTIyLiUyMEFzc3VyZXotdm91cyUyMGRlJTIwbCdhcHBlbGVyJTIwJTIySEZfVE9LRU4lMjIlMEFvcy5lbnZpcm9uJTVCJTIySEZfVE9LRU4lMjIlNUQlMjAlM0QlMjAlMjJoZl94eHh4eHh4eHh4eHh4eCUyMiUwQSUwQWNsaWVudCUyMCUzRCUyMEluZmVyZW5jZUNsaWVudCglMjJtZXRhLWxsYW1hJTJGTGxhbWEtMy4yLTNCLUluc3RydWN0JTIyKSUwQSUyMyUyMHNpJTIwbGVzJTIwc29ydGllcyUyMGRlcyUyMGNlbGx1bGVzJTIwc3VpdmFudGVzJTIwc29udCUyMGluY29ycmVjdGVzJTJDJTIwbGUlMjBtb2QlQzMlQThsZSUyMGdyYXR1aXQlMjBwZXV0JTIwJUMzJUFBdHJlJTIwc3VyY2hhcmclQzMlQTkuJTIwVm91cyUyMHBvdXZleiUyMCVDMyVBOWdhbGVtZW50JTIwdXRpbGlzZXIlMjBjZSUyMHBvaW50JTIwZCdhY2MlQzMlQThzJTIwcHVibGljJTIwcXVpJTIwY29udGllbnQlMjBMbGFtYS0zLjItM0ItSW5zdHJ1Y3QlMEElMjMlMjBjbGllbnQlMjAlM0QlMjBJbmZlcmVuY2VDbGllbnQoJTIyaHR0cHMlM0ElMkYlMkZqYzI2bXdnMjI4bWtqOGR3LnVzLWVhc3QtMS5hd3MuZW5kcG9pbnRzLmh1Z2dpbmdmYWNlLmNsb3VkJTIyKQ==",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">## Vous avez besoin d&#x27;un token depuis https://hf.co/settings/tokens. Si vous exécutez ceci sur Google Colab, vous pouvez le configurer dans l&#x27;onglet &quot;settings&quot; sous &quot;secrets&quot;. Assurez-vous de l&#x27;appeler &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 les sorties des cellules suivantes sont incorrectes, le modèle gratuit peut être surchargé. Vous pouvez également utiliser ce point d&#x27;accès public qui contient 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}}),Q=new w({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}}),C=new w({props:{code:"UGFyaXMuJTIwTGElMjBjYXBpdGFsZSUyMGRlJTIwbGElMjBGcmFuY2UlMjBlc3QlMjBQYXJpcy4lMjBMYSUyMGNhcGl0YWxlJTIwZGUlMjBsYSUyMEZyYW5jZSUyMGVzdCUyMFBhcmlzLiUyMExhJTIwY2FwaXRhbGUlMjBkZSUyMGxhJTIwRnJhbmNlJTIwZXN0JTIwUGFyaXMuJTIwTGElMjBjYXBpdGFsZSUyMGRlJTIwbGElMjBGcmFuY2UlMjBlc3QlMjBQYXJpcy4lMjBMYSUyMGNhcGl0YWxlJTIwZGUlMjBsYSUyMEZyYW5jZSUyMGVzdCUyMFBhcmlzLiUyMExhJTIwY2FwaXRhbGUlMjBkZSUyMGxhJTIwRnJhbmNlJTIwZXN0JTIwUGFyaXMuJTIwTGElMjBjYXBpdGFsZSUyMGRlJTIwbGElMjBGcmFuY2UlMjBlc3QlMjBQYXJpcy4lMjBMYSUyMGNhcGl0YWxlJTIwZGUlMjBsYSUyMEZyYW5jZSUyMGVzdCUyMFBhcmlzLiUyMExhJTIwY2FwaXRhbGUlMjBkZSUyMGxhJTIwRnJhbmNlJTIwZXN0JTIwUGFyaXMuJTIwTGElMjBjYXBpdGFsZSUyMGRlJTIwbGElMjBGcmFuY2UlMjBlc3QlMjBQYXJpcy4lMjBMYSUyMGNhcGl0YWxlJTIwZGUlMjBsYSUyMEZyYW5jZSUyMGVzdCUyMFBhcmlzLiUyMExhJTIwY2FwaXRhbGUlMjBkZSUyMGxhJTIwRnJhbmNlJTIwZXN0JTIwUGFyaXMuJTIwTGElMjBjYXBpdGFsZSUyMGRlJTIwbGElMjBGcmFuY2UlMjBlc3QlMjBQYXJpcy4=",highlighted:'Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris. <span class="hljs-keyword">La</span> capitale <span class="hljs-keyword">de</span> <span class="hljs-keyword">la</span> France <span class="hljs-keyword">est</span> Paris.',wrap:!1}}),V=new w({props:{code:"cHJvbXB0JTIwJTNEJTIwJTIyJTIyJTIyJTNDJTdDYmVnaW5fb2ZfdGV4dCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRXVzZXIlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBVGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlM0MlN0Nlb3RfaWQlN0MlM0UlM0MlN0NzdGFydF9oZWFkZXJfaWQlN0MlM0Vhc3Npc3RhbnQlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTIyJTIyJTIyJTBBb3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBtYXhfbmV3X3Rva2VucyUzRDEwMCUyQyUwQSklMEElMEFwcmludChvdXRwdXQp",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}}),q=new w({props:{code:"VGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4=",highlighted:'The capital of France <span class="hljs-keyword">is</span> Paris.',wrap:!1}}),N=new w({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LmNoYXQuY29tcGxldGlvbnMuY3JlYXRlKCUwQSUyMCUyMCUyMCUyMG1lc3NhZ2VzJTNEJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyTGElMjBjYXBpdGFsZSUyMGRlJTIwbGElMjBGcmFuY2UlMjBlc3QlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlNUQlMkMlMEElMjAlMjAlMjAlMjBzdHJlYW0lM0RGYWxzZSUyQyUwQSUyMCUyMCUyMCUyMG1heF90b2tlbnMlM0QxMDI0JTJDJTBBKSUwQXByaW50KG91dHB1dC5jaG9pY2VzJTVCMCU1RC5tZXNzYWdlLmNvbnRlbnQp",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;La capitale de la France est&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}}),E=new w({props:{code:"UGFyaXMu",highlighted:"Paris.",wrap:!1}}),S=new Le({props:{title:"Agent factice",local:"agent-factice",headingTag:"h2"}}),A=new w({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKGNlJTIwY3ljbGUlMjBSJUMzJUE5ZmxleGlvbiUyRkFjdGlvbiUyRk9ic2VydmF0aW9uJTIwcGV1dCUyMHNlJTIwciVDMyVBOXAlQzMlQTl0ZXIlMjBwbHVzaWV1cnMlMjBmb2lzJTJDJTIwdm91cyUyMGRldmV6JTIwZWZmZWN0dWVyJTIwcGx1c2lldXJzJTIwJUMzJUE5dGFwZXMlMjBzaSUyMG4lQzMlQTljZXNzYWlyZS4lMjBMZSUyMCUyNEpTT05fQkxPQiUyMGRvaXQlMjAlQzMlQUF0cmUlMjBmb3JtYXQlQzMlQTklMjBlbiUyMG1hcmtkb3duJTIwZXQlMjBuJ3V0aWxpc2VyJTIwcXUndW5lJTIwU0VVTEUlMjBhY3Rpb24lMjAlQzMlQTAlMjBsYSUyMGZvaXMuKSUwQSUwQSUwQQ==",highlighted:`Répondez du mieux <span class="hljs-keyword">que</span> vous pouvez aux questions suivantes. Vous avez accès aux outils suivants:

get_weather: Obtenez <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo actuelle dans un lieu donné

<span class="hljs-keyword">La</span> manière <span class="hljs-keyword">d</span>&#x27;utiliser les outils consiste à spécifier un blob JSON.
Plus <span class="hljs-keyword">pr</span>écisément, ce JSON doit contenir une <span class="hljs-keyword">cl</span>é \`action\` (avec le nom <span class="hljs-keyword">de</span> <span class="hljs-keyword">l</span>&#x27;outil à utiliser) et une <span class="hljs-keyword">cl</span>é \`action_input\` (avec <span class="hljs-keyword">l</span>&#x27;entré<span class="hljs-keyword">e</span> destiné<span class="hljs-keyword">e</span> à <span class="hljs-keyword">l</span>&#x27;outil).

Les seules valeurs <span class="hljs-keyword">qui</span> devraient figurer dans le champ <span class="hljs-string">&quot;action&quot;</span> sont:
get_weather: Obtenez <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo actuelle dans un lieu donné, <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>}}
exemple <span class="hljs-keyword">d</span>&#x27;utilisation : 

{{
  <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>}
}}

UTILISEZ TOUJOURS le <span class="hljs-keyword">format</span> suivant:

Question : <span class="hljs-keyword">la</span> question à laquelle vous devez répondre
Réflexion : vous devez toujours ré<span class="hljs-keyword">fl</span>échir à une action à entreprendre. Une seule action à <span class="hljs-keyword">la</span> fois dans ce <span class="hljs-keyword">format</span>:
Action:

<span class="hljs-variable">$JSON_BLOB</span> (dans une cellule markdown)

Observation : le résultat <span class="hljs-keyword">de</span> <span class="hljs-keyword">l</span>&#x27;action. Cette Observation <span class="hljs-keyword">est</span> unique, complè<span class="hljs-keyword">te</span> et constitue <span class="hljs-keyword">la</span> source <span class="hljs-keyword">de</span> vérité.
... (ce cycle Réflexion/Action/Observation peut <span class="hljs-keyword">se</span> répéter plusieurs fois, vous devez effectuer plusieurs étapes si <span class="hljs-keyword">n</span>écessaire. Le <span class="hljs-variable">$JSON_BLOB</span> doit être <span class="hljs-keyword">format</span>é <span class="hljs-keyword">en</span> markdown et <span class="hljs-keyword">n</span>&#x27;utiliser <span class="hljs-keyword">qu</span>&#x27;une SEULE action à <span class="hljs-keyword">la</span> fois.)

Vous devez toujours terminer votre sortie avec le <span class="hljs-keyword">format</span> suivant:

Réflexion : Je connais <span class="hljs-keyword">d</span>ésormais <span class="hljs-keyword">la</span> réponse finale
Final Answer: <span class="hljs-keyword">la</span> réponse finale à <span class="hljs-keyword">la</span> question <span class="hljs-keyword">d</span>&#x27;entré<span class="hljs-keyword">e</span> initiale

Commencez maintenant! Rappel: utilisez TOUJOURS exactement les caractères \`Final Answer:\` lorsque vous fournissez une réponse <span class="hljs-keyword">d</span>éfinitive.`,wrap:!1}}),P=new w({props:{code:"cHJvbXB0JTIwJTNEJTIwZiUyMiUyMiUyMiUzQyU3Q2JlZ2luX29mX3RleHQlN0MlM0UlM0MlN0NzdGFydF9oZWFkZXJfaWQlN0MlM0VzeXN0ZW0lM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBJTdCU1lTVEVNX1BST01QVCU3RCUwQSUzQyU3Q2VvdF9pZCU3QyUzRSUzQyU3Q3N0YXJ0X2hlYWRlcl9pZCU3QyUzRXVzZXIlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBUXVlbCUyMHRlbXBzJTIwZmFpdC1pbCUyMCVDMyVBMCUyMExvbmRyZXMlMjAlM0YlMEElM0MlN0Nlb3RfaWQlN0MlM0UlM0MlN0NzdGFydF9oZWFkZXJfaWQlN0MlM0Vhc3Npc3RhbnQlM0MlN0NlbmRfaGVhZGVyX2lkJTdDJTNFJTBBJTIyJTIyJTIy",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;
Quel temps fait-il à Londres ?
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;
&quot;&quot;&quot;</span>`,wrap:!1}}),D=new w({props:{code:"bWVzc2FnZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMFNZU1RFTV9QUk9NUFQlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjJRdWVsJTIwdGVtcHMlMjBmYWl0LWlsJTIwJUMzJUEwJTIwTG9uZHJlcyUyMCUzRiUyMiU3RCUyQyUwQSU1RCUwQWZyb20lMjB0cmFuc2Zvcm1lcnMlMjBpbXBvcnQlMjBBdXRvVG9rZW5pemVyJTBBdG9rZW5pemVyJTIwJTNEJTIwQXV0b1Rva2VuaXplci5mcm9tX3ByZXRyYWluZWQoJTIybWV0YS1sbGFtYSUyRkxsYW1hLTMuMi0zQi1JbnN0cnVjdCUyMiklMEElMEF0b2tlbml6ZXIuYXBwbHlfY2hhdF90ZW1wbGF0ZShtZXNzYWdlcyUyQyUyMHRva2VuaXplJTNERmFsc2UlMkMlMjBhZGRfZ2VuZXJhdGlvbl9wcm9tcHQlM0RUcnVlKQ==",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;Quel temps fait-il à Londres ?&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 w({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKGNlJTIwY3ljbGUlMjBSJUMzJUE5ZmxleGlvbiUyRkFjdGlvbiUyRk9ic2VydmF0aW9uJTIwcGV1dCUyMHNlJTIwciVDMyVBOXAlQzMlQTl0ZXIlMjBwbHVzaWV1cnMlMjBmb2lzJTJDJTIwdm91cyUyMGRldmV6JTIwZWZmZWN0dWVyJTIwcGx1c2lldXJzJTIwJUMzJUE5dGFwZXMlMjBzaSUyMG4lQzMlQTljZXNzYWlyZS4lMjBMZSUyMCUyNEpTT05fQkxPQiUyMGRvaXQlMjAlQzMlQUF0cmUlMjBmb3JtYXQlQzMlQTklMjBlbiUyMG1hcmtkb3duJTIwZXQlMjBuJ3V0aWxpc2VyJTIwcXUndW5lJTIwU0VVTEUlMjBhY3Rpb24lMjAlQzMlQTAlMjBsYSUyMGZvaXMuKSUwQSUwQSUwQQ==",highlighted:`&lt;|begin_of_text|&gt;&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;
Répondez du mieux <span class="hljs-keyword">que</span> vous pouvez aux questions suivantes. Vous avez accès aux outils suivants:

get_weather: Obtenez <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo actuelle dans un lieu donné

<span class="hljs-keyword">La</span> manière <span class="hljs-keyword">d</span>&#x27;utiliser les outils consiste à spécifier un blob JSON.
Plus <span class="hljs-keyword">pr</span>écisément, ce JSON doit contenir une <span class="hljs-keyword">cl</span>é \`action\` (avec le nom <span class="hljs-keyword">de</span> <span class="hljs-keyword">l</span>&#x27;outil à utiliser) et une <span class="hljs-keyword">cl</span>é \`action_input\` (avec <span class="hljs-keyword">l</span>&#x27;entré<span class="hljs-keyword">e</span> destiné<span class="hljs-keyword">e</span> à <span class="hljs-keyword">l</span>&#x27;outil).

Les seules valeurs <span class="hljs-keyword">qui</span> devraient figurer dans le champ <span class="hljs-string">&quot;action&quot;</span> sont:
get_weather: Obtenez <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo actuelle dans un lieu donné, <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>}}
exemple <span class="hljs-keyword">d</span>&#x27;utilisation : 

{{
  <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>}
}}

UTILISEZ TOUJOURS le <span class="hljs-keyword">format</span> suivant:

Question : <span class="hljs-keyword">la</span> question à laquelle vous devez répondre
Réflexion : vous devez toujours ré<span class="hljs-keyword">fl</span>échir à une action à entreprendre. Une seule action à <span class="hljs-keyword">la</span> fois dans ce <span class="hljs-keyword">format</span>:
Action:

<span class="hljs-variable">$JSON_BLOB</span> (dans une cellule markdown)

Observation : le résultat <span class="hljs-keyword">de</span> <span class="hljs-keyword">l</span>&#x27;action. Cette Observation <span class="hljs-keyword">est</span> unique, complè<span class="hljs-keyword">te</span> et constitue <span class="hljs-keyword">la</span> source <span class="hljs-keyword">de</span> vérité.
... (ce cycle Réflexion/Action/Observation peut <span class="hljs-keyword">se</span> répéter plusieurs fois, vous devez effectuer plusieurs étapes si <span class="hljs-keyword">n</span>écessaire. Le <span class="hljs-variable">$JSON_BLOB</span> doit être <span class="hljs-keyword">format</span>é <span class="hljs-keyword">en</span> markdown et <span class="hljs-keyword">n</span>&#x27;utiliser <span class="hljs-keyword">qu</span>&#x27;une SEULE action à <span class="hljs-keyword">la</span> fois.)

Vous devez toujours terminer votre sortie avec le <span class="hljs-keyword">format</span> suivant:

Réflexion : Je connais <span class="hljs-keyword">d</span>ésormais <span class="hljs-keyword">la</span> réponse finale
Final Answer: <span class="hljs-keyword">la</span> réponse finale à <span class="hljs-keyword">la</span> question <span class="hljs-keyword">d</span>&#x27;entré<span class="hljs-keyword">e</span> initiale

Commencez maintenant! Rappel: utilisez TOUJOURS exactement les caractères \`Final Answer:\` lorsque vous fournissez une réponse <span class="hljs-keyword">d</span>éfinitive.
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;
Quel temps fait-il à Londres ?
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;`,wrap:!1}}),ls=new w({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}}),as=new w({props:{code:"QWN0aW9uJTNB",highlighted:'<span class="hljs-symbol">Action:</span>',wrap:!1}}),ps=new w({props:{code:"UiVDMyVBOWZsZXhpb24lMjAlM0ElMjBKZSUyMHZhaXMlMjB2JUMzJUE5cmlmaWVyJTIwbGElMjBtJUMzJUE5dCVDMyVBOW8lMjAlQzMlQTAlMjBMb25kcmVzLiUwQU9ic2VydmF0aW9uJTIwJTNBJTIwTGElMjBtJUMzJUE5dCVDMyVBOW8lMjBhY3R1ZWxsZSUyMCVDMyVBMCUyMExvbmRyZXMlMjBlc3QlMjBwcmluY2lwYWxlbWVudCUyMG51YWdldXNlJTIwYXZlYyUyMHVuJTIwbWF4aW11bSUyMGRlJTIwMTIlQzIlQjBDJTIwZXQlMjB1biUyMG1pbmltdW0lMjBkZSUyMDglQzIlQjBDLg==",highlighted:`Réflexion : Je vais vérifier <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo à Londres.
Observation : <span class="hljs-keyword">La</span> <span class="hljs-keyword">m</span>étéo actuelle à Londres <span class="hljs-keyword">est</span> principalement nuageuse avec un maximum <span class="hljs-keyword">de</span> 12°C et un minimum <span class="hljs-keyword">de</span> 8°C.`,wrap:!1}}),rs=new w({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBtYXhfbmV3X3Rva2VucyUzRDIwMCUyQyUwQSUyMCUyMCUyMCUyMHN0b3AlM0QlNUIlMjJPYnNlcnZhdGlvbiUzQSUyMiU1RCUwQSklMEElMEFwcmludChvdXRwdXQp",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-built_in">print</span>(output)`,wrap:!1}}),cs=new w({props:{code:"QWN0aW9uJTNB",highlighted:'<span class="hljs-symbol">Action:</span>',wrap:!1}}),Ms=new w({props:{code:"UiVDMyVBOWZsZXhpb24lMjAlM0ElMjBKZSUyMHZhaXMlMjB2JUMzJUE5cmlmaWVyJTIwbGElMjBtJUMzJUE5dCVDMyVBOW8lMjAlQzMlQTAlMjBMb25kcmVzLiUwQU9ic2VydmF0aW9uJTNB",highlighted:`<span class="hljs-attribute">Réflexion</span><span class="hljs-punctuation"> :</span> <span class="hljs-string">Je vais vérifier la météo à Londres.</span>
<span class="hljs-attribute">Observation</span><span class="hljs-punctuation">:</span>`,wrap:!1}}),js=new w({props:{code:"JTIzJTIwRm9uY3Rpb24lMjBmYWN0aWNlJTBBZGVmJTIwZ2V0X3dlYXRoZXIobG9jYXRpb24pJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwZiUyMmxhJTIwbSVDMyVBOXQlQzMlQTlvJTIwJUMzJUEwJTIwJTdCbG9jYXRpb24lN0QlMjBlc3QlMjBlbnNvbGVpbGwlQzMlQTllJTIwYXZlYyUyMGRlcyUyMHRlbXAlQzMlQTlyYXR1cmVzJTIwYmFzc2VzLiUyMCU1Q24lMjIlMEElMEFnZXRfd2VhdGhlcignTG9uZG9uJyk=",highlighted:`<span class="hljs-comment"># Fonction factice</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;la météo à <span class="hljs-subst">{location}</span> est ensoleillée avec des températures basses. \\n&quot;</span>

get_weather(<span class="hljs-string">&#x27;London&#x27;</span>)`,wrap:!1}}),hs=new w({props:{code:"J2xhJTIwbSVDMyVBOXQlQzMlQTlvJTIwJUMzJUEwJTIwTG9uZG9uJTIwZXN0JTIwZW5zb2xlaWxsJUMzJUE5ZSUyMGF2ZWMlMjBkZXMlMjB0ZW1wJUMzJUE5cmF0dXJlcyUyMGJhc3Nlcy4lMjAlNUNuJw==",highlighted:'&#x27;<span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo à London <span class="hljs-keyword">est</span> ensoleillé<span class="hljs-keyword">e</span> avec <span class="hljs-keyword">des</span> températures basses. \\<span class="hljs-keyword">n</span>&#x27;',wrap:!1}}),Ts=new w({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}}),Us=new w({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKGNlJTIwY3ljbGUlMjBSJUMzJUE5ZmxleGlvbiUyRkFjdGlvbiUyRk9ic2VydmF0aW9uJTIwcGV1dCUyMHNlJTIwciVDMyVBOXAlQzMlQTl0ZXIlMjBwbHVzaWV1cnMlMjBmb2lzJTJDJTIwdm91cyUyMGRldmV6JTIwZWZmZWN0dWVyJTIwcGx1c2lldXJzJTIwJUMzJUE5dGFwZXMlMjBzaSUyMG4lQzMlQTljZXNzYWlyZS4lMjBMZSUyMCUyNEpTT05fQkxPQiUyMGRvaXQlMjAlQzMlQUF0cmUlMjBmb3JtYXQlQzMlQTklMjBlbiUyMG1hcmtkb3duJTIwZXQlMjBuJ3V0aWxpc2VyJTIwcXUndW5lJTIwU0VVTEUlMjBhY3Rpb24lMjAlQzMlQTAlMjBsYSUyMGZvaXMuKSUwQSUwQSUwQQ==",highlighted:`&lt;|begin_of_text|&gt;&lt;|start_header_id|&gt;system&lt;|end_header_id|&gt;
Répondez du mieux <span class="hljs-keyword">que</span> vous pouvez aux questions suivantes. Vous avez accès aux outils suivants:

get_weather: Obtenez <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo actuelle dans un lieu donné

<span class="hljs-keyword">La</span> manière <span class="hljs-keyword">d</span>&#x27;utiliser les outils consiste à spécifier un blob JSON.
Plus <span class="hljs-keyword">pr</span>écisément, ce JSON doit contenir une <span class="hljs-keyword">cl</span>é \`action\` (avec le nom <span class="hljs-keyword">de</span> <span class="hljs-keyword">l</span>&#x27;outil à utiliser) et une <span class="hljs-keyword">cl</span>é \`action_input\` (avec <span class="hljs-keyword">l</span>&#x27;entré<span class="hljs-keyword">e</span> destiné<span class="hljs-keyword">e</span> à <span class="hljs-keyword">l</span>&#x27;outil).

Les seules valeurs <span class="hljs-keyword">qui</span> devraient figurer dans le champ <span class="hljs-string">&quot;action&quot;</span> sont:
get_weather: Obtenez <span class="hljs-keyword">la</span> <span class="hljs-keyword">m</span>étéo actuelle dans un lieu donné, <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>}}
exemple <span class="hljs-keyword">d</span>&#x27;utilisation : 

{{
  <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>}
}}

UTILISEZ TOUJOURS le <span class="hljs-keyword">format</span> suivant:

Question : <span class="hljs-keyword">la</span> question à laquelle vous devez répondre
Réflexion : vous devez toujours ré<span class="hljs-keyword">fl</span>échir à une action à entreprendre. Une seule action à <span class="hljs-keyword">la</span> fois dans ce <span class="hljs-keyword">format</span>:
Action:

<span class="hljs-variable">$JSON_BLOB</span> (dans une cellule markdown)

Observation : le résultat <span class="hljs-keyword">de</span> <span class="hljs-keyword">l</span>&#x27;action. Cette Observation <span class="hljs-keyword">est</span> unique, complè<span class="hljs-keyword">te</span> et constitue <span class="hljs-keyword">la</span> source <span class="hljs-keyword">de</span> vérité.
... (ce cycle Réflexion/Action/Observation peut <span class="hljs-keyword">se</span> répéter plusieurs fois, vous devez effectuer plusieurs étapes si <span class="hljs-keyword">n</span>écessaire. Le <span class="hljs-variable">$JSON_BLOB</span> doit être <span class="hljs-keyword">format</span>é <span class="hljs-keyword">en</span> markdown et <span class="hljs-keyword">n</span>&#x27;utiliser <span class="hljs-keyword">qu</span>&#x27;une SEULE action à <span class="hljs-keyword">la</span> fois.)

Vous devez toujours terminer votre sortie avec le <span class="hljs-keyword">format</span> suivant:

Réflexion : Je connais <span class="hljs-keyword">d</span>ésormais <span class="hljs-keyword">la</span> réponse finale
Final Answer: <span class="hljs-keyword">la</span> réponse finale à <span class="hljs-keyword">la</span> question <span class="hljs-keyword">d</span>&#x27;entré<span class="hljs-keyword">e</span> initiale

Commencez maintenant! Rappel: utilisez TOUJOURS exactement les caractères \`Final Answer:\` lorsque vous fournissez une réponse <span class="hljs-keyword">d</span>éfinitive.
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;user&lt;|end_header_id|&gt;
Quel temps fait-il à Londres ?
&lt;|eot_id|&gt;&lt;|start_header_id|&gt;assistant&lt;|end_header_id|&gt;`,wrap:!1}}),bs=new w({props:{code:"RmluYWwlMjBBbnN3ZXIlM0ElMjBMYSUyMG0lQzMlQTl0JUMzJUE5byUyMCVDMyVBMCUyMExvbmRyZXMlMjBlc3QlMjBlbnNvbGVpbGwlQzMlQTllJTIwYXZlYyUyMGRlcyUyMHRlbXAlQzMlQTlyYXR1cmVzJTIwYmFzc2VzLg==",highlighted:'Final Answer: <span class="hljs-keyword">La</span> <span class="hljs-keyword">m</span>étéo à Londres <span class="hljs-keyword">est</span> ensoleillé<span class="hljs-keyword">e</span> avec <span class="hljs-keyword">des</span> températures basses.',wrap:!1}}),xs=new Yl({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/fr/unit1/dummy-agent-library.mdx"}}),{c(){j=p("meta"),$s=a(),gs=p("p"),Qs=a(),r(m.$$.fragment),Gs=a(),h=p("img"),Cs=a(),J=p("p"),J.innerHTML=Pe,Zs=a(),T=p("p"),T.textContent=Oe,zs=a(),f=p("p"),f.textContent=De,Vs=a(),U=p("p"),U.innerHTML=Ke,_s=a(),k=p("p"),k.innerHTML=sl,qs=a(),b=p("p"),b.innerHTML=el,Xs=a(),B=p("p"),B.textContent=ll,Ns=a(),v=p("p"),v.innerHTML=tl,Rs=a(),x=p("p"),x.innerHTML=al,Es=a(),r(g.$$.fragment),Ys=a(),I=p("p"),I.textContent=nl,Ss=a(),r($.$$.fragment),Ws=a(),r(Q.$$.fragment),Fs=a(),G=p("p"),G.textContent=pl,Ls=a(),r(C.$$.fragment),As=a(),Z=p("p"),Z.innerHTML=ol,Hs=a(),z=p("p"),z.innerHTML=il,Ps=a(),r(V.$$.fragment),Os=a(),_=p("p"),_.textContent=rl,Ds=a(),r(q.$$.fragment),Ks=a(),X=p("p"),X.textContent=ul,se=a(),r(N.$$.fragment),ee=a(),R=p("p"),R.textContent=cl,le=a(),r(E.$$.fragment),te=a(),Y=p("p"),Y.innerHTML=dl,ae=a(),r(S.$$.fragment),ne=a(),W=p("p"),W.textContent=Ml,pe=a(),F=p("p"),F.textContent=yl,oe=a(),L=p("ol"),L.innerHTML=wl,ie=a(),r(A.$$.fragment),re=a(),H=p("p"),H.textContent=jl,ue=a(),r(P.$$.fragment),ce=a(),O=p("p"),O.innerHTML=ml,de=a(),r(D.$$.fragment),Me=a(),K=p("p"),K.textContent=hl,ye=a(),r(ss.$$.fragment),we=a(),es=p("p"),es.textContent=Jl,je=a(),r(ls.$$.fragment),me=a(),ts=p("p"),ts.textContent=Tl,he=a(),r(as.$$.fragment),Je=a(),ns=p("p"),ns.textContent=fl,Te=a(),r(ps.$$.fragment),fe=a(),os=p("p"),os.textContent=Ul,Ue=a(),is=p("blockquote"),is.innerHTML=kl,ke=a(),r(rs.$$.fragment),be=a(),us=p("p"),us.textContent=bl,Be=a(),r(cs.$$.fragment),ve=a(),ds=p("p"),ds.textContent=Bl,xe=a(),r(Ms.$$.fragment),ge=a(),ys=p("p"),ys.textContent=vl,Ie=a(),ws=p("p"),ws.textContent=xl,$e=a(),r(js.$$.fragment),Qe=a(),ms=p("p"),ms.textContent=gl,Ge=a(),r(hs.$$.fragment),Ce=a(),Js=p("p"),Js.textContent=Il,Ze=a(),r(Ts.$$.fragment),ze=a(),fs=p("p"),fs.textContent=$l,Ve=a(),r(Us.$$.fragment),_e=a(),ks=p("p"),ks.textContent=Ql,qe=a(),r(bs.$$.fragment),Xe=a(),Ne=p("hr"),Re=a(),Bs=p("p"),Bs.innerHTML=Gl,Ee=a(),vs=p("p"),vs.innerHTML=Cl,Ye=a(),r(xs.$$.fragment),Se=a(),Is=p("p"),this.h()},l(s){const e=Rl("svelte-u9bgzb",document.head);j=o(e,"META",{name:!0,content:!0}),e.forEach(l),$s=n(s),gs=o(s,"P",{}),Zl(gs).forEach(l),Qs=n(s),u(m.$$.fragment,s),Gs=n(s),h=o(s,"IMG",{src:!0,alt:!0}),Cs=n(s),J=o(s,"P",{"data-svelte-h":!0}),i(J)!=="svelte-tsamgb"&&(J.innerHTML=Pe),Zs=n(s),T=o(s,"P",{"data-svelte-h":!0}),i(T)!=="svelte-z67o4p"&&(T.textContent=Oe),zs=n(s),f=o(s,"P",{"data-svelte-h":!0}),i(f)!=="svelte-1s5lnhl"&&(f.textContent=De),Vs=n(s),U=o(s,"P",{"data-svelte-h":!0}),i(U)!=="svelte-y70ffe"&&(U.innerHTML=Ke),_s=n(s),k=o(s,"P",{"data-svelte-h":!0}),i(k)!=="svelte-rmygkc"&&(k.innerHTML=sl),qs=n(s),b=o(s,"P",{"data-svelte-h":!0}),i(b)!=="svelte-25qdd3"&&(b.innerHTML=el),Xs=n(s),B=o(s,"P",{"data-svelte-h":!0}),i(B)!=="svelte-198ny1j"&&(B.textContent=ll),Ns=n(s),v=o(s,"P",{"data-svelte-h":!0}),i(v)!=="svelte-cnn8mp"&&(v.innerHTML=tl),Rs=n(s),x=o(s,"P",{"data-svelte-h":!0}),i(x)!=="svelte-zf3se2"&&(x.innerHTML=al),Es=n(s),u(g.$$.fragment,s),Ys=n(s),I=o(s,"P",{"data-svelte-h":!0}),i(I)!=="svelte-1h5nt1b"&&(I.textContent=nl),Ss=n(s),u($.$$.fragment,s),Ws=n(s),u(Q.$$.fragment,s),Fs=n(s),G=o(s,"P",{"data-svelte-h":!0}),i(G)!=="svelte-1wueeet"&&(G.textContent=pl),Ls=n(s),u(C.$$.fragment,s),As=n(s),Z=o(s,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-2u6jx3"&&(Z.innerHTML=ol),Hs=n(s),z=o(s,"P",{"data-svelte-h":!0}),i(z)!=="svelte-loqye5"&&(z.innerHTML=il),Ps=n(s),u(V.$$.fragment,s),Os=n(s),_=o(s,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1wueeet"&&(_.textContent=rl),Ds=n(s),u(q.$$.fragment,s),Ks=n(s),X=o(s,"P",{"data-svelte-h":!0}),i(X)!=="svelte-dp9awv"&&(X.textContent=ul),se=n(s),u(N.$$.fragment,s),ee=n(s),R=o(s,"P",{"data-svelte-h":!0}),i(R)!=="svelte-1wueeet"&&(R.textContent=cl),le=n(s),u(E.$$.fragment,s),te=n(s),Y=o(s,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-1mn367g"&&(Y.innerHTML=dl),ae=n(s),u(S.$$.fragment,s),ne=n(s),W=o(s,"P",{"data-svelte-h":!0}),i(W)!=="svelte-1e201zf"&&(W.textContent=Ml),pe=n(s),F=o(s,"P",{"data-svelte-h":!0}),i(F)!=="svelte-meyh9r"&&(F.textContent=yl),oe=n(s),L=o(s,"OL",{"data-svelte-h":!0}),i(L)!=="svelte-1gk5i4j"&&(L.innerHTML=wl),ie=n(s),u(A.$$.fragment,s),re=n(s),H=o(s,"P",{"data-svelte-h":!0}),i(H)!=="svelte-18l5xe2"&&(H.textContent=jl),ue=n(s),u(P.$$.fragment,s),ce=n(s),O=o(s,"P",{"data-svelte-h":!0}),i(O)!=="svelte-1ledenn"&&(O.innerHTML=ml),de=n(s),u(D.$$.fragment,s),Me=n(s),K=o(s,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1iwjksm"&&(K.textContent=hl),ye=n(s),u(ss.$$.fragment,s),we=n(s),es=o(s,"P",{"data-svelte-h":!0}),i(es)!=="svelte-1qizf38"&&(es.textContent=Jl),je=n(s),u(ls.$$.fragment,s),me=n(s),ts=o(s,"P",{"data-svelte-h":!0}),i(ts)!=="svelte-1wueeet"&&(ts.textContent=Tl),he=n(s),u(as.$$.fragment,s),Je=n(s),ns=o(s,"P",{"data-svelte-h":!0}),i(ns)!=="svelte-couf3a"&&(ns.textContent=fl),Te=n(s),u(ps.$$.fragment,s),fe=n(s),os=o(s,"P",{"data-svelte-h":!0}),i(os)!=="svelte-1sfn97i"&&(os.textContent=Ul),Ue=n(s),is=o(s,"BLOCKQUOTE",{"data-svelte-h":!0}),i(is)!=="svelte-oobmq4"&&(is.innerHTML=kl),ke=n(s),u(rs.$$.fragment,s),be=n(s),us=o(s,"P",{"data-svelte-h":!0}),i(us)!=="svelte-1wueeet"&&(us.textContent=bl),Be=n(s),u(cs.$$.fragment,s),ve=n(s),ds=o(s,"P",{"data-svelte-h":!0}),i(ds)!=="svelte-couf3a"&&(ds.textContent=Bl),xe=n(s),u(Ms.$$.fragment,s),ge=n(s),ys=o(s,"P",{"data-svelte-h":!0}),i(ys)!=="svelte-1cnthxl"&&(ys.textContent=vl),Ie=n(s),ws=o(s,"P",{"data-svelte-h":!0}),i(ws)!=="svelte-wq29g0"&&(ws.textContent=xl),$e=n(s),u(js.$$.fragment,s),Qe=n(s),ms=o(s,"P",{"data-svelte-h":!0}),i(ms)!=="svelte-1wueeet"&&(ms.textContent=gl),Ge=n(s),u(hs.$$.fragment,s),Ce=n(s),Js=o(s,"P",{"data-svelte-h":!0}),i(Js)!=="svelte-11xjp20"&&(Js.textContent=Il),Ze=n(s),u(Ts.$$.fragment,s),ze=n(s),fs=o(s,"P",{"data-svelte-h":!0}),i(fs)!=="svelte-1168x4o"&&(fs.textContent=$l),Ve=n(s),u(Us.$$.fragment,s),_e=n(s),ks=o(s,"P",{"data-svelte-h":!0}),i(ks)!=="svelte-1wuxk0l"&&(ks.textContent=Ql),qe=n(s),u(bs.$$.fragment,s),Xe=n(s),Ne=o(s,"HR",{}),Re=n(s),Bs=o(s,"P",{"data-svelte-h":!0}),i(Bs)!=="svelte-mnusc1"&&(Bs.innerHTML=Gl),Ee=n(s),vs=o(s,"P",{"data-svelte-h":!0}),i(vs)!=="svelte-1e8vhpn"&&(vs.innerHTML=Cl),Ye=n(s),u(xs.$$.fragment,s),Se=n(s),Is=o(s,"P",{}),Zl(Is).forEach(l),this.h()},h(){Fe(j,"name","hf:doc:metadata"),Fe(j,"content",Wl),Vl(h.src,He="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/whiteboard-unit1sub3DONE.jpg")||Fe(h,"src",He),Fe(h,"alt","Planification de l'Unité 1")},m(s,e){El(document.head,j),t(s,$s,e),t(s,gs,e),t(s,Qs,e),c(m,s,e),t(s,Gs,e),t(s,h,e),t(s,Cs,e),t(s,J,e),t(s,Zs,e),t(s,T,e),t(s,zs,e),t(s,f,e),t(s,Vs,e),t(s,U,e),t(s,_s,e),t(s,k,e),t(s,qs,e),t(s,b,e),t(s,Xs,e),t(s,B,e),t(s,Ns,e),t(s,v,e),t(s,Rs,e),t(s,x,e),t(s,Es,e),c(g,s,e),t(s,Ys,e),t(s,I,e),t(s,Ss,e),c($,s,e),t(s,Ws,e),c(Q,s,e),t(s,Fs,e),t(s,G,e),t(s,Ls,e),c(C,s,e),t(s,As,e),t(s,Z,e),t(s,Hs,e),t(s,z,e),t(s,Ps,e),c(V,s,e),t(s,Os,e),t(s,_,e),t(s,Ds,e),c(q,s,e),t(s,Ks,e),t(s,X,e),t(s,se,e),c(N,s,e),t(s,ee,e),t(s,R,e),t(s,le,e),c(E,s,e),t(s,te,e),t(s,Y,e),t(s,ae,e),c(S,s,e),t(s,ne,e),t(s,W,e),t(s,pe,e),t(s,F,e),t(s,oe,e),t(s,L,e),t(s,ie,e),c(A,s,e),t(s,re,e),t(s,H,e),t(s,ue,e),c(P,s,e),t(s,ce,e),t(s,O,e),t(s,de,e),c(D,s,e),t(s,Me,e),t(s,K,e),t(s,ye,e),c(ss,s,e),t(s,we,e),t(s,es,e),t(s,je,e),c(ls,s,e),t(s,me,e),t(s,ts,e),t(s,he,e),c(as,s,e),t(s,Je,e),t(s,ns,e),t(s,Te,e),c(ps,s,e),t(s,fe,e),t(s,os,e),t(s,Ue,e),t(s,is,e),t(s,ke,e),c(rs,s,e),t(s,be,e),t(s,us,e),t(s,Be,e),c(cs,s,e),t(s,ve,e),t(s,ds,e),t(s,xe,e),c(Ms,s,e),t(s,ge,e),t(s,ys,e),t(s,Ie,e),t(s,ws,e),t(s,$e,e),c(js,s,e),t(s,Qe,e),t(s,ms,e),t(s,Ge,e),c(hs,s,e),t(s,Ce,e),t(s,Js,e),t(s,Ze,e),c(Ts,s,e),t(s,ze,e),t(s,fs,e),t(s,Ve,e),c(Us,s,e),t(s,_e,e),t(s,ks,e),t(s,qe,e),c(bs,s,e),t(s,Xe,e),t(s,Ne,e),t(s,Re,e),t(s,Bs,e),t(s,Ee,e),t(s,vs,e),t(s,Ye,e),c(xs,s,e),t(s,Se,e),t(s,Is,e),We=!0},p:_l,i(s){We||(d(m.$$.fragment,s),d(g.$$.fragment,s),d($.$$.fragment,s),d(Q.$$.fragment,s),d(C.$$.fragment,s),d(V.$$.fragment,s),d(q.$$.fragment,s),d(N.$$.fragment,s),d(E.$$.fragment,s),d(S.$$.fragment,s),d(A.$$.fragment,s),d(P.$$.fragment,s),d(D.$$.fragment,s),d(ss.$$.fragment,s),d(ls.$$.fragment,s),d(as.$$.fragment,s),d(ps.$$.fragment,s),d(rs.$$.fragment,s),d(cs.$$.fragment,s),d(Ms.$$.fragment,s),d(js.$$.fragment,s),d(hs.$$.fragment,s),d(Ts.$$.fragment,s),d(Us.$$.fragment,s),d(bs.$$.fragment,s),d(xs.$$.fragment,s),We=!0)},o(s){M(m.$$.fragment,s),M(g.$$.fragment,s),M($.$$.fragment,s),M(Q.$$.fragment,s),M(C.$$.fragment,s),M(V.$$.fragment,s),M(q.$$.fragment,s),M(N.$$.fragment,s),M(E.$$.fragment,s),M(S.$$.fragment,s),M(A.$$.fragment,s),M(P.$$.fragment,s),M(D.$$.fragment,s),M(ss.$$.fragment,s),M(ls.$$.fragment,s),M(as.$$.fragment,s),M(ps.$$.fragment,s),M(rs.$$.fragment,s),M(cs.$$.fragment,s),M(Ms.$$.fragment,s),M(js.$$.fragment,s),M(hs.$$.fragment,s),M(Ts.$$.fragment,s),M(Us.$$.fragment,s),M(bs.$$.fragment,s),M(xs.$$.fragment,s),We=!1},d(s){s&&(l($s),l(gs),l(Qs),l(Gs),l(h),l(Cs),l(J),l(Zs),l(T),l(zs),l(f),l(Vs),l(U),l(_s),l(k),l(qs),l(b),l(Xs),l(B),l(Ns),l(v),l(Rs),l(x),l(Es),l(Ys),l(I),l(Ss),l(Ws),l(Fs),l(G),l(Ls),l(As),l(Z),l(Hs),l(z),l(Ps),l(Os),l(_),l(Ds),l(Ks),l(X),l(se),l(ee),l(R),l(le),l(te),l(Y),l(ae),l(ne),l(W),l(pe),l(F),l(oe),l(L),l(ie),l(re),l(H),l(ue),l(ce),l(O),l(de),l(Me),l(K),l(ye),l(we),l(es),l(je),l(me),l(ts),l(he),l(Je),l(ns),l(Te),l(fe),l(os),l(Ue),l(is),l(ke),l(be),l(us),l(Be),l(ve),l(ds),l(xe),l(ge),l(ys),l(Ie),l(ws),l($e),l(Qe),l(ms),l(Ge),l(Ce),l(Js),l(Ze),l(ze),l(fs),l(Ve),l(_e),l(ks),l(qe),l(Xe),l(Ne),l(Re),l(Bs),l(Ee),l(vs),l(Ye),l(Se),l(Is)),l(j),y(m,s),y(g,s),y($,s),y(Q,s),y(C,s),y(V,s),y(q,s),y(N,s),y(E,s),y(S,s),y(A,s),y(P,s),y(D,s),y(ss,s),y(ls,s),y(as,s),y(ps,s),y(rs,s),y(cs,s),y(Ms,s),y(js,s),y(hs,s),y(Ts,s),y(Us,s),y(bs,s),y(xs,s)}}}const Wl='{"title":"Bibliothèque d’Agents Factices","local":"bibliothèque-dagents-factices","sections":[{"title":"API serverless","local":"api-serverless","sections":[],"depth":2},{"title":"Agent factice","local":"agent-factice","sections":[],"depth":2}],"depth":1}';function Fl(Ae){return ql(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Dl extends Xl{constructor(j){super(),Nl(this,j,Fl,Sl,zl,{})}}export{Dl as component};
