import{s as dl,f as bl,n as Bl,o as Vl}from"../chunks/scheduler.f6b352c8.js";import{S as fl,i as Ql,g as i,s as n,r as M,A as gl,h as p,f as l,c as a,j as ml,u as h,x as o,k as Gs,y as Il,a as e,v as u,d as y,t as U,w as r}from"../chunks/index.7f38e934.js";import{C as j}from"../chunks/CodeBlock.3ee8293b.js";import{H as Xs,E as _l}from"../chunks/getInferenceSnippets.b7407465.js";function Fl(qs){let w,Vt,bt,ft,c,Qt,T,xs,gt,J,vs="이 코스는 특정 프레임워크에 종속되지 않도록 설계되었습니다. 그 이유는 <strong>AI 에이전트의 개념에 집중하고 특정 프레임워크의 세부 사항에 매몰되지 않기 위함입니다</strong>.",It,C,Ys="또한, 학생들이 이 강의에서 배운 개념을 원하는 프레임워크를 사용해 자신의 프로젝트에 적용할 수 있기를 바랍니다.",_t,m,Es="따라서 Unit 1에서는 간단한 더미 에이전트 라이브러리와 서버리스 API를 사용하여 LLM 엔진에 접근할 것입니다.",Ft,d,Zs="실제 프로덕션 환경에서는 이런 방식을 사용하지 않겠지만, <strong>에이전트의 작동 원리를 이해하는 데 좋은 출발점</strong>이 될 것입니다.",Nt,b,Ss="이 섹션을 마치면 <code>smolagents</code>를 사용하여 <strong>간단한 에이전트를 만들</strong> 준비가 될 것입니다.",kt,B,Ws="이어지는 Unit에서는 <code>LangGraph</code>, <code>LlamaIndex</code>와 같은 다른 AI 에이전트 라이브러리도 사용해 볼 예정입니다.",$t,V,As="간단하게 하기 위해 도구와 에이전트로 단순한 Python 함수를 사용할 것입니다.",Rt,f,Os="어떤 환경에서도 시도해볼 수 있도록 <code>datetime</code>이나 <code>os</code>와 같은 내장 Python 패키지를 사용할 것입니다.",Gt,Q,Ls='<a href="https://huggingface.co/agents-course/notebooks/blob/main/dummy_agent_library.ipynb" rel="nofollow">이 노트북</a>에서 과정을 따라가며 <strong>직접 코드를 실행</strong>해볼 수 있습니다.',Xt,g,qt,I,Hs="Hugging Face 생태계에는 다양한 모델에서 쉽게 추론을 실행할 수 있게 해주는 서버리스 API라는 편리한 기능이 있습니다. 별도의 설치나 배포 과정이 필요 없습니다.",xt,_,vt,F,Yt,N,zs="출력:",Et,k,Zt,$,Ps="LLM 섹션에서 보았듯이, 단순 디코딩만 수행하면 <strong>모델은 EOS(End of Sequence) 토큰을 예측할 때만 멈추게 됩니다</strong>. 하지만 여기서는 그런 일이 일어나지 않습니다. 이는 이것이 대화형(채팅) 모델이고 <strong>모델이 기대하는 채팅 템플릿을 적용하지 않았기 때문입니다</strong>.",St,R,Ds='이제 우리가 사용하는 <a href="https://huggingface.co/meta-llama/Llama-3.2-3B-Instruct">Llama-3.2-3B-Instruct 모델</a>과 관련된 특수 토큰을 추가하면, 동작이 바뀌어 예상대로 EOS가 생성됩니다.',Wt,G,At,X,Ks="출력:",Ot,q,Lt,x,tl="“chat” 메서드를 사용하는 것이 채팅 템플릿을 적용하는 훨씬 더 편리하고 안정적인 방법입니다:",Ht,v,zt,Y,sl="출력:",Pt,E,Dt,Z,ll="chat 메서드는 모델 간 원활한 전환을 보장하기 위해 권장되는 방법이지만, 이 노트북은 교육용이므로 세부 내용을 이해하기 위해 계속해서 “text_generation” 메서드를 사용하겠습니다.",Kt,S,ts,W,el="앞 섹션에서 보았듯이, 에이전트 라이브러리의 핵심은 시스템 프롬프트에 정보를 추가하는 것입니다.",ss,A,nl="이 시스템 프롬프트는 앞서 본 것보다 조금 더 복잡하지만, 이미 다음과 같은 내용을 포함하고 있습니다:",ls,O,al="<li><strong>도구에 관한 정보</strong></li> <li><strong>사이클 지시사항</strong> (생각(Thought) → 행동(Action) → 관찰(Observation))</li>",es,L,ns,H,il="“text_generation” 메서드를 사용하고 있으므로 프롬프트를 수동으로 적용해야 합니다:",as,z,is,P,pl="다음과 같이 할 수도 있습니다. 이는 <code>chat</code> 메서드 내부에서 일어나는 일입니다:",ps,D,os,K,ol="이제 프롬프트는 다음과 같습니다:",Ms,tt,hs,st,Ml="이제 디코딩을 해봅시다!",us,lt,ys,et,hl="출력:",Us,nt,rs,at,ul="문제가 보이시나요?",js,it,yl=`<p>모델이 실제 데이터 없이 허구의 답변을 만들어냈습니다. 실제 함수를 실행하려면 여기서 생성을 중단해야 합니다!
이제 허구의 응답이 생성되지 않도록 “Observation:” 부분 전에 생성을 중지해 봅시다.</p>`,ws,pt,cs,ot,Ul="출력:",Ts,Mt,Js,ht,rl=`훨씬 좋아졌습니다!
이제 간단한 날씨 정보 제공 함수를 만들어 봅시다. 실제 상황에서는 API를 호출하게 될 것입니다.`,Cs,ut,ms,yt,jl="출력:",ds,Ut,bs,rt,wl="이제 기본 프롬프트, 함수 실행까지의 출력, 그리고 함수 실행 결과를 관찰 결과로 연결한 다음 생성을 계속해 봅시다.",Bs,jt,Vs,wt,cl="새로운 프롬프트는 다음과 같습니다:",fs,ct,Qs,Tt,Tl="출력:",gs,Jt,Is,_s,Fs,Ct,Jl="지금까지 Python 코드를 사용하여 처음부터 에이전트를 만드는 방법을 배웠고, <strong>그 과정이 얼마나 번거로울 수 있는지</strong> 확인했습니다. 다행히 많은 에이전트 라이브러리들이 이러한 작업을 단순화하여 복잡한 부분을 대신 처리해 줍니다.",Ns,mt,Cl="이제 <code>smolagents</code> 라이브러리를 사용하여 <strong>첫 번째 실제 에이전트를 만들</strong> 준비가 되었습니다.",ks,dt,$s,Bt,Rs;return c=new Xs({props:{title:"더미 에이전트 라이브러리",local:"dummy-agent-library",headingTag:"h1"}}),g=new Xs({props:{title:"서버리스 API",local:"serverless-api",headingTag:"h2"}}),_=new j({props:{code:"aW1wb3J0JTIwb3MlMEFmcm9tJTIwaHVnZ2luZ2ZhY2VfaHViJTIwaW1wb3J0JTIwSW5mZXJlbmNlQ2xpZW50JTBBJTBBJTIzJTIzJTIwaHR0cHMlM0ElMkYlMkZoZi5jbyUyRnNldHRpbmdzJTJGdG9rZW5zJUVDJTk3JTkwJUVDJTg0JTlDJTIwJUVEJTg2JUEwJUVEJTgxJUIwJUVDJTlEJUI0JTIwJUVEJTk1JTg0JUVDJTlBJTk0JUVEJTk1JUE5JUVCJThCJTg4JUVCJThCJUE0LiUyMCVFRCU4NiVBMCVFRCU4MSVCMCUyMCVFQyU5QyVBMCVFRCU5OCU5NSVFQyU5QyVCQyVFQiVBMSU5QyUyMCdyZWFkJyVFQiVBNSVCQyUyMCVFQyU4NCVBMCVFRCU4MyU5RCVFRCU5NiU4OCVFQiU4QSU5NCVFQyVBNyU4MCUyMCVFRCU5OSU5NSVFQyU5RCVCOCVFRCU5NSU5OCVFQyU4NCVCOCVFQyU5QSU5NC4lMjBHb29nbGUlMjBDb2xhYiVFQyU5NyU5MCVFQyU4NCU5QyUyMCVFQyU4QiVBNCVFRCU5NiU4OSVFRCU5NSVBMCUyMCVFQSVCMiVCRCVFQyU5QSVCMCUyMCUyMiVFQyU4NCVBNCVFQyVBMCU5NSUyMiUyMCVFRCU4MyVBRCVFQyU5RCU5OCUyMCUyMiVFQyU4QiU5QyVFRCU4MSVBQyVFQiVBNiVCRiUyMiUyMCVFQyU5NSU4NCVFQiU5RSU5OCVFQyU5NyU5MCVFQyU4NCU5QyUyMCVFQyU4NCVBNCVFQyVBMCU5NSVFRCU5NSVBMCUyMCVFQyU4OCU5OCUyMCVFQyU5RSU4OCVFQyU4QSVCNSVFQiU4QiU4OCVFQiU4QiVBNC4lMjAlRUIlQjAlOTglRUIlOTMlOUMlRUMlOEIlOUMlMjAlMjJIRl9UT0tFTiUyMiVFQyU5RCVCNCVFQiU5RCVCQyVFQSVCMyVBMCUyMCVFQyU5RCVCNCVFQiVBNiU4NCVFQyU5RCU4NCUyMCVFQyVBNyU4MCVFQyVBMCU5NSVFRCU5NSVCNCVFQyU5NSVCQyUyMCVFRCU5NSVBOSVFQiU4QiU4OCVFQiU4QiVBNC4lMEFvcy5lbnZpcm9uJTVCJTIySEZfVE9LRU4lMjIlNUQlM0QlMjJoZl94eHh4eHh4eHh4eHh4eCUyMiUwQSUwQWNsaWVudCUyMCUzRCUyMEluZmVyZW5jZUNsaWVudCglMjJtZXRhLWxsYW1hJTJGTGxhbWEtMy4yLTNCLUluc3RydWN0JTIyKSUwQSUyMyUyMCVFQiU4QiVBNCVFQyU5RCU4QyUyMCVFQyU4NSU4MCVFQyU5RCU5OCUyMCVFQyVCNiU5QyVFQiVBMCVBNSVFQyU5RCVCNCUyMCVFQyU5OCVBQyVFQiVCMCU5NCVFQiVBNSVCNCVFQyVBNyU4MCUyMCVFQyU5NSU4QSVFQiU4QiVBNCVFQiVBOSVCNCUyQyUyMCVFQiVBQyVCNCVFQiVBMyU4QyUyMCVFQiVBQSVBOCVFQiU4RCVCOCVFQyU5RCVCNCUyMCVFQSVCMyVCQyVFQiVCNiU4MCVFRCU5NSU5OCUyMCVFQyU4MyU4MSVFRCU4MyU5QyVFQyU5RCVCQyUyMCVFQyU4OCU5OCUyMCVFQyU5RSU4OCVFQyU4QSVCNSVFQiU4QiU4OCVFQiU4QiVBNC4lMjAlRUIlOEMlODAlRUMlOEIlQTAlMjBMbGFtYS0zLjItM0ItSW5zdHJ1Y3QlRUElQjAlODAlMjAlRUQlOEYlQUMlRUQlOTUlQTglRUIlOTAlOUMlMjAlRUMlOUQlQjQlMjAlRUElQjMlQjUlRUElQjAlOUMlMjAlRUMlOTclOTQlRUIlOTMlOUMlRUQlOEYlQUMlRUMlOUQlQjglRUQlOEElQjglRUIlQTUlQkMlMjAlRUMlODIlQUMlRUMlOUElQTklRUQlOTUlQTAlMjAlRUMlODglOTglMjAlRUMlOUUlODglRUMlOEElQjUlRUIlOEIlODglRUIlOEIlQTQlMEElMjMlMjBjbGllbnQlMjAlM0QlMjBJbmZlcmVuY2VDbGllbnQoJTIyaHR0cHMlM0ElMkYlMkZqYzI2bXdnMjI4bWtqOGR3LnVzLWVhc3QtMS5hd3MuZW5kcG9pbnRzLmh1Z2dpbmdmYWNlLmNsb3VkJTIyKQ==",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">## https://hf.co/settings/tokens에서 토큰이 필요합니다. 토큰 유형으로 &#x27;read&#x27;를 선택했는지 확인하세요. Google Colab에서 실행할 경우 &quot;설정&quot; 탭의 &quot;시크릿&quot; 아래에서 설정할 수 있습니다. 반드시 &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"># 다음 셀의 출력이 올바르지 않다면, 무료 모델이 과부하 상태일 수 있습니다. 대신 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}}),F=new j({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}}),k=new j({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}}),G=new j({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}}),q=new j({props:{code:"VGhlJTIwY2FwaXRhbCUyMG9mJTIwRnJhbmNlJTIwaXMlMjBQYXJpcy4=",highlighted:'The capital of France <span class="hljs-keyword">is</span> Paris.',wrap:!1}}),v=new j({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}}),E=new j({props:{code:"UGFyaXMu",highlighted:"Paris.",wrap:!1}}),S=new Xs({props:{title:"더미 에이전트",local:"dummy-agent",headingTag:"h2"}}),L=new j({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKHRoaXMlMjBUaG91Z2h0JTJGQWN0aW9uJTJGT2JzZXJ2YXRpb24lMjBjYW4lMjByZXBlYXQlMjBOJTIwdGltZXMlMkMlMjB5b3UlMjBzaG91bGQlMjB0YWtlJTIwc2V2ZXJhbCUyMHN0ZXBzJTIwd2hlbiUyMG5lZWRlZC4lMjBUaGUlMjAlMjRKU09OX0JMT0IlMjBtdXN0JTIwYmUlMjBmb3JtYXR0ZWQlMjBhcyUyMG1hcmtkb3duJTIwYW5kJTIwb25seSUyMHVzZSUyMGElMjBTSU5HTEUlMjBhY3Rpb24lMjBhdCUyMGElMjB0aW1lLiklMEElMEElMEE=",highlighted:`Answer the following questions as best you can. You have access to the following tools:

get_weather: Get the current weather in a given location

The way you <span class="hljs-keyword">use</span> the tools is by specifying a json blob.
Specifically, <span class="hljs-keyword">this</span> json should have an \`action\` key (<span class="hljs-keyword">with</span> the name of the tool to <span class="hljs-keyword">use</span>) <span class="hljs-keyword">and</span> an \`action_input\` key (<span class="hljs-keyword">with</span> the <span class="hljs-keyword">input</span> to the tool going here).

The only values that should be in the <span class="hljs-string">&quot;action&quot;</span> field are:
get_weather: Get the current weather in a given location, 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 <span class="hljs-keyword">use</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;New York&quot;</span>}
}}

ALWAYS <span class="hljs-keyword">use</span> the following format:

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

$JSON_BLOB (<span class="hljs-keyword">inside</span> markdown <span class="hljs-keyword">cell</span>)

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

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

Thought: I now know the <span class="hljs-keyword">final</span> answer
Final Answer: the <span class="hljs-keyword">final</span> answer to the original <span class="hljs-keyword">input</span> question

Now <span class="hljs-keyword">begin</span>! Reminder to ALWAYS <span class="hljs-keyword">use</span> the exact characters \`Final Answer:\` when you provide a definitive answer.`,wrap:!1}}),z=new j({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 j({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}}),tt=new j({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKHRoaXMlMjBUaG91Z2h0JTJGQWN0aW9uJTJGT2JzZXJ2YXRpb24lMjBjYW4lMjByZXBlYXQlMjBOJTIwdGltZXMlMkMlMjB5b3UlMjBzaG91bGQlMjB0YWtlJTIwc2V2ZXJhbCUyMHN0ZXBzJTIwd2hlbiUyMG5lZWRlZC4lMjBUaGUlMjAlMjRKU09OX0JMT0IlMjBtdXN0JTIwYmUlMjBmb3JtYXR0ZWQlMjBhcyUyMG1hcmtkb3duJTIwYW5kJTIwb25seSUyMHVzZSUyMGElMjBTSU5HTEUlMjBhY3Rpb24lMjBhdCUyMGElMjB0aW1lLiklMEElMEElMEE=",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;
Answer</span> the following questions <span class="hljs-built_in">as</span> best you can. You have access to the following tools:

get_weather: Get the current weather <span class="hljs-built_in">in</span> a given location

The way you use the tools is <span class="hljs-built_in">by</span> specifying a json blob.
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: Get the current weather <span class="hljs-built_in">in</span> a given location, 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;</span>`,wrap:!1}}),lt=new j({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}}),nt=new j({props:{code:"VGhvdWdodCUzQSUyMEklMjB3aWxsJTIwY2hlY2slMjB0aGUlMjB3ZWF0aGVyJTIwaW4lMjBMb25kb24uJTBBQWN0aW9uJTNBJTBBJTYwJTYwJTYwJTBBJTdCJTBBJTIwJTIwJTIyYWN0aW9uJTIyJTNBJTIwJTIyZ2V0X3dlYXRoZXIlMjIlMkMlMEElMjAlMjAlMjJhY3Rpb25faW5wdXQlMjIlM0ElMjAlN0IlMjJsb2NhdGlvbiUyMiUzQSUyMCUyMkxvbmRvbiUyMiU3RCUwQSU3RCUwQSU2MCU2MCU2MCUwQU9ic2VydmF0aW9uJTNBJTIwVGhlJTIwY3VycmVudCUyMHdlYXRoZXIlMjBpbiUyMExvbmRvbiUyMGlzJTIwbW9zdGx5JTIwY2xvdWR5JTIwd2l0aCUyMGElMjBoaWdoJTIwb2YlMjAxMiVDMiVCMEMlMjBhbmQlMjBhJTIwbG93JTIwb2YlMjA4JUMyJUIwQy4=",highlighted:`Thought: I will<span class="hljs-built_in"> check </span>the weather in London.
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>}
}
\`\`\`
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}}),pt=new j({props:{code:"b3V0cHV0JTIwJTNEJTIwY2xpZW50LnRleHRfZ2VuZXJhdGlvbiglMEElMjAlMjAlMjAlMjBwcm9tcHQlMkMlMEElMjAlMjAlMjAlMjBtYXhfbmV3X3Rva2VucyUzRDIwMCUyQyUwQSUyMCUyMCUyMCUyMHN0b3AlM0QlNUIlMjJPYnNlcnZhdGlvbiUzQSUyMiU1RCUyMCUyMyUyMCVFQyU4QiVBNCVFQyVBMCU5QyUyMCVFRCU5NSVBOCVFQyU4OCU5OCVFQSVCMCU4MCUyMCVFRCU5OCVCOCVFQyVCNiU5QyVFQiU5MCU5OCVFQSVCOCVCMCUyMCVFQyVBMCU4NCVFQyU5NyU5MCUyMCVFQyVBNCU5MSVFQiU4QiVBOCVFRCU5NSVBOSVFQiU4QiU4OCVFQiU4QiVBNCUwQSklMEElMEFwcmludChvdXRwdXQp",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"># 실제 함수가 호출되기 전에 중단합니다</span>
)

<span class="hljs-built_in">print</span>(output)`,wrap:!1}}),Mt=new j({props:{code:"VGhvdWdodCUzQSUyMEklMjB3aWxsJTIwY2hlY2slMjB0aGUlMjB3ZWF0aGVyJTIwaW4lMjBMb25kb24uJTBBQWN0aW9uJTNBJTBBJTYwJTYwJTYwJTBBJTdCJTBBJTIwJTIwJTIyYWN0aW9uJTIyJTNBJTIwJTIyZ2V0X3dlYXRoZXIlMjIlMkMlMEElMjAlMjAlMjJhY3Rpb25faW5wdXQlMjIlM0ElMjAlN0IlMjJsb2NhdGlvbiUyMiUzQSUyMCUyMkxvbmRvbiUyMiU3RCUwQSU3RCUwQSU2MCU2MCU2MCUwQU9ic2VydmF0aW9uJTNB",highlighted:`Thought: I will<span class="hljs-built_in"> check </span>the weather in London.
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>}
}
\`\`\`
Observation:`,wrap:!1}}),ut=new j({props:{code:"JTIzJTIwJUVCJThEJTk0JUVCJUFGJUI4JTIwJUVEJTk1JUE4JUVDJTg4JTk4JTBBZGVmJTIwZ2V0X3dlYXRoZXIobG9jYXRpb24pJTNBJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwZiUyMnRoZSUyMHdlYXRoZXIlMjBpbiUyMCU3QmxvY2F0aW9uJTdEJTIwaXMlMjBzdW5ueSUyMHdpdGglMjBsb3clMjB0ZW1wZXJhdHVyZXMuJTIwJTVDbiUyMiUwQSUwQWdldF93ZWF0aGVyKCdMb25kb24nKQ==",highlighted:`<span class="hljs-comment"># 더미 함수</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}}),Ut=new j({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}}),jt=new j({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}}),ct=new j({props:{code:"JTBBJTBBJTBBJTBBJTBBJTBBJTBBJTBBKHRoaXMlMjBUaG91Z2h0JTJGQWN0aW9uJTJGT2JzZXJ2YXRpb24lMjBjYW4lMjByZXBlYXQlMjBOJTIwdGltZXMlMkMlMjB5b3UlMjBzaG91bGQlMjB0YWtlJTIwc2V2ZXJhbCUyMHN0ZXBzJTIwd2hlbiUyMG5lZWRlZC4lMjBUaGUlMjAlMjRKU09OX0JMT0IlMjBtdXN0JTIwYmUlMjBmb3JtYXR0ZWQlMjBhcyUyMG1hcmtkb3duJTIwYW5kJTIwb25seSUyMHVzZSUyMGElMjBTSU5HTEUlMjBhY3Rpb24lMjBhdCUyMGElMjB0aW1lLiklMEElMEElMEE=",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;
    Answer</span> the following questions <span class="hljs-built_in">as</span> best you can. You have access to the following tools:

get_weather: Get the current weather <span class="hljs-built_in">in</span> a given location

The way you use the tools is <span class="hljs-built_in">by</span> specifying a json blob.
Specifically, this json should have a \`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: Get the current weather <span class="hljs-built_in">in</span> a given location, 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;
Thought</span>: I will check the weather <span class="hljs-built_in">in</span> London.
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;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>}
}
\`\`\`
Observation:the weather <span class="hljs-built_in">in</span> London is sunny <span class="hljs-built_in">with</span> low temperatures. `,wrap:!1}}),Jt=new j({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}}),dt=new _l({props:{source:"https://github.com/huggingface/agents-course/blob/main/units/ko/unit1/dummy-agent-library.mdx"}}),{c(){w=i("meta"),Vt=n(),bt=i("p"),ft=n(),M(c.$$.fragment),Qt=n(),T=i("img"),gt=n(),J=i("p"),J.innerHTML=vs,It=n(),C=i("p"),C.textContent=Ys,_t=n(),m=i("p"),m.textContent=Es,Ft=n(),d=i("p"),d.innerHTML=Zs,Nt=n(),b=i("p"),b.innerHTML=Ss,kt=n(),B=i("p"),B.innerHTML=Ws,$t=n(),V=i("p"),V.textContent=As,Rt=n(),f=i("p"),f.innerHTML=Os,Gt=n(),Q=i("p"),Q.innerHTML=Ls,Xt=n(),M(g.$$.fragment),qt=n(),I=i("p"),I.textContent=Hs,xt=n(),M(_.$$.fragment),vt=n(),M(F.$$.fragment),Yt=n(),N=i("p"),N.textContent=zs,Et=n(),M(k.$$.fragment),Zt=n(),$=i("p"),$.innerHTML=Ps,St=n(),R=i("p"),R.innerHTML=Ds,Wt=n(),M(G.$$.fragment),At=n(),X=i("p"),X.textContent=Ks,Ot=n(),M(q.$$.fragment),Lt=n(),x=i("p"),x.textContent=tl,Ht=n(),M(v.$$.fragment),zt=n(),Y=i("p"),Y.textContent=sl,Pt=n(),M(E.$$.fragment),Dt=n(),Z=i("p"),Z.textContent=ll,Kt=n(),M(S.$$.fragment),ts=n(),W=i("p"),W.textContent=el,ss=n(),A=i("p"),A.textContent=nl,ls=n(),O=i("ol"),O.innerHTML=al,es=n(),M(L.$$.fragment),ns=n(),H=i("p"),H.textContent=il,as=n(),M(z.$$.fragment),is=n(),P=i("p"),P.innerHTML=pl,ps=n(),M(D.$$.fragment),os=n(),K=i("p"),K.textContent=ol,Ms=n(),M(tt.$$.fragment),hs=n(),st=i("p"),st.textContent=Ml,us=n(),M(lt.$$.fragment),ys=n(),et=i("p"),et.textContent=hl,Us=n(),M(nt.$$.fragment),rs=n(),at=i("p"),at.textContent=ul,js=n(),it=i("blockquote"),it.innerHTML=yl,ws=n(),M(pt.$$.fragment),cs=n(),ot=i("p"),ot.textContent=Ul,Ts=n(),M(Mt.$$.fragment),Js=n(),ht=i("p"),ht.textContent=rl,Cs=n(),M(ut.$$.fragment),ms=n(),yt=i("p"),yt.textContent=jl,ds=n(),M(Ut.$$.fragment),bs=n(),rt=i("p"),rt.textContent=wl,Bs=n(),M(jt.$$.fragment),Vs=n(),wt=i("p"),wt.textContent=cl,fs=n(),M(ct.$$.fragment),Qs=n(),Tt=i("p"),Tt.textContent=Tl,gs=n(),M(Jt.$$.fragment),Is=n(),_s=i("hr"),Fs=n(),Ct=i("p"),Ct.innerHTML=Jl,Ns=n(),mt=i("p"),mt.innerHTML=Cl,ks=n(),M(dt.$$.fragment),$s=n(),Bt=i("p"),this.h()},l(t){const s=gl("svelte-u9bgzb",document.head);w=p(s,"META",{name:!0,content:!0}),s.forEach(l),Vt=a(t),bt=p(t,"P",{}),ml(bt).forEach(l),ft=a(t),h(c.$$.fragment,t),Qt=a(t),T=p(t,"IMG",{src:!0,alt:!0}),gt=a(t),J=p(t,"P",{"data-svelte-h":!0}),o(J)!=="svelte-13q9a29"&&(J.innerHTML=vs),It=a(t),C=p(t,"P",{"data-svelte-h":!0}),o(C)!=="svelte-1wusmmw"&&(C.textContent=Ys),_t=a(t),m=p(t,"P",{"data-svelte-h":!0}),o(m)!=="svelte-1ktsmra"&&(m.textContent=Es),Ft=a(t),d=p(t,"P",{"data-svelte-h":!0}),o(d)!=="svelte-1w2u3vn"&&(d.innerHTML=Zs),Nt=a(t),b=p(t,"P",{"data-svelte-h":!0}),o(b)!=="svelte-1rub651"&&(b.innerHTML=Ss),kt=a(t),B=p(t,"P",{"data-svelte-h":!0}),o(B)!=="svelte-1gwz4hj"&&(B.innerHTML=Ws),$t=a(t),V=p(t,"P",{"data-svelte-h":!0}),o(V)!=="svelte-rinx9d"&&(V.textContent=As),Rt=a(t),f=p(t,"P",{"data-svelte-h":!0}),o(f)!=="svelte-1xpbh9e"&&(f.innerHTML=Os),Gt=a(t),Q=p(t,"P",{"data-svelte-h":!0}),o(Q)!=="svelte-1t8hg6u"&&(Q.innerHTML=Ls),Xt=a(t),h(g.$$.fragment,t),qt=a(t),I=p(t,"P",{"data-svelte-h":!0}),o(I)!=="svelte-1r4p0eq"&&(I.textContent=Hs),xt=a(t),h(_.$$.fragment,t),vt=a(t),h(F.$$.fragment,t),Yt=a(t),N=p(t,"P",{"data-svelte-h":!0}),o(N)!=="svelte-inwphr"&&(N.textContent=zs),Et=a(t),h(k.$$.fragment,t),Zt=a(t),$=p(t,"P",{"data-svelte-h":!0}),o($)!=="svelte-tpy85a"&&($.innerHTML=Ps),St=a(t),R=p(t,"P",{"data-svelte-h":!0}),o(R)!=="svelte-eg6uzs"&&(R.innerHTML=Ds),Wt=a(t),h(G.$$.fragment,t),At=a(t),X=p(t,"P",{"data-svelte-h":!0}),o(X)!=="svelte-inwphr"&&(X.textContent=Ks),Ot=a(t),h(q.$$.fragment,t),Lt=a(t),x=p(t,"P",{"data-svelte-h":!0}),o(x)!=="svelte-1nsmni4"&&(x.textContent=tl),Ht=a(t),h(v.$$.fragment,t),zt=a(t),Y=p(t,"P",{"data-svelte-h":!0}),o(Y)!=="svelte-inwphr"&&(Y.textContent=sl),Pt=a(t),h(E.$$.fragment,t),Dt=a(t),Z=p(t,"P",{"data-svelte-h":!0}),o(Z)!=="svelte-okwxy4"&&(Z.textContent=ll),Kt=a(t),h(S.$$.fragment,t),ts=a(t),W=p(t,"P",{"data-svelte-h":!0}),o(W)!=="svelte-mjowjw"&&(W.textContent=el),ss=a(t),A=p(t,"P",{"data-svelte-h":!0}),o(A)!=="svelte-s6eprc"&&(A.textContent=nl),ls=a(t),O=p(t,"OL",{"data-svelte-h":!0}),o(O)!=="svelte-77h2cd"&&(O.innerHTML=al),es=a(t),h(L.$$.fragment,t),ns=a(t),H=p(t,"P",{"data-svelte-h":!0}),o(H)!=="svelte-1b74wsk"&&(H.textContent=il),as=a(t),h(z.$$.fragment,t),is=a(t),P=p(t,"P",{"data-svelte-h":!0}),o(P)!=="svelte-ct5hn0"&&(P.innerHTML=pl),ps=a(t),h(D.$$.fragment,t),os=a(t),K=p(t,"P",{"data-svelte-h":!0}),o(K)!=="svelte-m9c2pw"&&(K.textContent=ol),Ms=a(t),h(tt.$$.fragment,t),hs=a(t),st=p(t,"P",{"data-svelte-h":!0}),o(st)!=="svelte-1kwkb5z"&&(st.textContent=Ml),us=a(t),h(lt.$$.fragment,t),ys=a(t),et=p(t,"P",{"data-svelte-h":!0}),o(et)!=="svelte-inwphr"&&(et.textContent=hl),Us=a(t),h(nt.$$.fragment,t),rs=a(t),at=p(t,"P",{"data-svelte-h":!0}),o(at)!=="svelte-1obmof3"&&(at.textContent=ul),js=a(t),it=p(t,"BLOCKQUOTE",{"data-svelte-h":!0}),o(it)!=="svelte-h3ajk7"&&(it.innerHTML=yl),ws=a(t),h(pt.$$.fragment,t),cs=a(t),ot=p(t,"P",{"data-svelte-h":!0}),o(ot)!=="svelte-inwphr"&&(ot.textContent=Ul),Ts=a(t),h(Mt.$$.fragment,t),Js=a(t),ht=p(t,"P",{"data-svelte-h":!0}),o(ht)!=="svelte-1fjw0wc"&&(ht.textContent=rl),Cs=a(t),h(ut.$$.fragment,t),ms=a(t),yt=p(t,"P",{"data-svelte-h":!0}),o(yt)!=="svelte-inwphr"&&(yt.textContent=jl),ds=a(t),h(Ut.$$.fragment,t),bs=a(t),rt=p(t,"P",{"data-svelte-h":!0}),o(rt)!=="svelte-1nwredf"&&(rt.textContent=wl),Bs=a(t),h(jt.$$.fragment,t),Vs=a(t),wt=p(t,"P",{"data-svelte-h":!0}),o(wt)!=="svelte-nerwkw"&&(wt.textContent=cl),fs=a(t),h(ct.$$.fragment,t),Qs=a(t),Tt=p(t,"P",{"data-svelte-h":!0}),o(Tt)!=="svelte-inwphr"&&(Tt.textContent=Tl),gs=a(t),h(Jt.$$.fragment,t),Is=a(t),_s=p(t,"HR",{}),Fs=a(t),Ct=p(t,"P",{"data-svelte-h":!0}),o(Ct)!=="svelte-q4xpy1"&&(Ct.innerHTML=Jl),Ns=a(t),mt=p(t,"P",{"data-svelte-h":!0}),o(mt)!=="svelte-10azulo"&&(mt.innerHTML=Cl),ks=a(t),h(dt.$$.fragment,t),$s=a(t),Bt=p(t,"P",{}),ml(Bt).forEach(l),this.h()},h(){Gs(w,"name","hf:doc:metadata"),Gs(w,"content",Nl),bl(T.src,xs="https://huggingface.co/datasets/agents-course/course-images/resolve/main/en/unit1/whiteboard-unit1sub3DONE.jpg")||Gs(T,"src",xs),Gs(T,"alt","Unit 1 planning")},m(t,s){Il(document.head,w),e(t,Vt,s),e(t,bt,s),e(t,ft,s),u(c,t,s),e(t,Qt,s),e(t,T,s),e(t,gt,s),e(t,J,s),e(t,It,s),e(t,C,s),e(t,_t,s),e(t,m,s),e(t,Ft,s),e(t,d,s),e(t,Nt,s),e(t,b,s),e(t,kt,s),e(t,B,s),e(t,$t,s),e(t,V,s),e(t,Rt,s),e(t,f,s),e(t,Gt,s),e(t,Q,s),e(t,Xt,s),u(g,t,s),e(t,qt,s),e(t,I,s),e(t,xt,s),u(_,t,s),e(t,vt,s),u(F,t,s),e(t,Yt,s),e(t,N,s),e(t,Et,s),u(k,t,s),e(t,Zt,s),e(t,$,s),e(t,St,s),e(t,R,s),e(t,Wt,s),u(G,t,s),e(t,At,s),e(t,X,s),e(t,Ot,s),u(q,t,s),e(t,Lt,s),e(t,x,s),e(t,Ht,s),u(v,t,s),e(t,zt,s),e(t,Y,s),e(t,Pt,s),u(E,t,s),e(t,Dt,s),e(t,Z,s),e(t,Kt,s),u(S,t,s),e(t,ts,s),e(t,W,s),e(t,ss,s),e(t,A,s),e(t,ls,s),e(t,O,s),e(t,es,s),u(L,t,s),e(t,ns,s),e(t,H,s),e(t,as,s),u(z,t,s),e(t,is,s),e(t,P,s),e(t,ps,s),u(D,t,s),e(t,os,s),e(t,K,s),e(t,Ms,s),u(tt,t,s),e(t,hs,s),e(t,st,s),e(t,us,s),u(lt,t,s),e(t,ys,s),e(t,et,s),e(t,Us,s),u(nt,t,s),e(t,rs,s),e(t,at,s),e(t,js,s),e(t,it,s),e(t,ws,s),u(pt,t,s),e(t,cs,s),e(t,ot,s),e(t,Ts,s),u(Mt,t,s),e(t,Js,s),e(t,ht,s),e(t,Cs,s),u(ut,t,s),e(t,ms,s),e(t,yt,s),e(t,ds,s),u(Ut,t,s),e(t,bs,s),e(t,rt,s),e(t,Bs,s),u(jt,t,s),e(t,Vs,s),e(t,wt,s),e(t,fs,s),u(ct,t,s),e(t,Qs,s),e(t,Tt,s),e(t,gs,s),u(Jt,t,s),e(t,Is,s),e(t,_s,s),e(t,Fs,s),e(t,Ct,s),e(t,Ns,s),e(t,mt,s),e(t,ks,s),u(dt,t,s),e(t,$s,s),e(t,Bt,s),Rs=!0},p:Bl,i(t){Rs||(y(c.$$.fragment,t),y(g.$$.fragment,t),y(_.$$.fragment,t),y(F.$$.fragment,t),y(k.$$.fragment,t),y(G.$$.fragment,t),y(q.$$.fragment,t),y(v.$$.fragment,t),y(E.$$.fragment,t),y(S.$$.fragment,t),y(L.$$.fragment,t),y(z.$$.fragment,t),y(D.$$.fragment,t),y(tt.$$.fragment,t),y(lt.$$.fragment,t),y(nt.$$.fragment,t),y(pt.$$.fragment,t),y(Mt.$$.fragment,t),y(ut.$$.fragment,t),y(Ut.$$.fragment,t),y(jt.$$.fragment,t),y(ct.$$.fragment,t),y(Jt.$$.fragment,t),y(dt.$$.fragment,t),Rs=!0)},o(t){U(c.$$.fragment,t),U(g.$$.fragment,t),U(_.$$.fragment,t),U(F.$$.fragment,t),U(k.$$.fragment,t),U(G.$$.fragment,t),U(q.$$.fragment,t),U(v.$$.fragment,t),U(E.$$.fragment,t),U(S.$$.fragment,t),U(L.$$.fragment,t),U(z.$$.fragment,t),U(D.$$.fragment,t),U(tt.$$.fragment,t),U(lt.$$.fragment,t),U(nt.$$.fragment,t),U(pt.$$.fragment,t),U(Mt.$$.fragment,t),U(ut.$$.fragment,t),U(Ut.$$.fragment,t),U(jt.$$.fragment,t),U(ct.$$.fragment,t),U(Jt.$$.fragment,t),U(dt.$$.fragment,t),Rs=!1},d(t){t&&(l(Vt),l(bt),l(ft),l(Qt),l(T),l(gt),l(J),l(It),l(C),l(_t),l(m),l(Ft),l(d),l(Nt),l(b),l(kt),l(B),l($t),l(V),l(Rt),l(f),l(Gt),l(Q),l(Xt),l(qt),l(I),l(xt),l(vt),l(Yt),l(N),l(Et),l(Zt),l($),l(St),l(R),l(Wt),l(At),l(X),l(Ot),l(Lt),l(x),l(Ht),l(zt),l(Y),l(Pt),l(Dt),l(Z),l(Kt),l(ts),l(W),l(ss),l(A),l(ls),l(O),l(es),l(ns),l(H),l(as),l(is),l(P),l(ps),l(os),l(K),l(Ms),l(hs),l(st),l(us),l(ys),l(et),l(Us),l(rs),l(at),l(js),l(it),l(ws),l(cs),l(ot),l(Ts),l(Js),l(ht),l(Cs),l(ms),l(yt),l(ds),l(bs),l(rt),l(Bs),l(Vs),l(wt),l(fs),l(Qs),l(Tt),l(gs),l(Is),l(_s),l(Fs),l(Ct),l(Ns),l(mt),l(ks),l($s),l(Bt)),l(w),r(c,t),r(g,t),r(_,t),r(F,t),r(k,t),r(G,t),r(q,t),r(v,t),r(E,t),r(S,t),r(L,t),r(z,t),r(D,t),r(tt,t),r(lt,t),r(nt,t),r(pt,t),r(Mt,t),r(ut,t),r(Ut,t),r(jt,t),r(ct,t),r(Jt,t),r(dt,t)}}}const Nl='{"title":"더미 에이전트 라이브러리","local":"dummy-agent-library","sections":[{"title":"서버리스 API","local":"serverless-api","sections":[],"depth":2},{"title":"더미 에이전트","local":"dummy-agent","sections":[],"depth":2}],"depth":1}';function kl(qs){return Vl(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class ql extends fl{constructor(w){super(),Ql(this,w,kl,Fl,dl,{})}}export{ql as component};
